API Reference#

This section provides complete API documentation for all diff-diff modules.

Estimators#

Core estimator classes for DiD analysis:

diff_diff.DifferenceInDifferences

Difference-in-Differences estimator with sklearn-like interface.

diff_diff.TwoWayFixedEffects

Two-Way Fixed Effects (TWFE) estimator for panel DiD.

diff_diff.MultiPeriodDiD

Multi-Period Difference-in-Differences estimator.

diff_diff.SyntheticDiD

Synthetic Difference-in-Differences (SDID) estimator.

diff_diff.CallawaySantAnna

Callaway-Sant'Anna (2021) estimator for staggered Difference-in-Differences.

diff_diff.ChaisemartinDHaultfoeuille

de Chaisemartin-D'Haultfoeuille (dCDH) estimator.

diff_diff.SunAbraham

Sun-Abraham (2021) interaction-weighted estimator for staggered DiD.

diff_diff.ImputationDiD

Borusyak-Jaravel-Spiess (2024) imputation DiD estimator.

diff_diff.StackedDiD

Stacked Difference-in-Differences estimator.

diff_diff.TripleDifference

Triple Difference (DDD) estimator.

diff_diff.TROP

Triply Robust Panel (TROP) estimator.

diff_diff.ContinuousDiD

Continuous Difference-in-Differences estimator.

diff_diff.HeterogeneousAdoptionDiD

Heterogeneous Adoption Difference-in-Differences estimator.

diff_diff.EfficientDiD

