diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ec3d2b5..0e0e7497 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,31 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.1.5] - 2026-01-22 + +### Added +- **METHODOLOGY_REVIEW.md** tracking document for methodology review progress + - Review status summary table for all 12 estimators + - Detailed notes template for each estimator by category + - Review process guidelines with checklist and priority ordering +- **`base_period` parameter** for CallawaySantAnna pre-treatment effect computation + - "varying" (default): Pre-treatment uses t-1 as base (consecutive comparisons) + - "universal": All comparisons use g-anticipation-1 as base + - Matches R `did::att_gt()` base_period parameter +- **Pre-merge-check skill** (`/pre-merge-check`) for automated PR validation + - Pattern checks for NaN handling consistency + - Context-specific checklist generation + +### Changed +- **Tutorial 02 improvements**: Added pre-trends section, clarified base_period interaction with anticipation + +### Fixed +- Not-yet-treated control group now properly excludes cohort g when computing ATT(g,t) +- Aggregation t_stat uses NaN (not 0.0) when SE is non-finite or zero +- Bootstrap inference for pre-treatment effects with `base_period="varying"` +- NaN propagation for empty post-treatment effects in CallawaySantAnna +- Grep word boundary pattern in pre-merge-check skill + ## [2.1.4] - 2026-01-20 ### Added @@ -492,6 +517,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `to_dict()` and `to_dataframe()` export methods - `is_significant` and `significance_stars` properties +[2.1.5]: https://github.com/igerber/diff-diff/compare/v2.1.4...v2.1.5 [2.1.4]: https://github.com/igerber/diff-diff/compare/v2.1.3...v2.1.4 [2.1.3]: https://github.com/igerber/diff-diff/compare/v2.1.2...v2.1.3 [2.1.2]: https://github.com/igerber/diff-diff/compare/v2.1.1...v2.1.2 diff --git a/diff_diff/__init__.py b/diff_diff/__init__.py index 55b426c5..799d9f47 100644 --- a/diff_diff/__init__.py +++ b/diff_diff/__init__.py @@ -136,7 +136,7 @@ load_mpdta, ) -__version__ = "2.1.4" +__version__ = "2.1.5" __all__ = [ # Estimators "DifferenceInDifferences", diff --git a/pyproject.toml b/pyproject.toml index 7ebbc10b..5733e2d3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "diff-diff" -version = "2.1.4" +version = "2.1.5" description = "A library for Difference-in-Differences causal inference analysis" readme = "README.md" license = "MIT" diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 557a5850..528b8a39 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "diff_diff_rust" -version = "2.1.4" +version = "2.1.5" edition = "2021" description = "Rust backend for diff-diff DiD library" license = "MIT"