OpenRepro

← Back to the paper page

Replication record · arXiv:1812.09970

Synthetic Difference-in-Differences

Reproduced

Running the authors own Table 1 code (vignettes/paper-results.Rmd) at the synthdid commit named in their session-info, with R 4.0.5 and the pinned MCPanel and glmnet commits, reproduced every entry of Table 1 at the reported precision: SDID -15.6 (8.4), SC -19.6 (9.9), DID -27.3 (17.7), MC -20.2 (11.5), DIFP -11.1 (9.5). Point estimates differ from the paper by at most 0.05, and placebo standard errors by at most 0.05. Deviations were limited to platform (x86_64 Linux instead of an M1 Mac) and one non-estimating build dependency. The paper-era synthdid commit is no longer on any branch of the repository but is still retrievable from GitHub by its hash.

Plan. Registered before results were recorded; not sealed (legacy).

Qualifiers. The plan was never sealed (legacy attempt): claims were frozen only by their first result. At least one result was matched by the legacy rule rather than bound to an excerpt. At least one scored value was read from an excerpt the agent chose after seeing the output, not by a rule fixed before it.

Scored (headline)
4 of 4 consistent
Other checks
6 of 6 consistent
Deviations
3 (0 material)
Integrity flags
0
Logged compute
0.42 h over 8 commands and 4 jobs
Commits the recorded results name
2408a924: 10 results, named in the result's method text
Work tree when the attempt ended
synth-inference/synthdid@70c1ce3eac58 in /work/synthdid
Work tree when the attempt ended
susanathey/MCPanel@6b2706fd7c35 in /work/src/MCPanel
Work tree when the attempt ended
cran/glmnet@f4fc95ab49ef in /work/src/glmnet
Work tree when the attempt ended
synth-inference/synthdid@2408a924e4db in /work/src/synthdid

Claims

The SDID estimate of the average effect of Proposition 99 on California per-capita cigarette sales over the 12 post-treatment years is -15.6 packs.headline

Consistent
Paper -15.6 packs per capitaObserved -15.6038 packs per capitaAccepted if within ±0.1
Estimate -15.6 -19.6 -27.3 -20.2 -11.1

Table 1, p. 8 · quote verified on p. 8 · equivalence check · observed/published 1 · registered at event 9, before the first recorded result

Method, tolerance rationale and evidence

Metric. SDID point estimate (synthdid_estimate on the California Prop 99 panel)

Why this tolerance. The estimator is a deterministic optimization on the same public data; the paper rounds to 0.1, so one rounding unit allows for rounding plus minor solver differences.

Event 45. Observed -15.6038, delta -0.003828, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job.

The placebo-method standard error of the SDID estimate is 8.4.headline

Consistent
Paper 8.4 packs per capitaObserved 8.36799 packs per capitaAccepted if within ±0.84
Standard error (8.4) (9.9) (17.7) (11.5) (9.5)

Table 1, p. 8 (placebo method, Section 5, Algorithm 4) · quote verified on p. 8 · equivalence check · observed/published 0.9962 · registered at event 10, before the first recorded result

Method, tolerance rationale and evidence

Metric. sqrt of the placebo variance estimate for SDID

Why this tolerance. Placebo SEs are Monte Carlo estimates from random reassignment; with 200 replications the relative sampling error of an SD estimate is about 5%, so a 10% band (about two sampling SDs) is used.

Event 50. Observed 8.36799, delta -0.03201, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job. Placebo standard error with set.seed(12345) before each estimator, 200 replications, as in the vignette.

The synthetic control estimate is -19.6.headline

Consistent
Paper -19.6 packs per capitaObserved -19.6197 packs per capitaAccepted if within ±0.1
Estimate -15.6 -19.6 -27.3 -20.2 -11.1

Table 1, p. 8 · quote verified on p. 8 · equivalence check · observed/published 1.001 · registered at event 11, before the first recorded result

Method, tolerance rationale and evidence

Metric. SC point estimate (sc_estimate)

Why this tolerance. Deterministic optimization; one rounding unit.

Event 46. Observed -19.6197, delta -0.01966, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job.

The difference-in-differences estimate is -27.3.headline

Consistent
Paper -27.3 packs per capitaObserved -27.3491 packs per capitaAccepted if within ±0.1
Estimate -15.6 -19.6 -27.3 -20.2 -11.1

Table 1, p. 8 · quote verified on p. 8 · equivalence check · observed/published 1.002 · registered at event 12, before the first recorded result

Method, tolerance rationale and evidence

Metric. DID point estimate (did_estimate)

Why this tolerance. Closed-form estimator on fixed data; one rounding unit.

Event 47. Observed -27.3491, delta -0.04911, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job.

The matrix completion estimate is -20.2.

Consistent
Paper -20.2 packs per capitaObserved -20.2181 packs per capitaAccepted if within ±0.5
Estimate -15.6 -19.6 -27.3 -20.2 -11.1

Table 1, p. 8 · quote verified on p. 8 · equivalence check · observed/published 1.001 · registered at event 13, before the first recorded result

Method, tolerance rationale and evidence

Metric. MC point estimate (MCPanel nuclear-norm estimator as used in the authors code)

Why this tolerance. MC chooses its regularization by cross-validation over randomly formed folds, so results can move slightly between runs and package versions.

Event 48. Observed -20.2181, delta -0.01814, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job.

