Causal Data Science for Business Analytics
Hamburg University of Technology
Monday, 6. July 2026
Part V fills the same blanked-out block — each method relaxing parallel trends further.
S10 gave every clean control weight 1.
Today: which controls, and how much?

S10 answered “what’s the app worth on average?” The board now asks a different question: what did it do to Northgate — our flagship, market M17, the largest, seven stores, go-live week 53.
DiD needed a cohort — many units launched at similar times, so parallel trends could lean on an average and a comparison pool.
Northgate is one unit. Its pre-trend is mostly noise; there is no cohort to average over.
The single-unit problem
With one treated market and no cohort, “do the treated and controls move in parallel?” has nothing to discipline it. We need a different way to build the counterfactual.
To be clear, the number is not the problem: a plain 2×2 DiD on Northgate already gives +7.7% (true +8.3%). What fails at N = 1 is defending it — no cohort, no clustered inference, no pre-test power.
DiD and synthetic control differ in one choice — the donor weights. That flips the direction the missing \(Y(0)\) is imputed from:
The blend is a synthetic Northgate — a fictional market from real donors, standing in for the one we can’t observe.

Abadie-Diamond-Hainmueller’s objective: choose donor weights \(\omega\) to make the synthetic unit’s pre-treatment outcome path track the treated unit’s. (Abadie, Diamond, and Hainmueller 2010)
\[\min_{\omega}\ \sum_{t \le T_0}\Big(Y^{\text{treat}}_t - \sum_{j}\omega_j\,Y^{\text{donor}}_{j,t}\Big)^2 \quad \text{s.t. } \omega_j \ge 0,\ \textstyle\sum_j \omega_j = 1\]
The constraints make \(\omega\) a point in the simplex — non-negative, summing to 1. Convexity = no extrapolation: the synthetic unit stays inside the donors’ range.

Abadie’s original case: California’s Proposition 99 (1988). Synthetic California — a blend of other states — tracks the real state almost exactly before the tax (pre-RMSPE ≈ 1.8 packs). (Abadie, Diamond, and Hainmueller 2010, 2015)

Subtract synthetic from real and plot the gap. Flat at zero before 1988 (the fit was clean); it opens to ≈ −18.7 cigarettes/capita after — the effect of the tax.

Same recipe, harder unit. Northgate is the largest market — at the edge of the donor convex hull. No blend of smaller donors reaches its level: the dashed synthetic sits persistently below before launch.

The pre-gap isn’t flat — it sits at +6.8% (pre-RMSPE ≈ 0.070). That offset leaks straight into the post-gap:
+15.2% ≈ pre-offset +6.8% + true effect +8.3%

The blend is maximally sparse — one donor (M29) carries essentially all the weight, the rest sit at zero. That single weight vector is still a row describing how to rebuild one unit from the others (a seed for the matrix view later).
A synthetic unit is only as good as its donor pool. Three hygiene rules:
Is +15.2% distinguishable from noise? With one treated market and one realized path, there is no sampling distribution — no classic standard error. Abadie’s answer is a randomization test. (Abadie, Diamond, and Hainmueller 2010, 2015)
Placebo-in-space, three steps:
Why the ratio, not the raw gap
MSPE = the mean squared gap between a unit and its synthetic. Dividing post ÷ pre asks whether the gap grew after treatment relative to the pre-fit — so a placebo whose synthetic never tracked it can’t top the ranking just by being noisy.

Northgate’s gap is the biggest, yet it ranks 2 of 16 (Fisher p = 0.125; fit-filtered 2 of 15, p = 0.133). The test scores by MSPE ratio (post ÷ pre), so M29’s near-perfect pre-fit outranks Northgate’s bigger-but-noisier gap — not a larger effect.
Honest reading: with 15 donors and an imperfect fit, single-unit SC inference is fragile. Corroborate across methods — don’t hang the decision on one p-value.
The placebo test asks “is it extreme?” Newer theory asks the sharper question: how uncertain is the counterfactual itself? (Cattaneo et al. 2025)
The synthetic counterfactual is \(\widehat{Y}^{(0)}_t=\sum_{j}\widehat{\omega}_j\,Y_{jt}\). Its prediction error has two sources: in-sample — the weights \(\widehat{\omega}\) are estimated on a finite pre-period — and out-of-sample — irreducible noise in predicting a future path.
What scpi reports
A \((1-\alpha)\) prediction interval for the counterfactual \(Y^{(0)}_t\) — bounding the in-sample error and modelling the out-of-sample noise. Read the effect as \(\widehat{\tau}_t=Y^{\text{obs}}_t-\widehat{Y}^{(0)}_t\): the actual above the whole band means \(\tau_t>0\). A band for \(Y(0)\), not a sampling SE for the point.

Orange dashed = the synthetic counterfactual \(\widehat{Y}^{(0)}\); orange band = its scpi prediction interval (for \(Y(0)\)); teal = Northgate’s actual path. The gap between them is the effect: the honest effect band is [+6.1%, +10.1%], near the true +8.3% and well below the naive ≈+15% point. The actual sits above the band → a positive effect, and the naive point was overconfident.
Northgate is outside the donors’ hull, so no convex blend reaches it — the +6.8% offset. Augmented SC adds a ridge outcome-model correction that steps outside the simplex just enough. (Ben-Michael, Feller, and Rothstein 2021)

