Pre-registration
Binding rent control initiates a three-order causal chain. FIRST-ORDER: sitting tenants in covered units receive a real transfer — rents are held below market, tenure security rises. This is an acknowledged policy success on its own terms for the intended beneficiaries. SECOND-ORDER: new-build permits and new rental-stock additions contract in affected markets, labour-mobility falls as tenants cannot move without losing a below-market contract, and landlord investment in maintenance declines. THIRD-ORDER: housing stock quality decays, supply-demand mismatch produces queues and waiting lists (Stockholm), distortion into alternative tenure (conversions to owner-occupation, Airbnb, corporate-let exemptions) erodes the rental base; mobility-penalised labour markets show productivity drag. Cases: Berlin Mietendeckel 2020-2021, St Paul 2021, NYC 1947-present, Stockholm continuous queue, San Francisco 1994 expansion.
Falsification criterion — what would disprove this
This hypothesis is considered falsified if:
Not supported if, across the five cases: (a) FIRST-ORDER rent-reduction for sitting tenants is confirmed at p<0.05 (acknowledged success) AND (b) NEW-BUILD and MOBILITY SECOND-ORDER divergence fails to appear (<1.0pp deviation from synthetic control) in at least 3/5 cases AND (c) QUALITY/QUEUE/EXEMPTION THIRD-ORDER divergence fails to appear in at least 3/5 cases. If the first-order rent suppression is confirmed but the second/third-order chain does not materialise, the causal-chain claim is refuted even though the policy mechanism works on its own terms.
formal test & threshold
test: multi_case_synthetic_control_causal_chain threshold: FIRST-ORDER rent suppression confirmed at p<0.05 AND new-build growth divergence <=-2pp in at least 3/5 cases at p<0.10 AND quality/queue/exemption divergence appears in at least 3/5 cases at p<0.10
Method
- Template
synthetic_control- Fixed effects
city, year- Clustering
city- Sample
- 3 countries · 1990 – 2024
- Evidence type
- causal
Primary: synthetic control per treated case (Berlin, SF 1994, St Paul, Stockholm-continuous as cross-section-with-donor-Nordic- cities). Secondary: Callaway-Sant'Anna staggered DiD when multiple treated cases pool onto common outcome definitions. Follows Diamond-McQuade-Qian 2019 for SF and Kholodilin-Kohl 2023 for Berlin.
Data
| Variable | Source | Transform |
|---|---|---|
rent_level_for_sitting_tenants outcome | destatis:immoscouttier 1 bls:CPI-renttier 1 scb:hyresgaststatistik (SWE)tier 1 | log_real_rent |
new_rental_stock_growth outcome | destatis:baufertigstellungen (DEU)tier 1 us_census:building_permits (USA)tier 1 scb:nybyggnation (SWE)tier 1 | yoy_pct_change |
tenant_mobility_rate outcome | constructed:share of renters moving in past 12 months; US census ACS; SWE SCB migration registertier 5 | level_pct |
stock_quality_index outcome | constructed:age of building stock + maintenance complaints where available; destatis:wohngebaeude_baujahr; us_census:ACS; SCB housintier 5 | index |
airbnb_and_corporate_exemption_share outcome | constructed:AirDNA Airbnb listings as share of rental stock + corporate-let exemption count; official registries where available (Betier 5 | share |
waiting_list_length_or_queue_years outcome | Stockholm bostadsformedlingen; NYC HPD lottery data | years |
binding_rent_control_indicator treatment | constructed:1 in treated city-years (Berlin 2020-2021, SF 1994 expansion post-1995, St Paul 2021+, Stockholm continuous, NYC continutier 5 | indicator |
metro_population control | destatis:bevoelkerungtier 1 us_census:populationtier 1 scb:folkmangdtier 1 | log_level |
metro_employment_growth control | destatis:arbeitsmarkttier 1 bls:LAU_metrotier 1 scb:arbetsmarknadtier 1 | yoy_pct_change |
mortgage_rate control | ecb:interest_rates (DEU)tier 1 fred:MORTGAGE30US (USA)tier 1 riksbank:policy_rate (SWE)tier 1 | level_pct |
● ready · ● pending · ● reconstruct-needed
Detailed result card
Result card — rent_control_housing_supply_quality_decay_chain
Verdict: PARTIAL — mean_gap=-1, p_perm=0.333; claim direction ambiguous
Pre-registration
- Claim: Binding rent control initiates a three-order causal chain. FIRST-ORDER: sitting tenants in covered units receive a real transfer — rents are held below market, tenure security rises. This is an acknowledged policy success on its own terms for the intended beneficiaries. SECOND-ORDER: new-build permits and new rental-stock additions contract in affected markets, labour-mobility falls as tenants cannot move without losing a below-market contract, and landlord investment in maintenance declines. THIRD-ORDER: housing stock quality decays, supply-demand mismatch produces queues and waiting lists (Stockholm), distortion into alternative tenure (conversions to owner-occupation, Airbnb, corporate-let exemptions) erodes the rental base; mobility-penalised labour markets show productivity drag. Cases: Berlin Mietendeckel 2020-2021, St Paul 2021, NYC 1947-present, Stockholm continuous queue, San Francisco 1994 expansion.
- Falsification rule: Not supported if, across the five cases: (a) FIRST-ORDER rent-reduction for sitting tenants is confirmed at p<0.05 (acknowledged success) AND (b) NEW-BUILD and MOBILITY SECOND-ORDER divergence fails to appear (<1.0pp deviation from synthetic control) in at least 3/5 cases AND (c) QUALITY/QUEUE/EXEMPTION THIRD-ORDER divergence fails to appear in at least 3/5 cases. If the first-order rent suppression is confirmed but the second/third-order chain does not materialise, the causal-chain claim is refuted even though the policy mechanism works on its own terms.
Synthetic-control estimate
- shape: synth_did
- treated_country: DEU
- event_year: 2020
- n_donors: 2
- donor_weights (top): {'USA': 0.5, 'SWE': 0.5}
- pre_rmse: 1.0
- pre_period_sd: 0.0
- mean_post_gap: -1.0
- end_period_gap: -1.0
- post_period_years: [2020, 2024]
- placebo_p_value: 0.3333333333333333
- n_placebos: 2
- method: synthetic-control via NNLS, permutation inference
Variables resolved
constructed: share of renters moving in past 12 months; US census ACS; SWE SCB migration register→ tenant_mobility_rate (outcome, n=105)constructed: age of building stock + maintenance complaints where available; destatis:wohngebaeude_baujahr; us_census:ACS; SCB housing register→ stock_quality_index (outcome, n=1)ecb:interest_rates (DEU); fred:MORTGAGE30US (USA); riksbank:policy_rate (SWE)→ mortgage_rate (controls, n=56)
Generated by scripts/run_synth_did.py at 2026-04-30T13:38:25+00:00
Strongest opposing argument
Every hypothesis ships with its charitable opposing argument. The framework earns credibility by handling objections at their strongest, not weakest.
Notes
The mechanism link between orders is central: tenants gain transfer (1st), landlords under-invest and new supply dries up (2nd), and the rental base erodes structurally with quality decay and queue rationing (3rd). Falsifying the chain requires null 2nd/3rd-order effects even when the 1st-order transfer is confirmed.