The synthetic control with intercept (DIFP) estimate is -11.1.

Consistent
Paper -11.1 packs per capitaObserved -11.1046 packs per capitaAccepted if within ±0.1
Estimate -15.6 -19.6 -27.3 -20.2 -11.1

Table 1, p. 8 · quote verified on p. 8 · equivalence check · observed/published 1 · registered at event 14, before the first recorded result

Method, tolerance rationale and evidence

Metric. DIFP point estimate

Why this tolerance. Deterministic optimization; one rounding unit.

Event 49. Observed -11.1046, delta -0.004645, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job.

The placebo-method standard error of the SC estimate is 9.9.

Consistent
Paper 9.9 packs per capitaObserved 9.91743 packs per capitaAccepted if within ±0.99
Standard error (8.4) (9.9) (17.7) (11.5) (9.5)

Table 1, p. 8 · quote verified on p. 8 · equivalence check · observed/published 1.002 · registered at event 15, before the first recorded result

Method, tolerance rationale and evidence

Metric. sqrt of the placebo variance estimate for SC

Why this tolerance. Monte Carlo placebo estimate; 10% band, as for the SDID standard error.

Event 51. Observed 9.91743, delta +0.01743, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job. Placebo standard error with set.seed(12345) before each estimator, 200 replications, as in the vignette.

The placebo-method standard error of the DID estimate is 17.7.

Consistent
Paper 17.7 packs per capitaObserved 17.7403 packs per capitaAccepted if within ±1.77
Standard error (8.4) (9.9) (17.7) (11.5) (9.5)

Table 1, p. 8 · quote verified on p. 8 · equivalence check · observed/published 1.002 · registered at event 16, before the first recorded result

Method, tolerance rationale and evidence

Metric. sqrt of the placebo variance estimate for DID

Why this tolerance. Monte Carlo placebo estimate; 10% band, as for the SDID standard error.

Event 52. Observed 17.7403, delta +0.04027, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job. Placebo standard error with set.seed(12345) before each estimator, 200 replications, as in the vignette.

The placebo-method standard error of the MC estimate is 11.5.

Consistent
Paper 11.5 packs per capitaObserved 11.5099 packs per capitaAccepted if within ±1.15
Standard error (8.4) (9.9) (17.7) (11.5) (9.5)

Table 1, p. 8 · quote verified on p. 8 · equivalence check · observed/published 1.001 · registered at event 17, before the first recorded result

Method, tolerance rationale and evidence

Metric. sqrt of the placebo variance estimate for MC

Why this tolerance. Monte Carlo placebo estimate; 10% band, as for the SDID standard error.

Event 53. Observed 11.5099, delta +0.009864, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job. Placebo standard error with set.seed(12345) before each estimator, 200 replications, as in the vignette.

The placebo-method standard error of the DIFP estimate is 9.5.

Consistent
Paper 9.5 packs per capitaObserved 9.45566 packs per capitaAccepted if within ±0.95
Standard error (8.4) (9.9) (17.7) (11.5) (9.5)

Table 1, p. 8 · quote verified on p. 8 · equivalence check · observed/published 0.9953 · registered at event 18, before the first recorded result

Method, tolerance rationale and evidence

Metric. sqrt of the placebo variance estimate for DIFP

Why this tolerance. Monte Carlo placebo estimate; 10% band, as for the SDID standard error.

Event 54. Observed 9.45566, delta -0.04434, consistent. Evidence events [42] (value matched by the legacy rule; not bound to an excerpt). Table 1 code extracted verbatim from vignettes/paper-results.Rmd at synthdid commit 2408a924 (R 4.0.5, MCPanel 6b2706fd, glmnet 4.1-1), run once; value printed at full precision by the table1 job. Placebo standard error with set.seed(12345) before each estimator, 200 replications, as in the vignette.

Deviations from the paper's protocol

Notes from the attempt

Assurance

What the harness enforced for this attempt, and what it predates. A legacy attempt is labelled, never rewritten.

Plan sealed
no
Sealed before scored execution
no
Evidence bound to artifact excerpts
no
Values extracted by a sealed rule
no
Execution manifest for cited jobs
no
Semantic re-derivation passed
yes
Predates
a sealed plan before scored execution, evidence bound to an exact artifact excerpt, an execution manifest per job (HEAD, status, diff hash, driver file hashes), the paper text hashed at create, jobs declared scored or unscored, a declared reason for every repeated result, an extraction rule per claim, fixed by the seal
Engine
report built by repro 0.2.1; attempt created by repro 0.1.0

Provenance

Driven by
operator:claude-opus-5-5 (Claude Code session)
Sandbox
3.5 CPUs, 6.00 GiB memory, no GPU · image repro-sandbox:0.2
Period
2026-10-18T01:03:28.762Z → 2026-10-18T01:36:21.344Z
Event log
59 events, hash-chained; head 8b90233f1aba9384bcb8d580e05cbaaf9a5947ebf64d2d62c4f0f4b157f1f7cb
Verify
python3 openrepro_verify.py arxiv-1812-09970-20261018T010328Z checks the chain and every artifact with the Python standard library alone; repro verify also recomputes every quote match, evidence check and verdict and re-derives this report (engine 0.2.1).
Right of reply
Authors may submit a response, which is published alongside this report unedited.

← Back to the paper page