You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Address forty-second round of CI review findings on PR #318
Round-42 landed two P1 findings:
1. All-undefined pre-period surface routed to ``skipped`` instead of
``inconclusive`` (``diagnostic_report.py``). When every pre-row is
dropped by ``_collect_pre_period_coefs`` for undefined inference
(all ``se <= 0`` / non-finite effect/se), the collector returns
``([], n_dropped_undefined > 0)``. Both the applicability gate and
``_pt_event_study`` treated that as "no coefficients available" and
skipped, letting BR drop the identifying-assumption warning. Fixed
both sites to detect the all-undefined case and route to the
explicit ``method="inconclusive"`` runner alongside the partial-
undefined case already covered by R33. BR's existing inconclusive
phrasing lifts through unchanged.
2. Source-faithful assumption text for ``ImputationDiDResults`` and
``TwoStageDiDResults`` (``business_report.py``). BR's
``_describe_assumption`` was grouping both with CS / SA / Wooldridge
under the generic "parallel trends across treatment cohorts and
time periods (group-time ATT)" template, but BJS (2024) and Gardner
(2022) both identify through an untreated-potential-outcome model:
unit+time FE fitted on untreated observations (``Omega_0`` =
never-treated + not-yet-treated) deliver the counterfactual, and
the identifying restriction is on ``E[Y_it(0)] = alpha_i + beta_t``
— not on cohort-time ATT equality. Split each into its own branch
mirroring REGISTRY.md §ImputationDiD (lines 1000-1013) and
§TwoStageDiD (lines 1113-1128), including the Gardner-BJS
algebraic-equivalence note.
Tests: 3 new regressions.
- ``test_all_pre_periods_undefined_yields_inconclusive_not_skipped``:
all pre-rows with ``se == 0``, asserts DR emits ``method="inconclusive"``
/ ``status="ran"`` / ``n_pre_periods=0`` / ``n_dropped_undefined=2``,
and BR summary emits "inconclusive".
- ``test_imputation_did_assumption_uses_untreated_fe_model`` and
``test_two_stage_did_assumption_uses_untreated_fe_model``: lock the
new ``parallel_trends_variant="untreated_outcome_fe_model"`` tag,
require the registry-backed source attribution and untreated-subset
detail, and reject the pre-R42 generic-PT template.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
0 commit comments