SPB Git forge

spb/wp20_uqo

Public
1commits 1branches 0releases
2.8 MBsize
maindefault branch
yesterdaylast push
TeX 59% Python 40.8%
6.5 KB · 89 lines yaml
Raw Blame History
1# WP20 cost schedule — every parameter carries a `source` (verified public figure) or is labelled `assumption`2# (author assumption with the sensitivity range used in Experiments 7–8 and the Monte Carlo of Experiment 14).3# Currency: CAD. Base valuation date: 2026-Q2 (listing window 2026-08 → 2026-10).4version: 1.05valuation_quarter: "2026-04-01"      # StatCan refPer label for 2026-Q267rcn:8  # Two published anchors for the per-area cost of a new single-family house. Anchor B (Québec, 2026) is the headline9  # because it is province- and date-specific; anchor A (Altus, Montréal hard costs) is reported as a lower-bound alternative.10  anchor_default: B11  anchors:12    A:13      label: "Altus Group 2026 Canadian Cost Guide, Montréal hard construction cost (via NerdWallet Canada), $155–215/sq ft, single-family with unfinished basement"14      reference_storeys: "1"                      # band not storey-specific; treated as the one-storey reference (assumption)15      reference_quarter: "2026-01-01"16      grade_per_sqft: {basic: 155, standard: 175, upgraded: 195, luxury: 230}17      grade_sensitivity_per_sqft: {basic: [140, 170], standard: [160, 195], upgraded: [180, 215], luxury: [205, 280]}18      storey_multiplier: {"1": 1.00, "1.5": 0.97, "2": 0.93, "2.5": 0.92, "3": 0.92}   # assumption19    B:20      label: "Québec industry guides 2026 (Soumission Rénovation, updated 2026-08-31, citing SHQ 2026 data: standard finish $280–325/sq ft, cottage with unfinished basement $230–285, high-end $350+; Dessins Drummond, updated 2026-09-24: $260–350/sq ft, cottage ≈ $280, bungalow ≈ $345); excludes land, servicing, soil tests, professional fees, landscaping"21      reference_storeys: "2"                      # the quoted standard band describes a two-storey 'cottage'22      reference_quarter: "2026-07-01"             # treated as current (no BCPI beyond 2026-Q2; factor 1)23      grade_per_sqft: {basic: 257, standard: 302, upgraded: 340, luxury: 400}24      grade_sensitivity_per_sqft: {basic: [230, 285], standard: [280, 325], upgraded: [325, 375], luxury: [350, 450]}25      # bungalow ≈ cottage + $100/sq ft (Soumission Rénovation) and 345 vs 280 (Dessins Drummond) → one-storey ≈ 1.25× two-storey26      storey_multiplier: {"1": 1.25, "1.5": 1.12, "2": 1.00, "2.5": 0.97, "3": 0.97}27  # Legacy single-anchor fields (kept for reference; the model reads `anchors`)28  # Hard construction cost per square foot, single-family house with unfinished basement, excluding land, Montréal,29  # Altus Group 2026 Canadian Cost Guide as tabulated by NerdWallet Canada (secondary source; see docs/institutional_sources.md).30  base_band_per_sqft_montreal: {low: 155, high: 215}31  base_band_source: "Altus Group, 2026 Canadian Cost Guide, via NerdWallet Canada table (accessed 2026-10-20); secondary source"32  base_band_reference_quarter: "2026-01-01"       # guide published 2026-04-23; costs taken as early-2026 (assumption)33  # Finish-grade mapping onto the band (assumption: linear placement within the published band; luxury may exceed it)34  grade_per_sqft: {basic: 155, standard: 175, upgraded: 195, luxury: 230}35  grade_sensitivity_per_sqft: {basic: [140, 170], standard: [160, 195], upgraded: [180, 215], luxury: [205, 280]}36  # Storey multiplier on per-area cost (assumption: foundation and roof are spread over more floor area in taller houses)37  storey_multiplier: {"1": 1.00, "1.5": 0.97, "2": 0.93, "2.5": 0.92, "3": 0.92}38  storey_multiplier_sensitivity: 0.0339  # Party-wall adjustment for attached houses (assumption)40  attached_multiplier: {detached: 1.00, semi_detached: 0.97, row_or_townhouse: 0.94}41  # Add-ons (assumptions, CAD, 2026) — sensitivity ±30 %42  basement_finish_per_sqft: {finished: 45, partially_finished: 22, unfinished: 0}43  garage: {attached: 35000, detached: 45000, carport: 8000, none_visible: 0, none: 0}44  add_on_sensitivity: 0.3045  # Indirect (soft) costs and entrepreneurial incentive on top of hard costs (assumptions; standard cost-approach components)46  soft_cost_share: 0.1047  soft_cost_sensitivity: [0.05, 0.15]48  entrepreneurial_incentive: 0.0849  entrepreneurial_incentive_sensitivity: [0.0, 0.15]5051site_improvements:52  baseline_share_of_rcn: 0.02           # driveway, landscaping, fences (assumption; sensitivity 0–4 %)53  pool: {inground: 60000, above_ground: 8000, none: 0}   # assumption, text-claimed only; sensitivity ±40 %5455temporal_regional:56  # Statistics Canada table 18-10-0289-01, single-detached house, division composite, 2023 = 100 (data/raw/statcan/)57  statcan_vectors: {montreal: 1617911556, quebec: 1617911172, gatineau: 1617912324, composite: 1617908100}58  cma_to_series: {montreal: montreal, quebec: quebec, gatineau: gatineau, sherbrooke: composite, trois-rivieres: composite, saguenay: composite, other: composite}59  # Cross-CMA cost LEVEL is not published for Québec City; baseline assumes the Montréal level everywhere60  # (regional_level_factor = 1.0) and Experiment 7 varies it in [0.90, 1.10] and under the "relative growth since 2023" scenario.61  regional_level_factor: 1.062  regional_level_sensitivity: [0.90, 1.10]63  # Dessins Drummond (2026): building in Montréal or Québec City costs 10–25 % more than in other regions → scenario64  non_metro_discount_scenario: {metro_cmas: [montreal, quebec, gatineau], factor_other: 0.85}6566depreciation:67  method: "straight-line age–life with condition-adjusted effective age (physical); functional and external = 0 in baseline"68  economic_life_years: 6069  economic_life_sensitivity: [50, 75]70  max_physical: 0.8571  # effective age = chronological age × condition factor (composite 1–5 condition score; 3 = average → factor 1)72  condition_factor: {1: 1.40, 2: 1.20, 3: 1.00, 4: 0.75, 5: 0.55}73  condition_factor_strength_sensitivity: [0.5, 1.5]    # scales the deviation of the factor from 174  renovation_extensive_years_removed: 1075  renovation_partial_years_removed: 476  min_effective_age: 177  external_obsolescence_scenario: 0.107879land:80  source: "assessment roll land value (valeur_terrain) at the roll market-condition date (LFM art. 46)"81  index: "Vrai Prix monthly single-family price index (market_index, type unifamilial) from roll date month to 2026-07"82  index_share_applied: 1.0            # baseline: full indexing; sensitivity {0.0, 0.5, 1.0} (land vs house price growth differ)8384benchmarks:85  assessor_building_value_index: "StatCan BCPI single-detached, CMA series, from roll market date quarter to 2026-Q2"8687baselines:88  B0: {grade: standard, condition: 3, basement: unfinished, garage: none, pool: none, attached: from_listing_type}89