Condo Demand Pressure Model
| Scenario | AI Tier | Rate Δ | Confidence | Buyers | DPI | Signal |
|---|
| Factor | Weight | Impact | Why it matters |
|---|---|---|---|
| Household income growth | 20% | 10/10 | The foundation of mortgage qualification — without it, affordability breaks regardless of rates. |
| Mortgage rates | 15% | 9/10 | Directly reduces borrowing power and pushes the required income higher. |
| Employment / job security | 10% | 9.5/10 | Households pull back before layoffs appear if future income feels uncertain. |
| Down payment availability | 10% | 8.5/10 | Many households clear the income bar but fail the cash/equity requirement. |
| Factor | Weight | Impact | Why it matters |
|---|---|---|---|
| Immigration | 8% | 8/10 | Supports long-run demand, but most newcomers rent before they buy. |
| Population growth | 5% | 7/10 | Adds housing demand generally, not necessarily ownership demand specifically. |
| Rent levels | 5% | 7/10 | High rents push toward ownership — unless carrying costs rise even faster. |
| Condo supply | 7% | 7/10 | Only becomes a problem relative to the qualified buyer pool, not population alone. |
| Investor participation | 5% | 7/10 | A pullback removes marginal demand quickly, as modeled in the Investor Pullback scenario. |
| Factor | Weight | Impact | Why it matters |
|---|---|---|---|
| AI job displacement | 5–15% | 8–10/10 | Could shrink the $150K–$300K professional bands that anchor condo demand. |
| White-collar wage compression | 5% | 8/10 | Reduces buying power even without outright job loss. |
| Consumer confidence | 5% | 7/10 | Purchases depend on belief that tomorrow's income looks better than today's. |
| Economic uncertainty | 5% | 7/10 | Delays large, hard-to-reverse commitments like a condo purchase. |
| Factor | Weight | Impact | Why it matters |
|---|---|---|---|
| Strata fees | 5% | 7.5/10 | Functions like a second, permanent mortgage payment. |
| Special levy risk | 5% | 8/10 | Future repair exposure can discount older buildings sharply. |
| Insurance costs | 2% | 6/10 | Rising premiums add directly to monthly carrying cost. |
| Building age / reserve-fund quality | 3% | 7/10 | Older, underfunded buildings carry higher capital-replacement risk. |
Supply, sales & price
- Greater Vancouver REALTORS® monthly market report
- MLS® Home Price Index, condo/apartment benchmark
- Active apartment listings & months of inventory
Rates & qualification
- Bank of Canada policy rate
- Posted 5-year fixed mortgage rates
- OSFI mortgage stress-test rule
Rent & vacancy
- CMHC Rental Market Report
- Average rent by unit type, Vancouver CMA
- Purpose-built rental completions
Population & immigration
- Statistics Canada population estimates
- BC population projections
- IRCC permanent-resident admissions
Labour & income
- Statistics Canada Labour Force Survey
- Vancouver CMA unemployment rate
- Household income distribution by band
Condo ownership cost
- Average strata fees by building age/type
- Depreciation report / reserve-fund disclosures
- Property insurance and tax estimates
Required Income = max(Carrying Cost ÷ GDS Limit, (Carrying Cost + Other Debt) ÷ TDS Limit) × 12
Qualified Buyers = Households × AI-Shock Factor × Income Eligibility × Down-Payment Rate × Credit Rate × Confidence × Annual Intent
Demand Pressure Index (DPI) = Σ Qualified Buyers (incl. investor add-on) ÷ Σ Active Supply
Implied Price Pressure = (1 − DPI) × Elasticity, when DPI < 1.0
| DPI range | Signal |
|---|---|
| > 1.50 | Strong seller market |
| 1.00 – 1.50 | Balanced / firm market |
| 0.80 – 1.00 | Softening market |
| 0.60 – 0.80 | Meaningful price pressure |
| < 0.60 | Major repricing risk |
🎯 The Central Idea
This is not a price-prediction tool. It is a qualified-buyer-capacity model. The core question it answers is deceptively simple:
How many households can actually afford to buy a Vancouver condo right now — and how does that compare to how many condos are for sale?
A buyer only counts if they can clear all four gates simultaneously: sufficient income to qualify at the stress-test rate, enough cash for the down payment, good enough credit, and enough confidence to actually sign. Remove any one gate and the buyer disappears from the pool.
The ratio of that qualified buyer pool to active supply is the Demand Pressure Index (DPI). Everything else — price pressure, signal labels, the gauge — flows from that single number.
📊 Demand Pressure Index (DPI) — The Core Number
The DPI is Qualified Buyers ÷ Active Supply, blended across all unit types. Here is how to read it:
| DPI Range | Signal | What It Means |
|---|---|---|
| > 1.50 | Strong seller market | More than 1.5 qualified buyers per listing — competition, upward pressure |
| 1.00 – 1.50 | Balanced / firm | Roughly one buyer per listing — market is in equilibrium |
| 0.80 – 1.00 | Softening | Fewer buyers than listings — sellers begin discounting |
| 0.60 – 0.80 | Meaningful pressure | Material supply overhang — meaningful repricing likely |
| < 0.60 | Major risk | Severe imbalance — model implies significant downside |
Important: DPI is computed from the model's assumptions, not from real-time sales data. Change any assumption in the Assumptions tab and the DPI updates instantly — this is intentional. The goal is to let you explore how the market would respond to different conditions.
📐 Price Pressure % — What the DPI Implies for Prices
When DPI > 1.5 → Price Pressure = −(DPI − 1.5) × Elasticity × 0.5 × 100
When 1.0 ≤ DPI ≤ 1.5 → Price Pressure = 0%
The Elasticity input (default 0.55) controls how aggressively the model translates an imbalance into a price signal. A DPI of 0.80 with elasticity 0.55 implies approximately +11% downward pressure. A DPI of 1.70 implies about −5.5% upward pressure.
⚠ Important Price pressure is a directional signal, not a literal forecast. It does not mean prices will fall 11% — it means the underlying demand/supply balance implies significant downside under current conditions. Many other forces (foreign capital, policy changes, emotional sentiment) can override it for extended periods.
🔑 The Four Qualification Gates
Gate 1 — Income
Required income is the higher of the GDS test (housing costs ÷ 39% of gross income) and the TDS test (all debts ÷ 44%). If a band's midpoint income × 1.15 is below required income, that entire band is disqualified. This is the harshest filter — at $825K with a 4.25% mortgage, required income is ~$185K.
Gate 2 — Down Payment Ready %
The share of each income band with enough liquid savings for the required down payment. Lower-income bands have far fewer households with $165K+ in cash (20% of $825K). You can edit the down-payment-ready % for each band in the Buyer Pool tab.
Gate 3 — Credit Eligible %
The share with a credit profile acceptable to mortgage lenders. Historically around 75–95% for higher-income bands. Stress events (recessions, HELOC draw-downs) can pull this down quickly.
Gate 4 — Confidence × Intent
Even financially qualified buyers step back when they expect job loss, rising rates, or falling prices. Confidence is computed as baseline confidence × scenario multiplier × rent-drag factor × building-risk drag. Intent % is the annual share who actually transact. In the Bear Case, both collapse.
🧮 The Qualifying Rate & Stress Test
OSFI requires lenders to qualify buyers at the higher of (a) your actual rate + 2 percentage points, or (b) the 5.25% floor. This means someone getting a 4.25% mortgage must prove they could afford 6.25%. This single rule has the largest impact on required income of any variable in the model — a 1pp rate move shifts required income by roughly $12,000–$18,000 depending on the unit type.
You can experiment with the stress-test add-on in the Assumptions tab. Lowering it to 1pp (hypothetical policy loosening) shows materially more buyers entering the pool.
🏢 Rent-vs-Own Drag
If owning costs significantly more than renting a comparable unit, some households choose not to buy even if they qualify. This is modelled as a confidence drag — a multiplier less than 1 that is applied when the ownership premium over rent is high. The drag uses this formula:
Drag Factor = 1 − Drag Sensitivity × Premium Ratio (clamped to 0.40–1.15)
At $825K (2-bed), if carrying cost is $4,850/month and comparable rent is $2,900, the premium is 67%. With drag sensitivity 0.6, the drag factor is ~0.60 — meaning only 60% as many households feel confident buying vs. if rent-own parity existed.
🤖 AI Job-Shock Table
The model includes an emerging indicator: AI displacement of knowledge-work income. The shock is applied as a band-specific reduction to the number of effective households before the qualification gates run:
| Band | None | Mild | Moderate | Severe |
|---|---|---|---|---|
| < $100K | 0% | 0% | 0% | 0% |
| $100K–$150K | 0% | −3% | −8% | −15% |
| $150K–$200K | 0% | −5% | −12% | −25% |
| $200K–$300K | 0% | −4% | −10% | −20% |
| $300K+ | 0% | −2% | −5% | −10% |
The middle bands ($150K–$200K) are hit hardest — these are the professional, knowledge-work roles historically most at risk from AI substitution. The AI shock does not affect the lowest band because those roles are less automatable. The $300K+ band is modelled with a smaller shock because senior professionals have more adaptation options. AI shock is an emerging indicator — its real-world weight is unknown; use it as a scenario tool, not a forecast.
🗺 The Ten Scenarios — What Each One Tests
Scenarios apply deltas on top of your current assumptions — they do not override them. A scenario that adds +1% to rates applies that on top of whatever rate you have entered in Assumptions.
📈 Price Direction Index™ — The Trend Module
The Price Index tab is an additive extension: it captures snapshots of the current DPI and Implied Price over time and then computes direction, momentum, and velocity of change.
Implied Price is the benchmark price you set × (1 + Price Pressure %). It anchors the trend to real dollars rather than abstract percentages.
Slope is computed via linear regression over the selected window. Momentum is the recent-half slope minus the earlier-half slope — positive momentum means the trend is accelerating, negative means it is decelerating.
| Direction Label | Slope | Momentum | Meaning |
|---|---|---|---|
| Strengthening Downward | Negative | Also negative | Getting worse, faster |
| Weakening Downward | Negative | Positive | Still down but slowing — potential inflection |
| Flat / No Clear Trend | ≈ 0 | Any | Within the flat-trend threshold |
| Weakening Upward | Positive | Negative | Still improving but losing steam |
| Strengthening Upward | Positive | Also positive | Getting better, faster |
Prediction Index: the six horizon cards (Now → 10 Years) project the trend forward. Near-term horizons weight the recent momentum heavily; far horizons shift almost entirely to the structural long-run drift you set (default 3% per year). The momentum weight decays with an exponential half-life of 120 days — at 365 days out, momentum is only 5% of the projection.
⚠ What This Model Cannot Do
It cannot predict the future. It can only describe the current balance of forces under current assumptions. Markets can remain irrational for years.
It does not capture foreign capital, shadow demand from equity-rich non-traditional buyers, or the significant role of parental transfers in down payments — all of which have historically been material in Vancouver.
The income bands are static estimates. Replace them with Statistics Canada household income distribution data for Vancouver CMA whenever fresher data is available (Buyer Pool tab).
Supply is listed supply, not total housing stock. A low DPI signals that active listings exceed the qualified buyer pool — it does not tell you anything about embedded demand from current owners or renters who are not actively shopping.
Confidence is a black box. The model uses a single multiplier for each scenario. Real consumer confidence is path-dependent, narrative-driven, and highly non-linear near tipping points.
🔮 Coming Next: Real Estate Pricing Pressure™ National Platform
This cast is the proof-of-concept for a much larger Canadian housing intelligence platform currently in development. The full platform will cover Canada → Province → CMA → Municipality → Property Type with a −100 to +100 Pricing Pressure™ score combining buying power, employment, supply, demographics, market momentum, sentiment, investor economics, and forward indicators. It will always clearly separate observed data, model interpretation, and forward signals — and it will never claim a number means what it doesn't.
| Capability | Editor | Admin | Super |
|---|---|---|---|
| View dashboard, snapshots, sources | ✓ | ✓ | ✓ |
| Capture a snapshot | ✓ | ✓ | ✓ |
| Edit benchmarks & source registry | — | ✓ | ✓ |
| Delete individual snapshots | — | ✓ | ✓ |
| Change trend-engine settings | — | ✓ | ✓ |
| Clear all snapshot history | — | — | ✓ |
ADMIN_CONFIG before publishing. This is a presentation-layer gate — not real authentication.