New York City
Strongest local packageWhat this analysis does
NYC has approximately 1 million rent-stabilized apartments. The Rent Guidelines Board (RGB) publishes an annual Rent Stabilized Building List (RSBL) identifying every building with at least one stabilized unit by borough, block, and lot number.
The NYC Department of Housing Preservation and Development (HPD) maintains a public database of housing code violations — records filed when inspectors find conditions like heat/hot-water failures, lead paint hazards, pest infestations, mold, or structural defects. Each violation is tied to a specific building.
This analysis joins the two datasets at the building level (borough + block + lot) to ask: do buildings on the stabilized list accumulate HPD violations at a different rate than non-stabilized buildings? The answer is explored through six distinct modeling approaches, each with different assumptions about what makes a valid comparison group.
Building Fixed-Effects Event Profile
Estimated additional HPD violations per building-year in stabilized vs. non-stabilized buildings, relative to the 2019 baseline. Building fixed effects absorb all time-invariant differences between buildings (location, age, size, ownership). Cluster-robust standard errors. All coefficients p<0.001.
89,100 buildings (32,793 stabilized, 56,307 non-stabilized), 623,700 building-year observations, 2019–2025.
Mean HPD Violations per Building
Average violation count per building per year. Both groups show increasing violations over time, but the gap between stabilized and non-stabilized buildings widens substantially after 2022.
Violation Gap by Borough
Difference in mean violations per building (stabilized minus non-stabilized) by borough and year. The Bronx shows the largest and fastest-growing gap; Manhattan and Brooklyn show intermediate patterns.
Six Modeling Approaches
Each approach uses a different comparison strategy. Simpler designs show larger effects; tighter matching reduces effect sizes, illustrating design sensitivity.
| Approach | What it does | Buildings | 2025 gap | Finding |
|---|---|---|---|---|
| Borough-year descriptive | Compares means within borough and year, no controls | 89,100 | 4.76 | Largest gap, grows every year |
| Borough-year WLS model | Weighted regression on borough-year cells with treatment interaction | 89,100 | 4.79 coef | Significant treatment × 2025 (p=0.009) |
| Stratified comparison | Matches within borough × community board × building age × size strata | 89,100 | 4.76 | 2.9× treated/control ratio by 2025 |
| Within-community-board match | Nearest-neighbor matching within community boards (16,406 pairs) | 32,812 | varies | Pre-period imbalance; treated lower at baseline |
| Refined CB match | Improved matching with 28,746 pairs and better pre-period balance | 57,492 | −0.14 | Balance improves but effect near zero |
| Building fixed effects | Building FE + year FE + treatment × year interactions, cluster SEs | 89,100 | +4.20 coef | Consistent upward trend, all p<0.001 |
Design sensitivity: The borough-year and building-FE models show a large, growing gap. But the refined within-community-board match (28,746 well-balanced pairs) shows effects near zero by 2025. This means the result depends heavily on what comparison group is used and how unobserved confounders are handled. These are not settled causal estimates.
Where the Difference Concentrates
NYC follow-onThe six approaches above establish that a gap exists in some designs and not others. The next question is narrower: among the designs that show a gap, where does it live? The follow-on artifacts decompose the 2025 result by geography, margin, enforcement timing, and resolution status. All findings remain descriptive and design-sensitive.
2025 Monthly Violation Gap
Treated-minus-control mean HPD violations per building by calendar month. The gap is positive in every month but compresses sharply in June and November (muted bars), when control-building violations spike—likely seasonal enforcement or inspection cycles that affect all buildings equally.
2025 Violation Gap by Enforcement Status
Mean violations per building in 2025, grouped by status family. The “open / reinspection” category dominates both groups but the treated-control gap is largest there (+4.2 violations/building). “Pending administrative” and “resolved / certified” carry smaller gaps. This suggests much of the aggregate gap sits in unresolved or still-cycling enforcement.
Why this narrows the interpretation: The 2025 gap is not evenly distributed. It concentrates in the Bronx (about +10.8 violations/building), in buildings with the most recent registration activity (+5.1 gap in the 2025-plus bin), and in unresolved enforcement cases. On the extensive margin, a slightly higher share of non-stabilized buildings have at least one violation; the positive signal comes from heavily burdened stabilized buildings accumulating far more violations per building. These patterns are consistent with a maintenance-burden story concentrated in a subset of the stabilized stock, but they do not rule out differential enforcement exposure, reporting behavior, or building-age confounding. The design sensitivity shown above—where tighter matching eliminates the gap—remains the binding constraint on causal interpretation.
San Francisco
Inventory / Compliance ResultWhat this analysis does
San Francisco’s Rent Board publishes a block-anonymized rental inventory dataset covering all registered units. This package documents 533,205 unit rows across five submission years (2022–2026), providing stock composition, geographic concentration, occupancy mix, and rent-band reporting across 41 neighborhoods and 11 supervisor districts.
Reporting Rollout by Submission Year
Unit rows and census-block coverage across five submission years. The 2022 launch covers 1,226 blocks; later years stabilize above 3,750.
| Year | Unit Rows | Blocks | Neighborhoods | Non-Owner Share |
|---|---|---|---|---|
| 2022 | 66,744 | 1,226 | 37 | 88.8% |
| 2023 | 107,886 | 3,753 | 38 | 86.7% |
| 2024 | 111,512 | 3,809 | 40 | 85.9% |
| 2025 | 132,088 | 3,854 | 41 | 88.0% |
| 2026 | 114,975 | 3,764 | 41 | 89.8% |
What this is: An inventory and compliance result documenting stock composition, geographic concentration, occupancy mix, and rent-band reporting. What it is not: A treatment-effects estimate. The source is block-anonymized and owner-reported. The 2022 submission year has narrower geographic coverage (1,226 blocks vs. 3,700+ later), reflecting the program’s rollout.
West Hollywood
Linked Administrative ResultWhat this analysis does
West Hollywood’s Rent Stabilization Ordinance (RSO) protects a defined stock of rental units. This package links the protected-stock registry (17,175 unit rows, 5,959 addresses, 2,108 parcels) to three public administrative surfaces: buyout tracking, seismic retrofit records, and commission appeal hearings. The result documents the overlap between protected rental stock and each administrative layer.
| Administrative Surface | Matched | Total | Match Rate | Stock Share |
|---|---|---|---|---|
| Buyout tracking | 71 | 206 | 34.5% | 0.6% |
| Seismic retrofit | 705 | 851 | 82.8% | 32.7% |
| Commission appeals | 14 | 34 | 41.2% | 0.2% |
What this is: A linked administrative result documenting protected-stock overlap with buyout agreements, seismic exemptions, and bounded appeal-board hearings. The seismic surface shows strong linkage (82.8%). Buyout and appeal surfaces are sparser but track real administrative activity. What it is not: A treatment-effects estimate. The hearings layer is bounded to the currently collected public archive. Match rates describe surface overlap, not causal relationships.
Los Angeles
Bounded Comparative PilotWhat this analysis does
This pilot samples 150 properties across a fixed tranche of 8 street names in central Los Angeles, linking LAHD property-activity records (code-enforcement cases, complaints, SCEP inspections) to LA County Assessor parcel context. It compares properties with and without rent registration numbers on case volume, building age, and unit count.
| Street | Sampled Rows | Properties | Rent Registered |
|---|---|---|---|
| Main | 22 | 16 | 11 |
| Broadway | 25 | 19 | 9 |
| Spring | 25 | 19 | 3 |
| Olympic | 25 | 20 | 14 |
| Figueroa | 25 | 21 | 9 |
| Vermont | 22 | 14 | 11 |
| Western | 25 | 22 | 15 |
| Alvarado | 25 | 19 | 12 |
| Group | Properties | Mean Cases | Mean Units | Mean Year Built |
|---|---|---|---|---|
| Registered | 84 | 12.31 | 10.32 | 1,931 |
| Not registered | 66 | 20.20 | 65.23 | 1,960 |
Registered properties in this sample show fewer mean cases (12.3 vs. 20.2), fewer units (10.3 vs. 65.2), and older construction (1931 vs. 1960) compared to unregistered properties. The assessor layer provides citywide context: 806,127 parcels, of which 114,856 are pre-1979 multifamily proxies (RSO-eligible). Sample-level assessor matches remain sparse (2 of 150).
Scope: This is a deterministic bounded pilot across a fixed street sample, not a citywide estimate. The assessor layer is contextual because the sample-level match rate is sparse. Do not generalize these per-street patterns to the broader Los Angeles rental market.
Oakland, CA
Administrative case panelWhat this analysis does
Oakland’s Rent Adjustment Program (RAP) administers tenant petitions for rent adjustments, decreased-services complaints, and code-related grievances. When a tenant believes their landlord has reduced services (broken appliances, pest problems, security failures) or violated building codes, they file a RAP petition. Each case is assigned a hearing officer, tracked through a formal workflow, and resolved by order, settlement, or dismissal.
This analysis extracted the complete public RAP search universe for three petition grounds and linked the resulting addresses to Oakland’s 311 code-enforcement request database (30,164 total requests) to add a second official enforcement signal. The result is a near-full local administrative panel — not a proof of concept, but a reproducible case-level dataset.
RAP Petitions by Year and Ground
Annual case counts for each petition ground. “Decrease in services” was the primary category through 2020, peaking at 350 cases in 2016. In 2021 the RAP relabeled this ground to “fewer housing services” — the underlying complaint type (broken appliances, pest issues, security lapses) is the same. “Code violation” cases are a separate, smaller category tracking formal building-code breaches.
311 Code-Enforcement Matches by Year
Number of Oakland 311 code-enforcement requests that matched to RAP petition addresses, by petition year. A spike in 2018–2019 suggests overlapping enforcement activity at the same properties where tenants filed decreased-services complaints.
| Petition ground | What it covers | Search rows | Detail rows | Unique cases | 311 matches |
|---|---|---|---|---|---|
| Code violation | Formal building-code breaches reported by tenants | 69 | 69 | 65 | 14 |
| Decrease in services | Landlord reduced or failed to maintain services (pre-2021 label) | 2,997 | 2,996 | 2,988 | 275 |
| Fewer housing services | Same complaint type, relabeled post-2021 | 721 | 734 | 672 | 151 |
Detail rows can slightly exceed search rows because one visible search entry can yield multiple structured detail rows in the RAP workflow system.
What this is: A near-full local administrative panel for tenant-service and code-related petitions, with a linked 311 enforcement signal. The public RAP workflow is machine-usable and reproducible. What it is not: A causal estimate of citywide rent control effects. The panel tracks petition volume and enforcement overlap, not treatment effects.
Saint Paul, MN
Modern ordinance case studyWhat this analysis does
Saint Paul voters approved a 3% annual rent stabilization cap by ballot initiative in November 2021, with the ordinance taking effect in May 2022. Subsequent amendments in January 2023 and June 2025 modified exemptions and enforcement. This provides the cleanest modern policy case study in the project — a specific city with a known adoption date.
The analysis uses a simple difference-in-differences design comparing Ramsey County (Saint Paul) to two neighboring counties (Hennepin County and Dakota County) on three federal outcome series: building permits (BPS), covered employment (QCEW), and average weekly wages (QCEW).
Saint Paul Difference-in-Differences
Change in each outcome from pre-period to post-period, comparing Ramsey County (treated) to the average of Hennepin and Dakota Counties (controls). Negative DiD means the treated county’s change was worse relative to controls.
| Outcome | What it measures | Treated pre | Treated change | Control change | DiD |
|---|---|---|---|---|---|
| Building permits | New housing units authorized in Ramsey County (annual) | 1,904 | −459 | −979 | +520 |
| Covered employment | Workers covered by unemployment insurance in Ramsey County (quarterly) | 318,378 | +7,084 | +13,390 | −6,306 |
| Average weekly wage | Mean weekly wage across all covered employers (quarterly) | $1,323 | +$144 | +$171 | −$27 |
Interpretation: Permits declined less in Saint Paul than in neighboring counties (positive DiD of +520 units). Employment grew more slowly (−6,306 DiD). Wage effects were negligible (−$27/week). With only one treated county and two controls, these are descriptive differences, not powered causal estimates. FHFA HPI for the Twin Cities MSA rose from 265.0 pre-ordinance to 342.6 post-ordinance.
San Jose, CA
Policy timing case studyWhat this analysis does
San Jose’s Apartment Rent Ordinance (ARO), adopted in 2017, caps annual rent increases at 5% for buildings with 3+ units built before 1979. This analysis uses the same DiD framework as Saint Paul, comparing Santa Clara County (treated) to neighboring San Mateo County and Contra Costa County (controls) on building permits, covered employment, and weekly wages. FHFA HPI for the San Jose MSA is also tracked.
San Jose Difference-in-Differences
Change in each outcome from pre-period to post-period, comparing Santa Clara County (treated) to the average of San Mateo and Contra Costa Counties (controls).
| Outcome | What it measures | Treated pre | Treated change | Control change | DiD |
|---|---|---|---|---|---|
| Building permits | New housing units authorized in Santa Clara County (annual) | 6,860 | −1,253 | −94 | −1,159 |
| Covered employment | Workers covered by unemployment insurance (quarterly) | 1,071,862 | +29,269 | +5,018 | +24,251 |
| Average weekly wage | Mean weekly wage across all covered employers (quarterly) | $2,432 | +$924 | +$665 | +$259 |
Interpretation: Permits declined substantially more in Santa Clara County than controls (−1,159 DiD). Employment and wages grew faster than controls (+24,251 and +$259 DiD respectively), likely reflecting Silicon Valley’s tech economy. FHFA HPI rose from 379.4 pre-ARO to 491.0 post-ARO. With one treated county and two controls, these are descriptive.
Other City Extensions
Data extracted & linkedWashington, DC
AnalyzedWhat does the assessment record reveal about protected stock and tenure patterns?
What’s been done: Analyzed 130,934 residential parcels across 8 wards.
Identified 66,367 rental-probable and 64,567 owner-occupied proxy parcels.
Ward rental shares range from 35% to 64%. Enriched with 40,887 condo records.
Assessment gap and neighborhood-level disparity analysis completed.
Status: Assessment and tenure analysis complete. DHCD RentRegistry query next.
Berkeley
PilotDid registered legal rent ceilings diverge from city-wide market trends?
What’s been done: Tested the Rent Board’s Unit Information Lookup interface.
Initial pilot returned structured data for 1 address. Registry maintains unit-level ceilings
that could be compared to ACS and FHFA market trends.
Status: Lookup feasibility confirmed. Needs scaled extraction.
DC has ward-level assessment analysis. Berkeley needs scaled extraction. None of these are causal estimates.
Full Audit Status
12 citiesEvery city below has a completed data-source audit documenting available public records, join keys, data quality, and feasibility assessment.
| City | Policy type | Decision | Primary data | Key question |
|---|---|---|---|---|
| New York City | Legacy rent stabilization | Proceed | RGB RSBL + HPD violations | HPD violation trends in stabilized buildings |
| Los Angeles | Legacy RSO | Proceed | LAHD property activity + Assessor | Bounded 8-street comparative pilot (150 properties) |
| Oakland | Legacy rent adjustment | Proceed | RAP cases + 311 enforcement | 3,805-row admin panel with 311 linkage |
| Berkeley | Legacy rent control | Proceed | Rent Board registration | Legal ceiling vs. market divergence |
| Washington, DC | Legacy rent control | Proceed | DHCD RentRegistry | Protected stock and turnover |
| Saint Paul | Modern stabilization (2022) | Proceed | BPS + FHFA + QCEW | Ordinance effects on permits/prices/wages |
| San Francisco | Legacy rent control | Proceed | Rent Board inventory (533,205 rows) | Stock composition, occupancy, rent-band reporting |
| San Jose | Modern ARO (2017) | Proceed | BPS + FHFA + QCEW | ARO effects on permits/prices/wages |
| West Hollywood | Legacy RSO | Proceed | RSO registry + buyouts + seismic + appeals | Protected-stock overlap with admin surfaces |
| Santa Monica | Legacy rent control | Limits | MAR records | Citywide MAR export feasibility |
| East Palo Alto | Legacy stabilization | Limits | Board agendas + MAR | Address-level outcomes |
| Mountain View | Modern CSFRA (2016) | Proceed | CSFRA property search | Coverage and petition panel |