Empirical causal inference · labour economics

Copycat Economy

What happens right across the border after a minimum-wage increase?

Wages rise. Employment doesn’t measurably fall.

Restaurant employment and wages in 417 pairs of adjacent counties separated by a state line, around 30 state minimum-wage increases (2012q1–2017q1). A state border is an administrative discontinuity running through what is often a single local economy: two adjacent counties share a labour market, a weather system and a regional demand cycle. What they do not share is a legislature.

Restaurant wage
+3.5 log pts
SE 0.6 · 95% CI [+2.3, +4.7]
Restaurant employment
+1.1 log pts
SE 0.8 · 95% CI [-0.5, +2.7]
Implied employment elasticity
+0.08
95% CI [-0.04, +0.21] w.r.t. the minimum wage

Units are log points, not percent. At this magnitude the approximation is close (+3.5 log points ≈ +3.6%), but the exact transform is exp(β) − 1.

The result

Event study of log restaurant employment
   from eight quarters before to twelve quarters after a state minimum-wage increase, with
   95% confidence bands and a flat pre-treatment path.
Event study, log restaurant employment. Seven pre-treatment coefficients are estimated and plotted rather than suppressed, because they are the test of the design. The joint test that all seven are zero does not reject (F = 0.97, p = 0.46). County and border-pair-by-period fixed effects; standard errors clustered on the state-pair.
How to read the employment estimate

This is a bounded null, not evidence that minimum wages raise employment. The point estimate is positive but statistically insignificant, and under a randomisation test conducted at the level where policy is actually assigned it is indistinguishable from noise (p = 0.226).

What the interval does exclude is the conventional disemployment range: elasticities more negative than -0.04 lie outside it, ruling out the −0.1 to −0.3 band at this sample’s moderate increases (median differential $0.75). It is not proof of exactly zero.

Event studies for average weekly wage
   and establishment count.
The wage response appears immediately at k = 0 and persists. The establishment count does not move — and, as set out below, fails its identifying diagnostics.

The border design

The counterfactual for a treated border county is its neighbour across the line. The preferred specification adds a border-pair-by-period fixed effect, so only the within-pair, within-quarter contrast identifies the effect and any shock common to the local economy is differenced out.

Treatment is a material increase in a state’s effective minimum wage (max(state statute, federal)): at least $0.25 and at least 2.0%. Two thresholds, because either alone admits the wrong events — a dollar rule treats $0.25 off $7.25 like $0.25 off $13.00, and a percentage rule admits trivial CPI indexation.

Map of the contiguous United States with
   treated-side and control-side border counties shaded.
329 border county pairs, 23 treated and 30 control states. A county can be treated in one event and a control in another, which is why the design is stacked: each event carries its own cohort of controls that are clean throughout that event’s window.
Detail map of a single border county pair, with the
   treated county and its cross-border control shaded.
One pair in detail, selected by the longest shared border — a geographic rule fixed before any outcome was examined.
Average indexed restaurant employment for
   treated and control sides around the event.
Before any regression: average employment on each side, indexed to its own pre-period mean. The two sides track each other closely before the increase, which is what the design requires.

The Census adjacency file yields 2,616 directed cross-state links — exactly twice the 1,308 unordered pairs, a symmetry verified as a test rather than assumed. Shared border lengths are computed from Census geometry in sf. This matters: 57 of the 1,308 “adjacent” pairs share no measurable frontier at all. They meet only at a corner, and there is no border for a worker or a diner to cross.

Flowchart of sample construction from 100
   material state increases down to the final event-pairs.
Every exclusion rule is fixed in config/params.yml before estimation. The single largest exclusion drops 292 candidate event-pairs because the control state also moved materially within four quarters.

Why inference matters

The sharpest methodological result here is that the randomisation scheme decides the answer. Keeping every pair, date and outcome fixed and randomising only which side of the border is called treated:

Pair-level flipping
p = 0.049
Treats 417 pairs as 417 independent experiments. Anti‑conservative.
State-pair flipping
p = 0.226
Respects that states pass the law, so pairs sharing a state share one draw of any state-level shock.

Minimum wages are legislated by states, not by county pairs, so the dependence structure of the randomisation has to match the dependence structure of policy assignment. The validation is that the cluster-preserving placebo standard deviation, 0.0084, almost exactly reproduces the clustered standard error, 0.0081 — the design-based and model-based approaches agree once the design-based one is done at the right level.

The wage effect clears both schemes at p = 0.001.

Histograms of 1,000 placebo estimates under
   two randomisation schemes, with the observed estimate marked.
