Releases: igerber/diff-diff
Releases · igerber/diff-diff
Release list
v3.6.2
What's Changed
- feat(efficient_did): survey-weighted Silverman bandwidth in conditional Omega* by @igerber in #594
- feat(had): cluster-robust SE on the continuous paths (Phase 2a) by @igerber in #596
- ci: SHA-pin all GitHub Actions and add CODEOWNERS (supply-chain hardening) by @igerber in #595
- Add LP-DiD launch carousel (local-projections crossover narrative) by @igerber in #597
- fix: define zero-column rank detection contract by @shawcharles in #578
- feat(synthetic_control): split cv-infeasible from failed in placebo/LOO diagnostics by @igerber in #598
- bench: FE-absorption benchmark lane with BEFORE baselines + pyfixest yardstick (scenarios 7-13) by @igerber in #600
- feat(diagnostic_report): register SpilloverDiDResults routing by @igerber in #599
- perf: factorize-once + bincount MAP demeaning, max_iter 10k parity, FE-spanned regressor guard by @igerber in #601
- perf(rust): compiled MAP demeaning kernel - rayon across columns, 1.4-2.8x on FE-absorption workloads by @igerber in #603
- refactor(survey): consolidate panel-to-unit collapse (ContinuousDiD/EfficientDiD) by @igerber in #602
- docs: clarify DiD predict support contract by @shawcharles in #580
- docs(paper): finalize JOSS submission - 20 estimators, required sections, draft-pdf CI by @igerber in #604
- perf(utils): opt-in chunked demean_map dispatch + corrected solver-phase memory attribution by @igerber in #605
- perf(linalg): slim solve_ols marshalling - 15.3->7.8 GB rust-side footprint, -21% firm-panel fits, outputs preserved by @igerber in #607
- feat(synthetic_control): ADH-2015 §4 tail diagnostics (regression_weights + sparse_synthetic_control) by @igerber in #608
- Bump version to 3.6.2 by @igerber in #609
Full Changelog: v3.6.1...v3.6.2
v3.6.1
What's Changed
- docs: align SciPy lower bound with package metadata by @shawcharles in #572
- Add LPDiD R-parity validation harness (Dube et al. 2025), Phase B2 by @igerber in #583
- feat(staggered): materialize non-estimable (g,t) cells as NaN in CallawaySantAnna by @igerber in #582
- Add LPDiD non-absorbing treatment (entry-effect estimands), Phase C1 by @igerber in #584
- fix: surface BusinessReport appendix render failures by @shawcharles in #574
- feat(estimators): iterative alternating-projection demeaning for N-way absorbed FE by @igerber in #586
- Add LPDiD non-absorbing R-parity (independent feols Eq.12/13), Phase C2 by @igerber in #587
- Add LPDiD complex-survey-design support (Phase D1) by @igerber in #590
- docs(survey): waive zero-weight-PSU SE-invariance item; lock Lumley full-design convention by @igerber in #589
- Add TROP non-absorbing (on/off) treatment support (opt-in, local method) by @igerber in #592
- Add LPDiD complex-survey R-parity validation vs survey::svyglm (Phase D2) by @igerber in #591
- Release 3.6.1 by @igerber in #593
New Contributors
- @shawcharles made their first contribution in #572
Full Changelog: v3.6.0...v3.6.1
v3.6.0
What's Changed
- chore(deps): bump pyo3 + numpy to 0.29 in /rust (RUSTSEC-2026-0176/0177) by @igerber in #548
- test: add Tutorial 24 drift guard (staggered-vs-collapsed power claims) by @igerber in #549
- chore(deps): bump actions/checkout from 6 to 7 by @igerber in #550
- chore(deps): bump rust blas-src from 0.10 to 0.14 by @igerber in #551
- docs(methodology): add Bertrand-Duflo-Mullainathan (2004) paper review by @igerber in #553
- ci: pre-merge guard for the PyPI release build path (+ CHANGELOG fix) by @igerber in #552
- refactor: extract shared TROP bootstrap resampling loop by @igerber in #554
- feat(diagnostics): PlaceboTests methodology validation (PR-B) — exact RI p-value + R parity by @igerber in #555
- perf(efficient-did): cache polynomial sieve basis across DR nuisance fits by @igerber in #556
- docs(methodology): Binder (1983) survey TSL variance paper review by @igerber in #557
- docs(todo): reorganize into Actionable / Deferred / Reference buckets by @igerber in #559
- test(survey): validate Survey Data Support methodology + promote to Complete by @igerber in #558
- docs(roadmap): make ROADMAP forward-looking; drop stale present-state sections by @igerber in #560
- perf(callaway-santanna): chunk multiplier-bootstrap weight generation to bound peak memory by @igerber in #561
- perf(imputation): cache untreated-projection factorization per fit (#141) by @igerber in #562
- docs(paper): refresh JOSS paper for current library and submission requirements by @igerber in #564
- perf(efficient-did, had): chunk multiplier-bootstrap weight generation to bound peak memory by @igerber in #563
- perf(linalg): compute hc2_bm CR2 sandwich once, not twice (#475) by @igerber in #565
- perf(within-transform): drop the redundant full-frame copy in within_transform by @igerber in #567
- perf(linalg,mpd): compute MPD cluster+hc2_bm CR2 precomputes once by @igerber in #566
- docs(methodology): add LP-DiD (Dube et al. 2025) paper review and registry entry by @igerber in #568
- bench(memory): durable peak-RSS benchmark + docs for the memory-scaling work by @igerber in #569
- fix(staggered): scale-equilibrate CS / StaggeredTripleDiff covariate OR fits by @igerber in #570
- Add LPDiD (Local Projections DiD) estimator (Dube et al. 2025) by @igerber in #575
- fix(linalg): rank-guard structural (non-covariate) matrix inverses by @igerber in #576
- Release 3.6.0 by @igerber in #581
Full Changelog: v3.5.3...v3.6.0
v3.5.3
What's Changed
- fix: clamp negative vcov diagonal in LinearRegression SE (no NaN SE for degenerate coefs) by @igerber in #542
- docs: Gardner (2022) paper review — TwoStageDiD (PR-A) by @igerber in #539
- Add synthetic control tutorial + generate_synthetic_control_data generator by @igerber in #540
- fix: route TripleDifference power to panel DGP when n_periods > 2 by @igerber in #544
- TwoStageDiD methodology validation (PR-B): did2s parity + exact GMM variance by @igerber in #545
- Fix wild cluster bootstrap p-value / CI inconsistency (WCR + test inversion, #543) by @igerber in #546
- Release v3.5.3 by @igerber in #547
Full Changelog: v3.5.2...v3.5.3
v3.5.2
What's Changed
- SyntheticControl: confidence sets by test inversion (Firpo-Possebom 2018, PR-B) by @igerber in #527
- test: pin AI-review workflow Codex-action contract by @igerber in #528
- docs: Borusyak, Jaravel & Spiess (2024) paper review — ImputationDiD (PR-A) by @igerber in #529
- SyntheticControl: conformal inference (Chernozhukov-Wüthrich-Zhu 2021) by @igerber in #530
- refactor: rename SyntheticDiDResults.placebo_effects → variance_effects (deprecated alias) by @igerber in #532
- docs: add CBWSDID (Ustyuzhanin 2026) paper review by @igerber in #531
- ImputationDiD methodology validation (PR-B): exact FE variance + unit-clustered Eq.8 + R parity by @igerber in #533
- Add CBWSDID covariate balancing to StackedDiD (Ustyuzhanin 2026) by @igerber in #534
- docs: correct stale R-comparison-tests TODO row (R not in CI) by @igerber in #535
- Release v3.5.2: version bump + CHANGELOG reconciliation by @igerber in #536
Full Changelog: v3.5.1...v3.5.2
v3.5.1
What's Changed
- EfficientDiD methodology review (PR-A): Chen-Sant'Anna-Xie (2025) paper-review fidelity artifact by @igerber in #515
- SyntheticControl: leave-one-out + in-time placebo (ADH 2015 §4) by @igerber in #514
- docs: close TODO L160 (bread_inv vcov reuse) as not bit-identically achievable by @igerber in #517
- Reject covariate names colliding with reserved structural terms (DifferenceInDifferences, MultiPeriodDiD, TwoWayFixedEffects) by @igerber in #518
- Upgrade AI PR reviewer model: gpt-5.4 → gpt-5.5 (CI + local) by @igerber in #522
- chore: add CI integrity check for docs/doc-deps.yaml by @igerber in #519
- SyntheticControl: cv (out-of-sample) + inverse-variance V-selection (ADH 2015 / Abadie 2021) by @igerber in #523
- EfficientDiD methodology validation (PR-B): sieve outcome-regression upgrade + Verified Components by @igerber in #521
- docs: Firpo & Possebom (2018) paper review — SCM CI by test inversion (PR-A) by @igerber in #524
- HAD fit(): extensive-margin warning + covariates= NotImplementedError by @igerber in #525
- Bump version to 3.5.1 by @igerber in #526
Full Changelog: v3.5.0...v3.5.1
v3.5.0
What's Changed
- efficient-did: thread vcov_type as narrow {hc1} contract per Chen-Sant'Anna-Xie 2025 (Phase 1b #4) by @igerber in #495
- ConleySpatialHAC methodology-review-tracker promotion + Bertanha-Imbens 2014 citation correction by @igerber in #496
- synthetic control: PR-A paper reviews (ADH 2010/2015, Abadie 2021 JEL, CWZ 2021) by @igerber in #497
- StaggeredTripleDifference PR-A: Ortiz-Villavicencio & Sant'Anna (2025) paper review by @igerber in #499
- TwoStageDiD: thread vcov_type as narrow {hc1} contract (Phase 1b interstitial #5, final) by @igerber in #498
- chore: prune completed-vcov-initiative leftovers + audit-verified stale TODO rows by @igerber in #502
- linalg: scale-invariant rank detection + solve; fix rank-0 IndexError (both backends) by @igerber in #500
- Add SyntheticControl estimator (classic SCM, Abadie-Diamond-Hainmueller 2010) — PR-1 core by @igerber in #501
- StaggeredTripleDifference methodology validation + opt-in Eq-4.14 overall ATT by @igerber in #504
- Right-size pure-Python CI test runtime (SyntheticControl regression + SDID safe trims) by @igerber in #505
- Thread vcov_type="conley" through SunAbraham + WooldridgeDiD (defer StackedDiD) by @igerber in #503
- PowerAnalysis methodology review (PR-A): Bloom 1995 + Burlig 2020 source audits by @igerber in #506
- ci: only re-run gated matrices on ready-for-ci label transitions by @igerber in #509
- tutorial: staggered rollout vs collapsed 2×2 — a power-analysis decision guide by @igerber in #508
- SyntheticControl: in-space placebo permutation inference + reporting-stack integration by @igerber in #511
- Rank-guarded generalized inverse for DR/OR influence-function SEs (CallawaySantAnna, TripleDifference, StaggeredTripleDifference) by @igerber in #507
- PowerAnalysis methodology review (PR-B): Burlig Eq.2 equicorrelated panel variance + tracker Complete by @igerber in #512
- WooldridgeDiD: outcome-fit hint for OLS on binary/count outcomes by @igerber in #513
- reviewer-eval: add a minimal Codex-reviewer A/B comparison harness by @igerber in #510
- Bump version to 3.5.0 by @igerber in #516
Full Changelog: v3.4.2...v3.5.0
v3.4.2
What's Changed
- PR-A: DCDH paper reviews (2020 AER + 2022 NBER WP) by @igerber in #478
- Thread vcov_type through StackedDiD (Phase 1b 2/8) by @igerber in #479
- ChaisemartinDHaultfoeuille (DCDH) methodology-review-tracker promotion: In Progress -> Complete by @igerber in #481
- SpilloverDiD Wave E.3: SurveyDesign.subpopulation() full-design retention by @igerber in #482
- wooldridge: thread vcov_type through OLS path (Phase 1b 3/8) by @igerber in #483
- PR-A: WooldridgeDiD primary-source review (Wooldridge 2025 EmpEcon) by @igerber in #484
- TwoStageDiD Wave E.3 parity: always-treated full-design retention by @igerber in #485
- PR-B: WooldridgeDiD tracker promotion + methodology bundle by @igerber in #486
- callaway-santanna: fix cluster= silent no-op + narrow vcov_type contract by @igerber in #487
- Phase 1b interstitial #2: TripleDifference vcov_type narrow contract by @igerber in #488
- spillover-conley: dedup serial Bartlett kernel + PSD guard helpers by @igerber in #489
- LinkedIn launch carousel for SpilloverDiD (Butts 2021) by @igerber in #490
- trop: methodology-review tracker promotion + test_methodology_trop.py by @igerber in #491
- T23 SpilloverDiD tutorial: TVA-style ~40% understatement walkthrough by @igerber in #493
- ImputationDiD: thread vcov_type as narrow {hc1} contract per BJS Theorem 3 (Phase 1b interstitial #3) by @igerber in #492
- Bump version to 3.4.2 by @igerber in #494
Full Changelog: v3.4.1...v3.4.2
v3.4.1
What's Changed
- Lift Gate 1: HC2/HC2-BM for TwoWayFixedEffects via full-dummy auto-route by @igerber in #469
- PR-C: PreTrendsPower R
pretrendsparity goldens at commit122731d082by @igerber in #471 - SpilloverDiD survey_design= on HC1/CR1 via Binder TSL (Wave E.1) by @igerber in #468
- Thread vcov_type through SunAbraham (Phase 1b 1/8) by @igerber in #472
- SpilloverDiD vcov_type='conley' + survey_design= via panel-aware stratified-Conley sandwich on per-period PSU totals (Wave E.2) by @igerber in #474
- HeterogeneousAdoptionDiD methodology-review-tracker promotion: In Progress -> Complete by @igerber in #473
- ContinuousDiD methodology-review-tracker promotion: In Progress -> Complete by @igerber in #476
- Lift hc2_bm + weights gates via clubSandwich WLS-CR2 port by @igerber in #475
- SpilloverDiD conley + survey + lag>0 via panel-block composition (Wave E.2 follow-up) by @igerber in #477
- Release 3.4.1: SpilloverDiD survey + Conley lifts, SunAbraham vcov_type, WLS-CR2 BM, methodology-tracker promotions by @igerber in #480
Full Changelog: v3.4.0...v3.4.1
v3.4.0
What's Changed
- TODO.md cleanup: drop SHIPPED rows, refresh stale refs, add Tier A/B/C/D backlog by @igerber in #447
- dCDH heterogeneity: per-path + global placebo predict_het R-parity + df threading by @igerber in #449
- Refresh METHODOLOGY_REVIEW.md to reflect current estimator catalog by @igerber in #448
- Add Goodman-Bacon (2021) paper review by @igerber in #451
- Regenerate clubsandwich_cr2_golden.json from authoritative R clubSandwich by @igerber in #450
- SpilloverDiD: ring-indicator spillover-aware DiD (Butts 2021) by @igerber in #446
- dCDH heterogeneity wrap-up: post-drop rank df + negative-baseline path test by @igerber in #452
- Wave 3 estimator observability: HonestDiD M=0 test, Wooldridge canonical-link warning, ARP vertex diagnostic by @igerber in #453
- BaconDecomposition methodology audit (Goodman-Bacon 2021) by @igerber in #454
- Wave 4 Tier A drain: EfficientDiD anticipation note, generate_ddd_panel_data, TROP data-setup helper by @igerber in #455
- BaconDecomposition R parity goldens by @igerber in #457
- SpilloverDiD: event_study=True per-event-time × ring decomposition (Wave C) by @igerber in #456
- DiD-absorb HC2/HC2-BM: auto-route to fixed_effects internally by @igerber in #458
- Lift MultiPeriodDiD-absorb HC2/HC2-BM gate via auto-route by @igerber in #459
- SpilloverDiD: Gardner GMM first-stage correction (Wave D) by @igerber in #462
- PreTrendsPower: Roth (2022) paper review + silent-failure guard by @igerber in #463
- Lift Gate 6: cluster-aware CR2 Bell-McCaffrey contrast DOF for MultiPeriodDiD avg_att by @igerber in #465
- Surface agent_workflow() + curated dir() for LLM discoverability (#460) by @igerber in #464
- Add agent-discoverability contract test (#461) by @igerber in #467
- PreTrendsPower implementation audit (Roth 2022 — PR-B) by @igerber in #466
- Release 3.4.0: SpilloverDiD (Butts 2021), Bacon R-parity goldens, agent-discoverability surface, PreTrendsPower R-parity audit by @igerber in #470
Full Changelog: v3.3.3...v3.4.0