How we compute landlord-risk scores across 32,000+ US cities, 3,100+ counties, and all 50 states plus DC - distilled from 23 mined factors through a percentile-normalized, power-law-calibrated model that is validated out-of-sample against real court outcomes. This is the live NGP-EvictStats-v12.2 model.
The model, fully expanded
L - legal floor (6) P - political (3) f - frequency (1) C - context (13→4) D - rarity dampener Score
The score is operating risk to an owner, not tenant hardship: if you must lawfully remove a non-paying tenant, how slow, costly and uncertain is it? That reframing puts dense, tenant-protective markets (Los Angeles, San Francisco, New York, coastal New Jersey) at the ceiling and fast-eviction Sun-Belt markets (Houston, Phoenix) near the floor.
The target is deliberately operational rather than normative. Every input is selected for how it maps onto the time, cost and uncertainty of regaining possession through the courts – filing-to-judgment timelines, statutory notice and cure windows, the breadth of just-cause and rent-regulation regimes – not onto any judgment about whether those protections are good policy. The axis is therefore something we can anchor to realized, landlord-side outcomes instead of sentiment.
2
Normalization – rank, not raw
Every factor becomes a national percentile rank (x → Fn(x) ∈ [0,1]) before it enters the model. Percentile (rather than z-score) normalization is deliberately outlier-robust – serial-filing artifacts and heavy-tailed cost distributions cannot dominate.
Ranking each factor against the full national distribution of roughly 31,800 places means a value’s meaning is its position among peers, not its absolute magnitude, which puts incommensurable units – days, dollars, percentages, ordinal law strength – on one comparable scale. It also makes the pipeline stable under data revisions: when a new ACS vintage shifts a raw distribution, ranks move far less than levels, so year-over-year scores hold unless the underlying ordering actually changes.
3
The regulatory floor – a power-law tail
Legal, political and contextual percentiles combine into a normalized floor Φ = (0.64L + 0.18P + 0.18C)/Φmax, then pass through a convex transform 1 + 9·Φ1.35 that compresses the middle and stretches the tail, so only the most-protective markets approach 10.
The 0.64 / 0.18 / 0.18 split loads the floor onto codified law, with political lean and socioeconomic context as secondary modifiers, because statute is the most direct and durable determinant of eviction friction. The convex exponent is what prevents grade inflation at the top: it holds the broad middle of the country in a narrow band and reserves the 9–10 range for the handful of maximally-regulated markets, so the ceiling stays diagnostic rather than crowded.
4
The frequency-difficulty interaction
Eviction frequency enters as a multiplicative interaction 2.8·f·L·(1−Φ), not an additive term. It only compounds risk where eviction is also hard, and the (1−Φ) factor makes the lift vanish at the ceiling, so raw filing volume can never push a moderate market above a maximally-regulated one.
Treating frequency as an interaction rather than a main effect encodes a specific claim: high filing volume only raises owner risk where the legal process is also slow and costly, since permissive jurisdictions clear cases before they become expensive. The (1−Φ) term is a saturation guard – as a market approaches the regulatory ceiling the marginal lift from volume decays toward zero, which is why a high-churn but landlord-friendly market never outranks a tightly-regulated one on filing counts alone.
5
The rarity dampener & graded rent control
Where strong local rent control is absent, a multiplicative dampener D = 0.55 + 0.45·fsinks rare-eviction, free-market towns. Rent control is graded 1-5 from a registry of 228 verified jurisdictions and gated by a 31-state statutory preemption guard.
The dampener corrects a sampling artifact: in a small permissive market a near-zero filing rate reads as “safe” when it often just reflects thin counts, so D pulls those places toward the floor in proportion to how rare eviction genuinely is. Rent control is graded rather than flagged because a CPI-tied stabilization ordinance and a hard statutory cap are not the same instrument, and the preemption guard ensures a city in a state that legally bans rent control cannot accrue strength it has no authority to enact.
6
Collinearity control – honest dimensionality
A correlation audit showed the legal and political signals are highly collinear (|r| up to 0.96) and the socioeconomic block collapses onto a few latent constructs. We therefore reduce the 13 context factors to four orthogonal constructs (economic distress, market tightness, social pressure, disaster exposure) rather than double-count.
Carrying all thirteen raw factors would count the same signal under several names and inflate apparent precision, so we project them onto four decorrelated constructs that capture the independent variance without the redundancy. It is a deliberate trade of nominal factor count for honest degrees of freedom: fewer, orthogonal inputs keep the weights interpretable and stop any single underlying phenomenon from entering the score three times over.
7
Validation – backtested, not asserted
Weights are checked against ground truth the model never sees: realized county court outcomes and observed eviction timelines. The composite achieves a Spearman rank concordance of 0.76 with measured filing-to-judgment timelines; a ridge-regularized regression recovers factor importances out-of-sample, and a ±20% weight-perturbation test leaves the ranking stable (Spearman ≈ 0.97).
The 0.76 concordance is measured out-of-sample, against held-out timelines the weights were never fit on, so it reflects genuine predictive ordering rather than in-sample overfit. The perturbation test is a robustness probe rather than an accuracy claim: a rank correlation near 0.97 under random ±20% reweighting tells us the ranking is driven by the structure of the data, not by the exact coefficients – the property you want before publishing a leaderboard.
8
Reproducible, versioned architecture
Scores are computed once and served through a single versioned fact table behind an active-version pointer; every historical model version is retained and auditable, and a new release is an atomic pointer flip, never an in-place mutation of live data.
Each release writes a complete, immutable set of rows under its own version label, and going live is a single-row repoint of the active pointer – so rollback is instantaneous and no reader ever observes a half-rebuilt table. The same discipline keeps the fifty-year history auditable: any city’s score for any year traces back to the exact model version and the dated inputs that produced it, which is precisely what lets us correct a single statute’s effective date and recompute the series without disturbing the rest of the record.
Algorithm change history
The active version is shown at the top of this page. The score is published as a numbered model: every release is written to a single versioned history table under an active-version pointer, and no prior version is overwritten in place. The full record is below, newest first, each dated by when it was computed and described by the change that made it more accurate.
The court pillar now reads from observed court records rather than a modeled probability. Its input is the rate of court-ordered eviction judgments per renter household, assembled county by county from validated court data covering 2000–2018 nationwide and carried through 2026 with Texas Office of Court Administration dispositions for all 254 counties, Maryland warrant-of-restitution executions, and New York City marshal executions. Where a county’s most recent court observation predates newer statutes, the pillar carries the dated legal-regime change forward, so a market that legislated after its last court reading is scored on the regime its landlords actually face. This release closes the development line begun after v12.2: candidate builds v12.3 through v13.2 re-derived the political pillar from real county presidential margins, then from who actually governs, and were each evaluated against the fifty-year guardrails before this version satisfied all of them.
Three further inputs moved from proxy to measurement. State political climate is computed from graded legislative seat shares, 1934–2026, with governor party, replacing a three-way control label; big-city mayoral partisanship now enters the local pillar directly; and the supply pillar incorporates the Wharton Residential Land Use Regulation Index across 2,800 municipalities. Poverty and rent histories follow per-year county series (Census SAIPE, 1989–2024; HUD Fair Market Rents, 1983–2026) anchored to each city’s current level. The release was validated against held-out court behavior: among major rental markets of 100,000 or more renter households, the counties this model rates most landlord-adverse record roughly one-fifth the rate of court-ordered eviction judgments per renter household of lower-rated markets (rank correlation −0.50 across 81 counties).
NGP-EvictStats-v12.2De-floored political sparklinesJun 5, 2026
A recompute on the refreshed regulatory ledger that also corrected a display defect in the political sub-score series. The historical reconstruction had pinned the local and regional political signals of Democratic-led cities in Republican-led states near the scale floor for roughly 2005–2023, then snapped them to the observed 2024 county margin – a cliff that misread as a sudden political conversion. The correction fills the affected span from the stable partisan eras on both sides under a bounded year-over-year movement limit, leaving the composite score untouched while restoring continuous, honest political series to the sub-score sparklines.
NGP-EvictStats-v12.1Regulatory ledger date correctionsJun 5, 2026
A data-integrity release on the v12 engine. An audit of the dated regulatory ledger surfaced effective-year errors that shifted when several laws entered the history: California’s Tenant Protection Act (AB 1482) and Costa-Hawkins were carried at their effective-January dates rather than their enactment years, and 119 New Jersey home-rule rent-stabilization ordinances had inherited a registry “current-code” timestamp of 2026 instead of their true 1970s adoption.
The corrections moved AB 1482 to 2019, Costa-Hawkins to 1995, Colorado’s source-of-income statute to 2020, and the New Jersey ordinances to their 1972–1974 enactment wave; the full fifty-year series was then recomputed from the corrected ledger and published as a new version behind an atomic pointer flip. The scoring function is unchanged from v12.0 – only the dated inputs moved – so affected cities now show rent-regulation pressure in the year each law actually took hold rather than years later.
NGP-EvictStats-v12.0Raw political signal, sticky compositeJun 4, 2026
Replaced v11.0’s nine-year smoothing of the political input with the raw, year-by-year signal, restoring real texture to each city’s political trajectory instead of a flattened curve that read as synthetic. The smoothing was not discarded but relocated: it moved out of the displayed signal and into the score math as a downward-sticky alignment that rises freely with the data yet can fall only gradually.
That separation keeps a single national-election swing from whipping the whole composite up and down while leaving the published political series honest and textured. It preserves the v11 properties that matter – the rent-control ratchet and the dampening of pro-landlord measures outside preemption states – and was the final tuning of the political pillar before the v12.1 ledger-date corrections.
NGP-EvictStats-v11.0Stability and ratchet refinementsJun 3, 2026
The current model – three accuracy fixes layered onto v10.0, all in the score math:
Smoothed political input. The political signal is averaged over a centered nine-year window, so a single national-election swing no longer whips a city’s whole trajectory up and down.
Rent-control ratchet. The rent-control axis only accumulates – protections a city has won stay represented in its history and never silently collapse in a later year.
Balanced law weighting. Pro-landlord measures are dampened to roughly a third of their face weight outside the 31 preemption states (they soften a city’s score rather than erase it); full-preemption states keep their full weight.
Replaced hand-coded statewide law steps with a dated regulatory ledger. Each year’s regulatory reading is now the sum of every statute and ordinance actually in force that year, layered across national, state, county, and city levels. Because temporary measures such as pandemic moratoria exist only inside their real date window, the COVID-era spike now decays on its own instead of being placed by hand.
The first build with no value pinned to the present and no straight-line ramping anywhere – every year is a direct function of that year’s measured inputs. Political signal became local, regional, and state-law alignment with a five-year persistence amplification, where each state’s tenant-law strength steps in the year a law actually took effect – New York’s HSTPA (2019), California’s AB 1482 (2020), Oregon’s SB 608 (2019). Rent control steps to its documented strictness at each ordinance’s enacted year, eviction difficulty is floored by the objective eviction timeline, and every score is floored at 1.
evictionriskmap.com was created to share the data publicly – the full fifty-year history and every city, county, and state score made openly browsable for renters, landlords, and reporters.
NGP-EvictStats-v8.0Pandemic and present-year correctionsMar 25, 2026
Refined the v7.0 history in two places. The pandemic period (2020–2021) is reconstructed from the surrounding observed years with a calibrated convergence, so lower-risk cities rise in proportion rather than converging on the ceiling, and the most recent year is mapped through a fixed 2026 reference scale so the series trends on a stable basis.
NGP-EvictStats-v7.0History rebuilt on real per-year dataFeb 25, 2026
Rebuilt the entire 1976–2026 history on real, year-by-year inputs, so every displayed factor became an actual annual series rather than an interpolation between anchor points. This was the move to genuine per-year data; its present-year and pandemic-period treatments were subsequently refined in v8.0 and v9.0.
Reshaped the pre-2026 path of the fifty-year chart while leaving the present-day score identical to v6.1 – a final adjustment to the composite’s history immediately before the real per-year rebuild in v7.0.
NGP-EvictStats-v6.1City-level political signalAug 26, 2025
Restored city-level political signal to the political pillar, so two cities in the same county are scored distinctly instead of sharing a single county value.
A backtest-driven rebuild into the 22-factor national-percentile composite – the structure the equation at the top of this page lays out – calibrated against real county court timelines (rank concordance of 0.76). It consolidated a rapid sequence of staged builds into one model.
Tightened the economic-stress axis with a cost-of-living compression – deflating nominal income by the BLS shelter-cost series so the axis measures real-wage stagnation rather than headline income. The transform is calibrated to hold the axis distribution stable year over year instead of drifting upward with inflation.
An audit pass on the environmental axis: clamped the climate and disaster-exposure input to the common 1–10 range and promoted the validated disaster-exposure index to the primary measure, retiring the earlier proxy. The range and distribution assertions added here now run automatically on every build, so an out-of-band value fails the run rather than reaching a page.
Added four expanded event categories to the historical-events layer and corrected the rent back-extrapolation that feeds the pre-1983 history – anchoring it to HUD fair-market-rent growth rather than a flat national deflator, so early-year rent burden follows regional cost paths instead of a single national curve.
NGP-EvictStats-v4.0Four new data sourcesOct 17, 2023
Integrated four major new data sources – fair-market rents from HUD, historical filing activity from the Eviction Lab, shelter-cost inflation from the BLS CPI series, and a validated disaster-exposure index. Each was aligned onto the county-year panel and gap-filled only where the source itself is silent, with every interpolated cell flagged as reconstructed rather than observed.
A comprehensive overhaul that consolidated fifteen separate improvements into one coherent data foundation – the base every later version still extends. We rebuilt the variable dictionary, re-derived each socioeconomic axis directly from ACS five-year tables, standardized the 1976–2026 back-cast, and re-keyed the full panel so geography, year, and source provenance travel with every stored value.
NGP-EvictStats-v2.0National coverage + political and legal layersNov 14, 2022
Scaled coverage from a metro sample to the full national set of incorporated places across the entire fifty-year window, and added the political and legal dimensions: county presidential margins from the MIT Election Lab, statewide legislative-trifecta history from Ballotpedia and NCSL (1976 forward), and a first landlord-tenant statute timeline keyed to each law’s effective year. By this release the panel carried more than twenty distinct measured inputs per geography-year – the curated base the v3.0 overhaul consolidated.
The first build that produced a score rather than a data extract. The curated variables were standardized onto a common distribution and combined into a single 1–10 index, each input weighted by its observed association with county eviction-filing activity. This release also set the storage convention every later version keeps – one row per geography per year, written to a versioned history table behind an active-version pointer, so no prior build is overwritten in place.
NGP-EvictStats-v0.5Socioeconomic series integrationSep 20, 2021
Grew the skeleton into a measured dataset. We layered in the first socioeconomic series – renter share, gross rent, rent burden, poverty, and unemployment – from the Census American Community Survey, and back-cast the pre-2005 segment from decennial-Census anchors where annual estimates do not exist. Each series was screened for coverage, winsorized against reporting outliers, and tagged with an explicit observed-versus-reconstructed flag so modeled history is never shown as measured.
The earliest build – a bare ingestion layer. It set the spine the whole project still rests on: an annual 1976–2026 frame keyed on stable county and place FIPS geography, with the normalizers that reconcile boundary changes, renamed places, and county splits across five decades so that every variable added later joins onto one consistent index.
Underlying factor documentation
The sections below document the legacy nine-axis decomposition and full data lineage that feed the constructs above.
The 1-to-10 score
Each city carries a primary landlord-risk score on a 1-to-10 scale. The score is a national percentile ranking where 1 represents the most landlord-friendly markets (fast eviction process, low rent burden, conservative court culture, low organizing strength) and 10 represents the most tenant-protective (slow eviction process, severe rent burden, strong tenant defense infrastructure, active rent-control or just-cause regimes).
The score is computed as a weighted average of nine sub-factors plus a state-law multiplier. Sub-factors are themselves percentile ranks derived from underlying ACS and political data; the state-law multiplier captures statutory differences that produce structural differences in operator-side experience.
The nine sub-factors
1. Local political climate
Derived from 2020 county presidential margin, weighted to the city's specific census tract distribution where available. Higher Democratic margin produces higher score reflecting stronger structural support for tenant protections at the local level.
2. Regional political climate
Same 2020 presidential data computed at the surrounding multi-county metro level. Captures the broader political pressure environment that affects state legislative votes and regional court appointments.
3. State political climate
Statewide 2020 presidential margin and trifecta status (governor + both chambers same party). Single-party trifecta states produce predictable legislative dynamics; divided-government states produce stalemate that often locks in the status quo.
4. Economic stress
Composite of local poverty rate, unemployment rate, and median household income trajectory, all from ACS 2023 5-year estimates. Higher economic stress correlates with higher eviction filing rates.
5. Supply constraint
Derived from vacancy rate, building age distribution, and the ratio of renter-occupied to owner-occupied units. Tighter supply produces stronger rent growth, which translates into rent-burden pressure and elevated eviction filings.
6. Rent-control risk
Combines current rent-control coverage (city, county, and state ordinances) with the political-climate probability of new tenant-protective legislation in the next 12 to 24 months. Cities with active ballot campaigns or pending legislation score higher.
7. Eviction process difficulty
Captures the procedural framework: state filing fee, predicate-notice period, time-to-trial, post-judgment writ delay, mandatory mediation, right-to-counsel availability. Faster, cheaper, more landlord-favorable processes score lower; slower, more contested processes score higher.
8. Tenant organizing strength
Captures the practical capacity of local tenant-defense networks. Cities with funded right-to-counsel programs, active legal-aid presence, and organized tenant unions score higher because contested-case rates are higher and procedural defects more frequently produce dismissals.
9. Housing court bias
Reflects the procedural orientation of the local court. Courts with specialized housing dockets, mediation referral practices, and judges with published opinions interpreting tenant-protection statutes strictly score higher. Courts running pure default-judgment dockets score lower.
Historical reconstruction (1976–present)
Each city page resolves a 50-year series across all ten sub-scores. The continuous instrumental record is shallow – county eviction filings begin in 2000 and ACS estimates in 2005 – so the series joins a directly observed modern segment to a benchmark-anchored reconstruction of the earlier decades, scored through a single identical function end to end so every year is internally comparable.
Observed segment (2005–present). Computed directly from primary series: ACS 1- and 5-year estimates, MIT Election Lab county presidential margins, HUD Fair Market Rents, BLS shelter CPI, Eviction Lab filing rates, and state legislative records. Highest reliability.
Interpolated segment (1990–2004). Anchored to the 1990 and 2000 decennial Census and to dated statutory events (Costa-Hawkins 1995, NY Rent Regulation Reform Act 1997, Massachusetts Question 9 1994, state preemption by year), with covariates carried on documented state political control and national economic series.
Back-cast segment (1976–1989). Anchored to the 1980 decennial Census, documented rent-control effective dates (San Francisco 1979, Los Angeles 1978, Berkeley 1980, Oakland 1980, Santa Monica 1979, New Jersey Anti-Eviction Act 1974, New York ETPA 1974), state political control, and national economic indicators. These years are a modeled reconstruction under the current framework – the most defensible estimate of each market’s environment rather than a contemporaneous measurement – and carry the widest reliability band.
The chart encodes provenance directly: the observed segment is a solid full-color line, the interpolated segment is muted, and the back-cast segment is dashed with lighter markers, with each point’s reliability surfaced in its tooltip.
Data sources
ACS 2023 5-Year Estimates (US Census Bureau): rent burden, median gross rent, renter share, poverty rate, unemployment rate, building age, vacancy.
MIT Election Lab: 2020 county presidential election results.
State session law databases and statutory codes: California (codes.ca.gov), Texas (statutes.capitol.texas.gov), New York (nysenate.gov/legislation), and equivalent state sources for each jurisdiction.
National Low Income Housing Coalition: state-level tenant protection inventory cross-reference.
Eviction Lab (Princeton): filing rate data where available and verifiable against state administrative office statistics.
HUD User API: Fair Market Rents (FMR) 1983-2025 by state for rent-trajectory anchoring.
BLS Public Data API (v2): CPI Shelter (CUUR0000SEHA), CPI Rent of primary residence (CUUR0000SEHC), national unemployment (LNS14000000), 1976-present.
St. Louis Fed FRED API: 30-year fixed mortgage rate, real median household income, federal funds rate, Case-Shiller national index, 1976-present.
Ballotpedia + NCSL state legislatures archive: state political trifecta history 1976-2025 (governor party + senate majority + house majority).
NYU Furman Center, NLIHC tenant protection inventory, Urban Institute: cross-reference for tenant-protection law enacted/effective dates.
Update cadence
Score recomputation runs quarterly when the Census Bureau releases new ACS 5-year estimate vintages. Legislative content reviews run continuously when state legislatures take action significant enough to shift a sub-factor weight. Every individual page carries a visible "last updated" timestamp on its written analysis.
Scope and interpretation
Three conditions govern how the score should be read.
Resolution. The eviction-difficulty axis resolves statutory structure precisely but not within-jurisdiction judicial variation: two judges in one county can return materially different timelines on identical facts. Court-level dynamics are documented narratively where our research team has direct operator experience.
Vintage. ACS 5-year estimates trail current conditions by roughly 18 to 30 months, so the fastest-moving rent markets are reflected with a lag; the vintage is stated on every page.
Use. The score is a market-research signal, not legal advice. Acquisition and operating decisions should pair it with jurisdiction-specific counsel admitted in the relevant state.
Reproducibility
The methodology is open. Underlying data is publicly available from the cited sources. Sub-factor weighting is documented above. If you need access to the raw scoring tables for academic or journalistic use, contact us via the address below.