Reading the Cycle: Supply-Demand Models for CRE Timing

Matthew Dickson
real estate data analytics forecasting market cycles

The worst time to start building apartments is when everyone else is building apartments. That sounds obvious until you remember that real estate development operates on 18–24 month timelines. By the time you see cranes across town, your project is already approved, financed, and under construction. The decision you needed to make differently was two years ago.

The question worth building a model to answer: how do you know you’re in Phase 1 — the window to act — versus Phase 2, when the market looks hot but you’re already late?

How the cycle actually works

Real estate markets oscillate between undersupply and oversupply in a fairly predictable pattern, driven by the lag between when developers make decisions and when supply actually hits the market.

In undersupply, rents rise and occupancy stays high. Developers see the opportunity and start planning projects. Multiple developers make similar decisions simultaneously — each one rational in isolation — and a construction boom follows. Supply takes 18–24 months to deliver, so rents keep rising even as the pipeline swells. Then everything delivers at once. Vacancy spikes, rents stagnate, and developers who broke ground two years ago are now delivering into a soft market. Construction stops. Demand slowly absorbs the excess. Three to five years later, the market is tight again and the cycle repeats.

The failure mode isn’t irrationality. It’s that every individual actor is making a reasonable decision based on current conditions, while current conditions are a lagging indicator of where the market is actually headed.

What I built

A forecasting model that ingests 30+ years of historical data to estimate where the market is in the cycle and where it’s headed.

Inputs:

  • Historical deliveries: new units added each quarter (CoStar, Reis, or local permitting data)
  • Absorption rates: net units absorbed by renters each quarter
  • Rent growth: year-over-year change in effective rents
  • Pipeline data: projects under construction plus projects planned but not yet started

The model does two things.

First, it estimates current market state using a Kalman filter — a state-space estimation technique that infers the true underlying demand signal by smoothing noise out of quarterly absorption data. One quarter’s absorption spike is probably statistical noise. The model filters that out to reveal the underlying pattern: is demand actually accelerating, or does it just look that way?

Second, it forecasts the next eight quarters. Based on known pipeline (units under construction are a fact, not an estimate) and historical demand patterns, the model projects when oversupply arrives, how severe it will be, and how long until rebalancing.

Output is a direct signal: “Market is entering oversupply in Q3 2026. Delay new starts until Q2 2027.” Or: “Market remains tight through 2026. Green light to break ground.”

The science behind it

Supply is predictable — units under construction today will hit the market in 18–24 months, and that pipeline is observable. Metro-level demand is relatively stable — job growth and household formation don’t swing wildly quarter-to-quarter. The uncertainty is timing the transition from tight to loose market, which is exactly what the Kalman filter is designed to estimate.

The model treats supply-demand dynamics as a system with inertia. Demand evolves based on job growth, household formation, and migration — slow-moving and forecastable. Supply responds to demand with a known lag. Rent growth is the observable output that reflects the underlying balance. The filter uses observed rent growth and absorption to infer the unobservable true demand state, then projects forward using the known pipeline.

What I learned building it

Data quality beats model complexity. Early versions used more sophisticated machine learning approaches. Didn’t work. The breakthrough came from using a simpler model — the Kalman filter — with clean, long-term historical data. Thirty years of deliveries and absorption beats two years of high-frequency noise every time.

Pipeline is the most predictive variable. Rent growth today doesn’t tell you much about rent growth two years from now. Units under construction today tell you almost exactly what will hit the market in 18–24 months. Pipeline is destiny — and it’s public data that most market participants aren’t synthesizing systematically.

The model’s value is greatest when it contradicts intuition. When the model confirms what everyone already thinks, it’s just validation. When it says “market looks hot but you’re late” while everyone else is bullish, that’s where it earns its keep — surfacing what the lagging indicators are hiding.

How it works in practice

Quarterly workflow:

  1. Update data (15 min): import latest CoStar/Reis deliveries, absorption, rent data
  2. Run model (instant): Kalman filter estimates current state, forecasts eight quarters ahead
  3. Review forecast (10 min): check model output against market intelligence — what does the broker network say, what’s local media reporting?
  4. Make the call: green light new projects, pause the pipeline, or adjust underwriting assumptions

Thirty minutes per quarter to stay a step ahead of the cycle.

The broader point

Most development timing decisions are made by reading the market as it currently is. The model reads the market as it’s about to be — specifically because pipeline data is a reasonably accurate picture of supply 18–24 months out, and demand doesn’t move fast enough to sneak up on a model that’s watching the right inputs.

The developers who get hurt in downturns are rarely the ones who ignored the data. They’re the ones who didn’t have a framework for distinguishing between “the market is hot” and “the market was hot 18 months ago and we’re about to find out.” That’s a solvable problem.