Efficient DiD estimator (Chen, Sant'Anna & Xie 2025).

diff_diff.TwoStageDiD

Gardner (2022) two-stage Difference-in-Differences estimator.

diff_diff.SpilloverDiD

Ring-indicator spillover-aware DiD (Butts 2021).

diff_diff.WooldridgeDiD

Extended Two-Way Fixed Effects (ETWFE) DiD estimator.

diff_diff.BaconDecomposition

Goodman-Bacon (2021) decomposition of Two-Way Fixed Effects estimator.

diff_diff.StaggeredTripleDifference

Staggered Triple Difference (DDD) estimator.

Results Classes#

Result containers returned by estimators:

diff_diff.DiDResults

Results from a Difference-in-Differences estimation.

diff_diff.MultiPeriodDiDResults

Results from a Multi-Period Difference-in-Differences estimation.

diff_diff.SyntheticDiDResults

Results from a Synthetic Difference-in-Differences estimation.

diff_diff.PeriodEffect

Treatment effect for a single time period.

diff_diff.CallawaySantAnnaResults

Results from Callaway-Sant'Anna (2021) staggered DiD estimation.

diff_diff.CSBootstrapResults

Results from Callaway-Sant'Anna multiplier bootstrap inference.

diff_diff.GroupTimeEffect

Treatment effect for a specific group-time combination.

diff_diff.ChaisemartinDHaultfoeuilleResults

Results from de Chaisemartin-D'Haultfoeuille (dCDH) Phase 1 estimation.

diff_diff.DCDHBootstrapResults

Results from ChaisemartinDHaultfoeuille (dCDH) multiplier bootstrap inference.

diff_diff.SunAbrahamResults

Results from Sun-Abraham (2021) interaction-weighted estimation.

diff_diff.SABootstrapResults

Results from Sun-Abraham bootstrap inference.

diff_diff.ImputationDiDResults

Results from Borusyak-Jaravel-Spiess (2024) imputation DiD estimation.

diff_diff.ImputationBootstrapResults

Results from ImputationDiD bootstrap inference.

diff_diff.TripleDifferenceResults

Results from Triple Difference (DDD) estimation.

diff_diff.StackedDiDResults

Results from Stacked DiD estimation (Wing, Freedman & Hollingsworth 2024).

diff_diff.TROPResults

Results from a Triply Robust Panel (TROP) estimation.

diff_diff.ContinuousDiDResults

Results from Continuous Difference-in-Differences estimation.

diff_diff.DoseResponseCurve

Dose-response curve from continuous DiD estimation.

diff_diff.HeterogeneousAdoptionDiDResults

Estimator output for HeterogeneousAdoptionDiD.

diff_diff.HeterogeneousAdoptionDiDEventStudyResults

Event-study results for HeterogeneousAdoptionDiD (Phase 2b).

diff_diff.EfficientDiDResults

Results from Efficient DiD (Chen, Sant'Anna & Xie 2025) estimation.

diff_diff.EDiDBootstrapResults

Bootstrap inference results for EfficientDiD.

diff_diff.TwoStageDiDResults

Results from Gardner (2022) two-stage DiD estimation.

diff_diff.TwoStageBootstrapResults

Results from TwoStageDiD bootstrap inference.

diff_diff.SpilloverDiDResults

Results from a ring-indicator spillover-aware DiD estimation (Butts 2021).

diff_diff.BaconDecompositionResults

Results from Goodman-Bacon decomposition of TWFE.

diff_diff.wooldridge_results.WooldridgeDiDResults

Results from WooldridgeDiD.fit().

diff_diff.Comparison2x2

A single 2x2 DiD comparison in the Bacon decomposition.

diff_diff.StaggeredTripleDiffResults

Results from Staggered Triple Difference (DDD) estimation.

diff_diff.TWFEWeightsResult

Lightweight container for the standalone twowayfeweights helper.

Visualization#

Plotting functions for results:

diff_diff.plot_event_study

Create an event study plot showing treatment effects over time.

diff_diff.plot_group_effects

Plot treatment effects by treatment cohort (group).

diff_diff.plot_sensitivity

Plot sensitivity analysis results from Honest DiD.

diff_diff.plot_honest_event_study

Create event study plot with Honest DiD confidence intervals.

diff_diff.plot_bacon

Visualize Goodman-Bacon decomposition results.

diff_diff.plot_power_curve

Create a power curve visualization.

diff_diff.plot_pretrends_power

Plot pre-trends test power curve.

Diagnostics#

Placebo tests and model diagnostics:

diff_diff.run_placebo_test

Run a placebo test to validate DiD assumptions.

diff_diff.placebo_timing_test

Test for pre-treatment effects by moving treatment timing earlier.

diff_diff.placebo_group_test

Test for differential trends among never-treated units.

diff_diff.permutation_test

Compute permutation-based p-value for DiD estimate.

diff_diff.leave_one_out_test

Assess sensitivity by dropping each treated unit in turn.

diff_diff.run_all_placebo_tests

Run a comprehensive suite of placebo tests.

diff_diff.PlaceboTestResults

Results from a placebo test for DiD assumption validation.

Panel Profiling#

Pre-fit description of panel structure for estimator selection. The PanelProfile return type and its supporting dataclasses are documented in Panel Profiling.

diff_diff.profile_panel

Describe the structure of a DiD panel.

diff_diff.PanelProfile

Structural facts about a DiD panel.

diff_diff.OutcomeShape

Distributional shape of a numeric outcome column.

diff_diff.TreatmentDoseShape

Distributional shape of a continuous treatment dose.

diff_diff.Alert

A factual observation about a panel.

Sensitivity Analysis#

Honest DiD for robust inference:

diff_diff.HonestDiD

Honest DiD sensitivity analysis (Rambachan & Roth 2023).

diff_diff.HonestDiDResults

Results from Honest DiD sensitivity analysis.

diff_diff.SensitivityResults

Results from sensitivity analysis over a grid of M values.

diff_diff.DeltaSD

Smoothness restriction on trend violations (Delta^{SD}).

diff_diff.DeltaRM

Relative magnitudes restriction on trend violations (Delta^{RM}).

diff_diff.DeltaSDRM

Combined smoothness and relative magnitudes restriction.

diff_diff.compute_honest_did

Convenience function for computing Honest DiD bounds.

diff_diff.sensitivity_plot

Create a sensitivity analysis plot.

HAD Pretest Workflow#

Companion pretest battery for HeterogeneousAdoptionDiD implementing the Section 4 QUG / Stute / Yatchew tests from de Chaisemartin, Ciccia, D’Haultfœuille & Knau (2026), plus a unified report wrapper:

diff_diff.HADPretestReport

Composite output of did_had_pretest_workflow().

diff_diff.QUGTestResults

Result of qug_test() (paper Theorem 4).

diff_diff.StuteTestResults

Result of stute_test() (paper Appendix D).

diff_diff.YatchewTestResults

Result of yatchew_hr_test() (paper Theorem 7 / Equation 29).

diff_diff.StuteJointResult

Result of stute_joint_pretest() (joint Cramer-von Mises across horizons).

Bootstrap Inference#

Wild cluster bootstrap for valid inference:

diff_diff.wild_bootstrap_se

Compute wild cluster bootstrap standard errors and p-values.

diff_diff.WildBootstrapResults

Results from wild cluster bootstrap inference.

Power Analysis#

Power analysis for study design:

diff_diff.PowerAnalysis

Power analysis for difference-in-differences designs.

diff_diff.PowerResults

Results from analytical power analysis.

diff_diff.SimulationPowerResults

Results from simulation-based power analysis.

diff_diff.SimulationMDEResults

Results from simulation-based minimum detectable effect search.

diff_diff.SimulationSampleSizeResults

Results from simulation-based sample size search.

diff_diff.compute_power

Convenience function to compute power for given effect and sample.

diff_diff.compute_mde

Convenience function to compute minimum detectable effect.

diff_diff.compute_sample_size

Convenience function to compute required sample size.

diff_diff.simulate_power

Estimate power using Monte Carlo simulation.

diff_diff.simulate_mde

Find the minimum detectable effect via simulation-based bisection search.

diff_diff.simulate_sample_size

Find the required sample size via simulation-based bisection search.

Reporting#

Stakeholder-facing report and diagnostic battery wrappers around fitted result objects:

diff_diff.BusinessReport

Produce a stakeholder-ready narrative from any diff-diff results object.

diff_diff.BusinessContext

Frozen bundle of business-framing metadata used when rendering prose.

diff_diff.DiagnosticReport

Run the standard diff-diff diagnostic battery on a fitted result.

diff_diff.DiagnosticReportResults

Frozen container holding the outcome of a DiagnosticReport.run_all() call.

Boundary Local-Linear Estimators#

Calonico-Cattaneo-Farrell (2018) MSE-optimal bandwidth selector and Calonico-Cattaneo-Titiunik (2014) robust-bias-corrected local-linear fit used by HeterogeneousAdoptionDiD’s continuous-dose fit paths (continuous_at_zero and continuous_near_d_lower):

diff_diff.LocalLinearFit

Result of a local-linear regression at a boundary.

diff_diff.BandwidthResult

MSE-optimal bandwidth selector output plus per-stage diagnostics.

diff_diff.BiasCorrectedFit

Bias-corrected local-linear fit at a boundary (Phase 1c).

Data Preparation#

Utilities for preparing DiD data:

diff_diff.generate_did_data

Generate synthetic data for DiD analysis with known treatment effect.

diff_diff.generate_continuous_did_data

Generate synthetic data for continuous DiD analysis with known dose-response.

diff_diff.generate_staggered_data

Generate synthetic data for staggered adoption DiD analysis.

diff_diff.generate_event_study_data

Generate synthetic data for event study analysis.

diff_diff.generate_ddd_data

Generate synthetic data for Triple Difference (DDD) analysis.

diff_diff.generate_factor_data

Generate synthetic panel data with interactive fixed effects (factor model).

diff_diff.generate_panel_data

Generate synthetic panel data for parallel trends testing.

diff_diff.make_treatment_indicator

Create a binary treatment indicator column from various input types.

diff_diff.make_post_indicator

Create a binary post-treatment indicator column.

diff_diff.wide_to_long

Convert wide-format panel data to long format for DiD analysis.

diff_diff.balance_panel

Balance a panel dataset to ensure all units have all time periods.

diff_diff.validate_did_data

Validate that data is properly formatted for DiD analysis.

diff_diff.summarize_did_data

Generate summary statistics by treatment group and time period.

diff_diff.create_event_time

Create an event-time column relative to treatment timing.

diff_diff.aggregate_to_cohorts

Aggregate unit-level data to treatment cohort means.

diff_diff.rank_control_units

Rank potential control units by their suitability for DiD analysis.

Datasets#

Built-in datasets for examples and testing:

diff_diff.load_card_krueger

Load the Card & Krueger (1994) minimum wage dataset.

diff_diff.load_castle_doctrine

Load Castle Doctrine / Stand Your Ground laws dataset.

diff_diff.load_divorce_laws

Load unilateral divorce laws dataset.

diff_diff.load_mpdta

Load the Minimum Wage Panel Dataset for DiD Analysis (mpdta).

diff_diff.load_dataset

Load a dataset by name.

diff_diff.list_datasets

List available real-world datasets.

diff_diff.clear_cache

Clear the local dataset cache.

Module Documentation#

Estimators#

Infrastructure#

Pre-Fit Profiling#

Diagnostics & Inference#

Reporting#

Results & Visualization#

Data & Utilities#