Skip to content

Commit 274ade9

Browse files
authored
Merge pull request #246 from igerber/release/v2.8.0
Bump version to 2.8.0
2 parents 8554b89 + 1f10565 commit 274ade9

5 files changed

Lines changed: 43 additions & 4 deletions

File tree

CHANGELOG.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,44 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [2.8.0] - 2026-03-31
11+
12+
### Added
13+
- **Staggered Triple Difference estimator** (Ortiz-Villavicencio & Sant'Anna 2025)
14+
- `StaggeredTripleDifference` class with group-time ATT(g,t) for DDD designs with staggered adoption
15+
- Event study aggregation, pre-treatment placebo effects, multiplier bootstrap inference
16+
- R benchmark validation against `triplediff` package
17+
- DGP function `generate_staggered_ddd_data()` for simulation and testing
18+
- **Survey Phase 7a: CS IPW/DR + covariates + survey**
19+
- DRDID panel nuisance-estimation IF corrections (PS + OR) under survey weights
20+
- Survey-weighted propensity score estimation and outcome regression
21+
- IFs account for nuisance parameter estimation uncertainty (Sant'Anna & Zhao 2020, Theorem 3.1)
22+
- **Survey Phase 7b: Repeated cross-sections**
23+
- `CallawaySantAnna(panel=False)` for repeated cross-section surveys (BRFSS, ACS, CPS)
24+
- Cross-sectional DRDID: `reg` matches `DRDID::reg_did_rc`, `dr` matches `DRDID::drdid_rc`, `ipw` matches `DRDID::std_ipw_did_rc`
25+
- Survey weights, covariates, and all estimation methods supported
26+
- **Survey Phase 7d: HonestDiD + survey variance**
27+
- Survey df and full event-study VCV from IF vectors propagated to sensitivity analysis
28+
- t-distribution critical values with survey degrees of freedom
29+
- Bootstrap/replicate designs fall back to diagonal VCV with warning
30+
- **Plotly visualization styling**: thread `marker`, `markersize`, `linewidth`, `capsize`, `ci_linewidth` kwargs through plotly backends (previously silently ignored)
31+
- AI agent discoverability for practitioner guide
32+
33+
### Changed
34+
- HonestDiD now raises `ValueError` on non-consecutive event-time grid (was warning)
35+
- HonestDiD validates full grid around reference period
36+
- Panel IPW/DR PS correction scaling matches R's `H/n`, `asy_rep/n`, `colMeans` convention
37+
- RC IF normalization follows R's `psi` convention with explicit `phi` conversion
38+
39+
### Fixed
40+
- Fix HonestDiD reference-aware pre/post split for varying-base event studies
41+
- Fix HonestDiD `_estimate_max_pre_violation` to use reference-aware pre_periods
42+
- Fix panel M2 gradient scaling for IPW/DR nuisance IF corrections
43+
- Fix VCV index alignment for repeated cross-section aggregation
44+
- Fix replicate-weight df propagation: return per-statistic df instead of mutating shared state
45+
- Fix WIF population consistency: zero df `first_treat` for ineligible units
46+
- Fix bootstrap RCS cohort-mass weighting and stale event-study VCV reset
47+
1048
## [2.7.6] - 2026-03-28
1149

1250
### Added
@@ -1006,6 +1044,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
10061044
- `to_dict()` and `to_dataframe()` export methods
10071045
- `is_significant` and `significance_stars` properties
10081046

1047+
[2.8.0]: https://github.com/igerber/diff-diff/compare/v2.7.6...v2.8.0
10091048
[2.7.6]: https://github.com/igerber/diff-diff/compare/v2.7.5...v2.7.6
10101049
[2.7.5]: https://github.com/igerber/diff-diff/compare/v2.7.4...v2.7.5
10111050
[2.7.4]: https://github.com/igerber/diff-diff/compare/v2.7.3...v2.7.4

diff_diff/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@
209209
Bacon = BaconDecomposition
210210
EDiD = EfficientDiD
211211

212-
__version__ = "2.7.6"
212+
__version__ = "2.8.0"
213213
__all__ = [
214214
# Estimators
215215
"DifferenceInDifferences",

docs/llms-full.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
> A Python library for Difference-in-Differences causal inference analysis. Provides sklearn-like estimators with statsmodels-style output for econometric analysis.
44

5-
- Version: 2.7.6
5+
- Version: 2.8.0
66
- Repository: https://github.com/igerber/diff-diff
77
- License: MIT
88
- Dependencies: numpy, pandas, scipy (no statsmodels dependency)

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "maturin"
44

55
[project]
66
name = "diff-diff"
7-
version = "2.7.6"
7+
version = "2.8.0"
88
description = "Difference-in-Differences causal inference with sklearn-like API. Callaway-Sant'Anna, Synthetic DiD, Honest DiD, event studies, parallel trends."
99
readme = "README.md"
1010
license = "MIT"

rust/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "diff_diff_rust"
3-
version = "2.7.6"
3+
version = "2.8.0"
44
edition = "2021"
55
description = "Rust backend for diff-diff DiD library"
66
license = "MIT"

0 commit comments

Comments
 (0)