Source: Ben-Michael, Feller & Rothstein (2021)
Correct the classic weights’ leftover pre-period imbalance with an outcome model \(\widehat{m}(X)\): (Ben-Michael, Feller, and Rothstein 2021)
\[\begin{aligned} \widehat{Y}^{(0),\text{aug}}_{1T} &=\underbrace{\sum_i \widehat{\omega}^{sc}_i\,Y_{iT}}_{\text{classic SC}}+\underbrace{\Big(\widehat{m}(X_1)-\sum_i \widehat{\omega}^{sc}_i\,\widehat{m}(X_i)\Big)}_{\text{imbalance correction}}\\ &=\underbrace{\widehat{m}(X_1)}_{\text{outcome model}}+\underbrace{\sum_i \widehat{\omega}^{sc}_i\big(Y_{iT}-\widehat{m}(X_i)\big)}_{\text{SC-reweighted residuals}} \end{aligned}\]

Closing the pre-fit (offset ≈ 0.000) collapses the overshoot: augmented SC = +8.1%, 95% CI [+7.6%, +8.6%] — essentially the true +8.3%. Classic +15.2% → augmented +8.1%.
A great pre-fit feels like proof. It isn’t — fit is necessary, never sufficient.
The Ferman caution
Overfitting the pre-period ≠ an unbiased counterfactual. With many donors and a short pre-period you can drive the pre-fit to zero and still be biased — the weights fit noise, not structure. (Ferman and Pinto 2021)
So report three things, never one
This is the discipline S10 demanded — “corroborate with synthetic control.” The honesty rule: a point estimate without a band is not a finding.
The two methods we’ve used weight different axes of the same panel:
Each fixes one axis and optimizes the other. The obvious question: why not weight both?
Arkhangelsky et al.’s synthetic difference-in-differences: solve for unit weights \(\omega\) and time weights \(\lambda\), then run a weighted two-way DiD — three corners of one family. (Arkhangelsky et al. 2021)

Robust to both failure modes
Synthetic DiD is a two-way fixed-effects regression with the squared errors reweighted by \(\widehat\omega_i\,\widehat\lambda_t\):
\[(\widehat\tau^{\,sdid},\widehat\mu,\widehat\alpha,\widehat\beta)=\arg\min_{\tau,\mu,\alpha,\beta}\ \sum_{i=1}^{N}\sum_{t=1}^{T}\big(Y_{it}-\mu-\alpha_i-\beta_t-D_{it}\,\tau\big)^2\,\widehat\omega_i\,\widehat\lambda_t\]
\(\mu\) intercept · \(\alpha_i\) unit (market) effects · \(\beta_t\) period (week) effects · \(D_{it}=1\) for the treated market post-launch · \(\tau\) the ATT
| Estimator | Unit FE (α) | Weights on the squared errors |
|---|---|---|
| DiD | yes | uniform ω, uniform λ (drop out) → plain TWFE |
| SC | omitted | unit weights ω only; uniform λ |
| SDID | yes | both ω and λ |
All three keep the period effects \(\beta_t\) — DiD’s “time” leverage (the common trend), not a time weight. They differ only in whether the unit FE \(\alpha_i\) is kept and which of the weights \(\omega,\lambda\) are non-uniform.

Northgate’s unit and time weight vectors — now we know what they buy. Synthetic DiD = +7.9% (true +8.3%); plain DiD = +7.7%. Both near the truth, without a perfect SC fit.

Same three estimators as trajectories: treated Northgate (dark) vs its synthetic control (cyan); the effect is the arrow after week 53.
That sparse \(\lambda\) ribbon is the same time-weight vector you saw as bars — now as the pre-window that makes the lines parallel.

Classic SC +15.2% is the lone outlier; augmented +8.1% · SDID +7.9% · DiD +7.7% all cluster on the true +8.3%.
Methods that fail in different ways agreeing is the verdict the single placebo p-value couldn’t give — the honest answer is ~+8% with a band, not fifteen.
| Family | What it buys | What it costs |
|---|---|---|
|
Parallel-trends family S10 — DiD, CS, BJS |
Additive, transparent, cheap; borrows strength across a whole cohort. | Blind to a unit-specific, time-varying factor; needs a credible cohort and testable pre-trends. |
|
Hull + loadings S11 — SC, augmented SC, SDID |
Relaxes parallel trends; builds a unit-specific counterfactual that works at N = 1. | Needs the treated unit inside the donor hull and a non-overfit pre-fit; single-unit inference is weak. |
The S12 reveal — planted here
Stack \(\omega\) and \(\lambda\) as rows and you’re completing a low-rank matrix — the same latent factors S10 could not see. S12: DiD, SC, SDID and unconfoundedness become one matrix-completion problem under different regularizers.
Every estimator here weighted donors to build a counterfactual for one unit at one adoption date. Scale that up and the weighting paradigm answers by multiplying bookkeeping.
Many units — one date
A synthetic control per unit (then average), or one fit to their average? The honest default is partial pooling — a dial between the two.
Staggered dates
Split into adoption cohorts, solve an N = 1 fit per cohort in event time, then aggregate — SC’s Callaway–Sant’Anna analog, with one rule: never borrow from an already-treated unit.
Why S12 exists
This scales by adding bookkeeping — and still can’t represent a unit switching off. Impute the whole \(Y(0)\) matrix instead: matrix completion fills every grey cell from one low-rank structure, absorbing many units, staggered timing, and reversal natively.
| Thank you for your attention! | |
|
|
Causal Data Science for Business Analytics | 11. Synthetic Controls