Skip to content

Flip score

Buy–rehab–sell. What it measures: can you renovate here and resell into real demand — resale liquidity first, then appreciation, buyer depth, and momentum. Weights below are the engine’s (model p0a-2026.07); the map and the API compute identically since the 2026-07 parity fix.

All inputs are county-relative percentiles (50 = median tract). Definitions are maintained in the data dictionary (as-of 2026-07-09).

Factor Weight Source
Resale liquidity block 30% Redfin, latest quarter, by ZIP
— sale-to-list ratio 50% of block do sellers get their price
— days-on-market (quartile) 30% of block exit speed
— sold-above-list share 20% of block bidding depth
1-yr price appreciation 15% ZHVI year-over-year, ZIP-blended
Buyer income 15% HMDA 2024 median applicant income
Halo frontier 15% loan-size gap vs pricier neighboring tracts
Renovation + business momentum 13% Chicago permits (18 mo) + new licenses (12 mo)
Capital-flow momentum 12% HMDA volume and loan size, 2022→2024
  • Within 1.5 mi of a financially distressed municipality: −22 points (−8 within 3 mi). Tax-base instability is an exit-liquidity risk.
  • Within 1.2 mi of a point-of-sale-inspection town: −10. Closing friction on the resale.

Coverage = share of five universal signals present (capital, yield, market heat, income, halo). Below 70%, the score loses 0.5 points per missing coverage point — a thin-data tract cannot quietly outrank a well-measured one. If the weighted inputs are entirely null, the tract is unscored (null), not zero.

The liquidity block is ZIP-level, so a tract inherits its ZIP’s Redfin stats. Momentum is Chicago-only — suburban tracts carry no momentum signal. The weights are hand-set for face validity, not learned from outcomes; P3 replaces them with weights trained on forward 12-month appreciation and permit→resale spread pairs, and adds an explicit liquidity sub-score so a flip composite can never again ignore whether anyone actually buys there.