Skip to content

Valuation

Read the error first: median ARV miss 20.1%, mean 33.4%, within ±20% only half the time, bias +4.7% hot — measured leave-one-out against 744 arms-length 2–4 unit resales, Logan Square/Avondale 2022–24, as-of 2026-06 (accuracy). This is a ±20% screen, not an appraisal, and every response says so.

Default: tract heuristic = tract median price × 1.22 renovated premium. Replaced by live comps when a per-request pull from Cook County sales records clears every gate:

  • Hard filters, each rejection returned with its reason: arms-length only; same property type; same tract, or within 0.75 mi if across a boundary; ≤ 1.0 mi; sold ≤ 6 years ago.
  • Time indexing: ZIP-year price index, factor clamped 0.6–2.5 (fallback 3.5%/yr).
  • Similarity = distance decay × recency decay × year-built proximity, floor 0.45.
  • Minimum 4 qualifying comps; the top 8 by similarity are used.
  • Dispersion gate: comp IQR must be ≤ 45% of the median. A widely spread set is mixed condition/quality, not a valuation.
  • Confidence = 100 − 8×(8 − n) − 70×dispersion − 4×avg age (yr) − 25×avg distance (mi). The dispersion penalty is uncapped (it was capped at 35 until 2026-07, which let garbage sets pass). Live comps drive ARV only at confidence ≥ 55.

Value = median of time-indexed comp prices; conservative/aggressive = 25th/75th percentile. If the comp base runs more than 1.75× the tract norm, the response carries a verify-comps warning.

Renovated rents (rent model) → NOI at 30% opex minus taxes → divided by a 7.0% default cap rate. Capped at 1.5× the tract anchor (tract median × 1.22) — anchored to the tract, not the comp base, so a hot comp set can never float its own ceiling (2026-07 change).

ARV = max(comp approach, capped income approach). When there is no tract price and no confident comps, the response is unscored with a reason — “insufficient comps,” not a number. The old circular fallback, ARV = (ask + rehab) × 1.12, which let an overpriced listing inflate its own score, was removed 2026-07.

Everything here is ARV; there is no as-is value yet, and comps are condition-blind — a gut rehab and a shell can sit in the same comp set. Condition is the dominant source of the 20.1% miss. P1 ships condition-stratified comps (renovated/dated/distressed), separate as-is and ARV distributions, and a real sales database in place of per-request pulls. Targets: median miss ≤ 12%, within ±20% ≥ 75%.