Skip to content

Methodology

Every number this system emits is supposed to satisfy four rules: produced by exactly one code path, versioned, explainable, and falsifiable against realized outcomes. This section documents how close the current model (p0a-2026.07) gets, including where it falls short. Start with limitations and accuracy — the headline: median ARV miss 20.1%, measured against 744 arms-length 2–4 unit resales (as-of 2026-06), with a +4.7% hot bias.

Source What it produces Cadence
Tract signals 26 precomputed metrics per census tract (1,492 tracts, Cook + Lake), percentile-ranked county-wide monthly refresh
Comp engine Per-address comp sets pulled live from Cook County sales records, filtered and gated at request time per request
Underwrite solvers Deterministic deal math (offers, DSCR, carry, economics gate) on top of the first two per request

Nothing else generates numbers. When a request can’t be served from these three honestly, the answer is “unscored” or “insufficient comps” with a reason string — never a filler value.

  • Scores — the 0–100 scale, its known compression, the deal-score formula, unscored states
  • Flip score · BRRRR score — factor weights and penalties
  • Risk score — scored separately from opportunity, flag by flag
  • Valuation — comp approach, income approach, reconciliation, refusal behavior
  • Rent model — SAFMR-anchored bedroom rents, the renovated multiplier
  • Underwriting — offer solvers, carry model, the economics gate
  • Data sources — every feed with cadence, vintage, and coverage gaps
  • Accuracy — the published backtest
  • Limitations — read first

Every API and MCP response is stamped with model_version; changes that move numbers are logged in the changelog with what changed and why.