1,000 draws per scheme. Because both fixed effects are nested within the event-pair, the estimator is separable by pair and a label flip exactly flips that pair’s contribution, so this distribution has a closed form — verified against feols to 1.5e-15.

Spillovers

The wage effect is smallest for the geographically closest pairs: +1.5 log points under 40 km, rising to +4.2 log points beyond 80 km. The same ordering appears using shared border length, which is measured from geometry and does not depend on where a centroid falls.

Interpretation, stated conditionally

This is the opposite of a simple “effect decays with distance” story. If the distance pattern reflects control-county spillovers — workers commuting across the line, forcing control-side restaurants to raise pay — then the main contrast would be biased toward zero. Other explanations remain possible, and county centroid distance is a noisy proxy for how close people actually live to the line. This is not proof of spillover.

Treatment effect by geographic exposure bin,
   for centroid distance and shared border length.
Treatment interacted with geographic exposure bins, with 95% confidence intervals and the number of border pairs behind each estimate.

Four estimators

Under staggered treatment, estimator disagreement is informative rather than noise to be averaged away. These are not averaged into a consensus number.

EstimatorLog employmentLog weekly wage
naive TWFE (pooled)-0.019+0.047
Callaway–Sant'Anna-0.008+0.031
Sun–Abraham-0.006+0.034
stacked border design primary+0.011+0.035

The Goodman–Bacon decomposition shows why the naive TWFE figure is the outlier:

2×2 comparisonWeightAvg. estimateControl group
treated vs untreated0.760-0.015clean (control untreated)
later vs earlier treated0.154-0.018already treated — contaminated
earlier vs later treated0.086+0.010clean (control untreated)

15.4% of the pooled TWFE weight sits on the contaminated block, where a later-treated county is compared against an already-treated one, so the control trend carries the earlier county’s own treatment dynamics. That block also has the most negative average estimate of the three — the mechanism dragging the pooled coefficient down. The three estimators built to avoid that contamination all land near zero.

A falsification that failed

Establishment count — diagnostics reject

Pre-trend joint test: F = 2.39, p = 0.033 (rejects). Six-quarter fake-date placebo: -0.013, p = 0.020 (significant).

Parallel trends is not credible for this outcome, so establishment estimates are reported descriptively and are not interpreted causally anywhere in the project. This is not buried: it demonstrates that the identification diagnostics have consequences.

Matching

The strict pre-specified 0.5 SD caliper on every one of five covariates retained only 18 pairs — unacceptable power loss. That was discovered from sample size and covariate balance alone, before any treatment effect was computed, and the design was then revised using pre-treatment balance only: the best-balanced half by Mahalanobis distance, 209 pairs. The chronology is not rewritten; both samples are reported.

Matching variables are measured strictly at k < 0, enforced in code and independently verified by recomputing every stored covariate from pre-period data alone.

Event study comparing the full border sample
   with the matched border sample.
Full border sample against the matched border sample. Mean absolute standardised differences fall from 0.73–0.92 to 0.42–0.59.

Data engineering

BLS / Census / policy data ↓ offline causal-inference pipeline ↓ persisted estimates + figures ↓ static research presentation (no estimator runs on a web request)
Timeline of state minimum-wage increases from
   2010 to 2022, with the increases used as events highlighted.
229 state minimum-wage increases across 31 states, 30 of which become events. Most are excluded by the pre-registered rules: no clean pre-period, a neighbour moving at the same time, or too little post-period.

Heterogeneity, marked exploratory

Three theory-driven splits on the treated county’s pre-treatment characteristics. The wage effect is present in every subgroup; the employment effect is null in every subgroup; and no subgroup difference is statistically significant for either outcome.

Not headline results

With 30 events and 55 state-pairs there is not enough independent variation to treat any single split as confirmatory, and no multiplicity correction would change that. These are reported so the whole picture is visible; none is promoted to a causal conclusion.

Forest plot of exploratory subgroup
   estimates for wage and employment, with the pre-specified pooled estimate marked separately.
Exploratory subgroup estimates with 95% confidence intervals and the number of event-pairs behind each. Below the dashed line, the diamond marks the pre-specified pooled estimate — the only headline number in the panel.

Limitations

Clustering choice moves the employment standard error only between 0.0071 and 0.0106 across six specifications, so no conclusion turns on it.

Reproduce

git clone https://github.com/Gariyuuu/copycat-economy.git
cd copycat-economy

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

./run_all.sh              # download, build, estimate, draw, test
./.venv/bin/python -m pytest tests -q   # 53 passed

Every analysis threshold lives only in config/params.yml, so there is exactly one place a researcher degree of freedom can be exercised and it is version-controlled. Sample construction never reads an outcome value — only whether a cell is observed.