DID-ACTO / FIELD GUIDE
Estimators, methods and availability
A reference to the statistical toolkit: what each method estimates, when the MCP workflow can use it, and which uncertainty it supplies.
How to read availability
Primary is the main estimate in an eligible plan. Robustness is a comparison, subject to compatible targets. Exact profile means the design, options and inference must match a supported procedure. Expert MCP uses a separate request path. Python only / no planner role is not a normal guided MCP choice.
The Python registry contains 21 canonical estimators. That count includes experimental and research-only procedures. Start with the design and target: the planner then selects eligible methods, explains its choices and lists the checks included in your analysis.
Staggered DiD: seven estimator families
| Estimator / role | What it estimates | When it is available | Inference / checks |
|---|---|---|---|
Callaway–Sant’Anna (CS)callaway_santannaPrimary / robustness | Estimates cohort-by-period treatment effects, then aggregates to overall, event-time, cohort or calendar targets. | Binary absorbing treatment with eligible never-treated or not-yet-treated comparisons. Conditional panel profiles support 1–5 finite, unit-constant baseline covariates; the exact profile must match. | Influence-function covariance, pointwise intervals, and multiplier-bootstrap simultaneous bands for supported vectors. |
Sun–Abrahamsun_abrahamExact profile | Interaction-weighted event study for effects that vary across adoption cohorts and time since treatment. | Balanced, unweighted panel, never-treated controls, no covariates, reference event −1 and the pinned fixest 0.14.2 convention. Dynamic robustness by default; may be explicitly requested as the dynamic primary. Other variants are unpromoted. | Unit-cluster t inference at 95%, cohort-event support and a joint pretrend test. Not an HonestDiD source. |
Borusyak–Jaravel–Spiess (BJS)borusyak_jaravel_spiessExact profile | Imputes untreated outcomes from a model fitted to untreated observations; reports overall ATT or a post-treatment event path. | Exact balanced, unweighted, unadjusted LOCO simple/dynamic profiles. Ask the planner to confirm the exact imputation and covariance options for your design. | Unit-cluster leave-own-cluster-out smart-residual covariance; pretrend leads are a separate diagnostic. |
Wooldridge extended TWFE (ETWFE)wooldridge_etwfeRobustness / exact profile | Saturated cohort-by-calendar regression with a treated-row aggregate effect. | Balanced, unweighted, zero-anticipation panel. Exact unadjusted profile, or exactly one unit-constant baseline covariate with never-treated controls. Uses the pinned fetwfe 1.10.0 treated-row convention. | Unit-cluster covariance and normal-reference 95% intervals. Alternative aggregation choices need their own eligibility. |
Fused extended TWFE (FETWFE)fused_etwfeExact profile | Regularizes the treatment-effect structure, then refits selected effects with native post-selection OLS. | Exact native post_ols simple/dynamic profiles: balanced, unweighted, no covariates and never-treated controls. The CRAN cran_bridge route is withdrawn from governed use. | Post-selection unit-cluster CR1 normal inference within the supported profile. A selection with no effect coordinates produces unavailable effects, not proof of a zero effect. |
Gardner two-stage DiDgardner_did2sRobustness | Two-stage estimation of an overall ATT with first-stage estimation uncertainty carried into inference. | Eligible unadjusted panel designs using the default analytical two-stage GMM procedure. | Two-stage unit-clustered GMM covariance with a normal reference. Legacy bootstrap is a separate option, not the promoted default. |
Efficient staggered GMMstaggered_gmmRobustness / exact profile | Combines clean two-by-two comparisons through an efficient generalized method of moments procedure. | Balanced, unweighted, no-covariate panel; converged pooled or cohort-specific Toeplitz weighting and the exact 95% profile. Unrestricted covariance weighting remains unpromoted. | GMM covariance and normal intervals; comparison support, reweighting convergence and Hansen overidentification diagnostics. |
Common adoption, synthetic and time-series methods
| Estimator / role | What it estimates | When it is available | Inference / checks |
|---|---|---|---|
Mean DiD / two-way fixed effects (TWFE)twfePrimary for common adoption; diagnostic if staggered | Conventional treated-versus-control change comparison with unit and time effects. | The common-adoption default when its design fits. Under staggered adoption the coefficient is labeled a TWFE coefficient, not a heterogeneity-robust overall ATT. | Cluster-robust inference; the implementation supports unit or unit-and-time clustering, subject to the approved plan. |
TWFE event studyevent_studyDynamic / pretrend diagnostic | Relative-time coefficients show the outcome path around adoption and support joint lead checks. | Eligible common-adoption dynamic analysis and pretrend diagnostics. Under staggered heterogeneity, plain TWFE event-study coefficients remain diagnostic. | Unit-clustered covariance and a joint pretrend F test using eligible leads. |
Doubly robust DiDdoubly_robust_didPrimary for adjusted common adoption | Combines propensity-score weighting and an outcome model for an adjusted overall ATT. | One common adoption date, controls and declared finite baseline covariates. Requires acceptable propensity overlap, effective sample size and weight concentration. | Unit bootstrap with complete trajectories. Every required draw must succeed. |
Inverse-probability-weighted DiD (IPW)ipw_didRobustness for adjusted common adoption | Reweights control outcome changes using propensity odds. | Common adoption and declared baseline covariates with supported propensity overlap. The propensity model is part of the identifying specification. | Unit bootstrap; overlap, effective sample size and concentrated-weight checks. |
Synthetic controlsynthetic_controlPrimary for eligible few-treated designs | Builds a comparison path from a weighted pool of untreated donor units. | Balanced common-adoption panel, usable pre/post paths and adequate donors for treated-size-preserving placebo groups. | Pre-fit RMSPE, in-space placebo RMSPE-ratio p-values and donor diagnostics. Placebo-SD normal intervals are heuristic, not coverage-guaranteed sampling intervals. |
Synthetic DiD (SDID)synthetic_didRobustness | Combines unit and time weights with a level correction for a common intervention. | Eligible balanced donor design with at least two treated-size-preserving placebo assignments and remaining donors for each fit. | Placebo RMSPE diagnostics and heuristic placebo-SD intervals; fit and solver checks. |
Interrupted time series (ITS)interrupted_time_seriesPrimary for eligible time-series designs | Models intervention-associated level and slope changes and the average post-intervention effect. | Suitable single-intervention series. Interpretation depends on the continuation of the pre-intervention trend and the absence of competing changes. | Newey–West heteroskedasticity-and-autocorrelation-consistent (HAC) inference. |
Separate expert MCP workflows
| Estimator / role | What it estimates | When it is available | Inference / checks |
|---|---|---|---|
Conditional repeated-cross-section CScallaway_santanna_rcsSeparate expert MCP profile | Cohort-time ATT and simple, dynamic, group or calendar aggregation when different respondents are observed each period. | Exact unweighted profile with 1–5 baseline/pretreatment covariates, unique respondents, explicit stable composition and independent cross sections, and adequate four-arm support. Uses the conditional_rcs request path, outside the ordinary panel conversation. | Respondent influence-function covariance and receipt-bound vector bands. Saved results and reports are available; this expert path keeps claim and export authorization false. |
Randomized difference in meansrandomized_difference_in_meansSeparate randomized MCP workflow | Sample intent-to-treat (ITT) for individual or cluster randomization, with declared strata where applicable. | A valid assignment contract is required. Cluster assignment targets an equal-cluster-weight sample effect, not an individual-weighted population effect. | Exact or Monte Carlo two-sided sharp-null randomization tests. Resolution depends on the allowed assignment space. |
Lin covariate-adjusted ITTlin_covariate_adjusted_ittNon-confirmatory randomized robustness | Fully interacted baseline-covariate adjustment alongside the randomized difference-in-means result. | Declared eligible baseline covariates and adequate design rank, including under reassignment. Not a confirmatory replacement for the primary procedure. | Sharp-null randomization inference, assignment-rank checks and few-cluster/discrete-p-value limitations. |
For repeated cross sections, ask for the exact conditional RCS workflow and disclose respondent identity, cohort assignment, covariate timing, stable composition and independence. For randomized data, declare the actual assignment mechanism and unit. Do not fabricate panel repetition or observational parallel-trends declarations to route these designs.
Registered procedures outside current guided planning
| Estimator / role | What it estimates | When it is available | Inference / checks |
|---|---|---|---|
Goodman–Bacon decompositiongoodman_baconImplemented; no current planner role | Reconstructs unweighted TWFE and reports the weight on problematic treated-versus-treated comparisons. | Balanced panel; weighted decomposition is not implemented. Available in the Python catalog, but not selected by the current governed planner. | Decomposition and reconstruction diagnostics; not a new causal ATT estimate. |
Counterfactual forecastcounterfactual_forecastImplemented; no current planner role | Fits a treated series to controls and optional trend before the intervention, then projects a counterfactual. | Requires stable post-period relationships and an appropriate error process. Python procedure, not a current automatic MCP planning choice. | Forecast uncertainty for the average post effect; no per-period uncertainty band. |
Changes-in-changeschanges_in_changesImplemented; no current planner role | Distributional counterfactual mapping with an overall ATT and quantile-treatment-effect provenance. | Common adoption and untreated controls. Multi-period results map each post period from the final pre period. Python procedure, not a current automatic MCP planning choice. | Unit-trajectory bootstrap and period-specific/quantile diagnostics. |
Continuous-dose DiDcontinuous_didExperimental Python API | Dose-response ATT(d) on an explicitly supported dose grid. | Separate balanced continuous-dose input contract. Unpromoted and unavailable through governed panel planning; covariates are rejected. | Pointwise unit-clustered normal inference within the experimental implementation; no general governed claim. |
Names and aliases
bjs, did_imputation and didimputation → Borusyak–Jaravel–Spiess; etwfe → Wooldridge ETWFE; fetwfe → fused ETWFE; gmm_staggered → efficient staggered GMM. Mean DiD is implemented through the common-adoption TWFE procedure; it is not a 22nd registered estimator.
Choose the effect before seeing it
An overall effect aggregates over an approved population and window. A dynamic effect describes how the effect evolves relative to treatment timing. Cohort and first-post targets answer still other questions.
Changing the target changes the interpretation and may change which observations support it. Comparing two methods is useful only when their targets are compatible. Do not choose a target after discovering which estimate is largest or most significant.
Assumptions you need to discuss
| Topic | Question to ask |
|---|---|
| Parallel trends | Absent treatment, would the outcome trends have been comparable under the chosen adjustment? |
| Assignment | Why did these units adopt at these times? What could jointly affect timing and outcomes? |
| Anticipation | Could units react before the recorded treatment date? |
| Interference | Could treatment affect the comparison group through spillovers? |
| Treatment versions | Does the recorded intervention mean the same thing across units and periods? |
| Measurement and composition | Did the population, boundaries or measurement process change? |
Use your knowledge of the setting to answer these questions. The statistical checks then help assess whether the observed data fit that account.
Ask for the method and its evidence
For this dataset and target, list the eligible primary estimators, robustness methods and diagnostics by name. Explain their support, adjustment and inference requirements, and why alternatives were excluded. Tell me whether the path is ordinary panel MCP, an expert workflow or Python only. Show the exact plan before fitting.
Continue to Tests, sensitivity and inference for the diagnostic and uncertainty catalog.
Reference scope
Each entry describes a specific implementation and supported design. The planner checks the active procedure policy against your data and analysis choices, then records the selected methods and any exclusions in the saved plan.