@@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ 2.4.0] - 2026-02-16
9+
10+ ### Added
11+ - ** Gardner (2022) Two-Stage DiD estimator** (` TwoStageDiD ` )
12+ - Two-stage estimator: (1) estimate unit+time FE on untreated obs, (2) regress residualized outcomes on treatment indicators
13+ - ` TwoStageDiDResults ` with overall ATT, event study, group effects, per-observation treatment effects
14+ - ` TwoStageBootstrapResults ` for multiplier bootstrap inference on GMM influence function
15+ - ` two_stage_did() ` convenience function for quick estimation
16+ - Point estimates identical to ImputationDiD; different variance estimator (GMM sandwich vs. conservative)
17+ - No finite-sample adjustments (raw asymptotic sandwich, matching R ` did2s ` )
18+ - Proposition 5 detection for unidentified long-run horizons without never-treated units
19+
20+ ### Changed
21+ - Workflow improvements to reduce PR review rounds
22+
23+ ### Fixed
24+ - Zero-observation horizons/cohorts producing se=0 instead of NaN in TwoStageDiD
25+ - Edge case fixes for TwoStageDiD (PR review feedback)
26+ - Grep PCRE patterns updated to use POSIX character classes
27+
828## [ 2.3.2] - 2026-02-16
929
1030### Added
@@ -719,6 +739,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
719739 - ` to_dict() ` and ` to_dataframe() ` export methods
720740 - ` is_significant ` and ` significance_stars ` properties
721741
742+ [ 2.4.0 ] : https://github.com/igerber/diff-diff/compare/v2.3.2...v2.4.0
722743[ 2.3.2 ] : https://github.com/igerber/diff-diff/compare/v2.3.1...v2.3.2
723744[ 2.3.1 ] : https://github.com/igerber/diff-diff/compare/v2.3.0...v2.3.1
724745[ 2.3.0 ] : https://github.com/igerber/diff-diff/compare/v2.2.1...v2.3.0
0 commit comments