Add LP-DiD launch carousel (local-projections crossover narrative)#597
Conversation
11-slide LinkedIn deck for the LP-DiD estimator (Dube, Girardi, Jorda & Taylor 2025). Horizon palette (violet/cyan/amber), spillover-deck architecture. Claim discipline: CS/Cengiz-stacked equivalences marked exact (Sec. 3.7), BJS scoped to exact-single-cohort (fn. 10-11), no speed claims (paper's Table 2 speedups are Stata artifacts; diff-diff's vectorized CS outbenchmarks LPDiD, verified empirically). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Cover/shelf/equivalence-map now name exactly the estimators the paper proves LP-DiD nests (CS, Cengiz stacked, classic 2x2, single-cohort BJS); Sun-Abraham removed from the unification arc (no documented equivalence). "Whole zoo is a keyword argument" scoped to CS. Footer version derived from pyproject.toml (was hard-coded, stale at v3.6.0). Non-absorbing/survey code comments made caveat-precise. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…default-path survey) Cover names Cengiz-style stacking (the paper's actual equivalence target, not StackedDiD generically); non-negative-weights card scoped to the clean-control baseline with RA-preferred note; survey cards on slides 9/10 marked default-path. Version parse switched from tomllib (3.11+) to a stdlib regex so the generator runs on Python >=3.9. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… claim E(beta_h) now sums over g != 0 (paper Eq. 9; never-treated is the control cohort, not an ATT recipient). Slide-9 footer scoped: survey_design composes on the default path only (rejects reweight=True). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Slide-10 fixest card scoped to variance-weighted point+SE parity (the reweighted effect-stabilization SE is pinned, not parity). Composition card says post-window sample; shelf caption "Same causal question." Removed unused _render_equations helper; documented carousel-only generation deps (fpdf2/Pillow/matplotlib) in the docstring. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ontract)
The single-cohort-PMD equivalence scope now travels with the name on
every user-visible surface ("BJS-style imputation"), matching the
slide-6 and slide-10 qualifiers. carousel/README.md documents the
regenerate-with-the-script contract, generation-only deps, and the
claim-discipline convention for methodology copy.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…eps wording The authors'-recipes card claimed ~1e-13; the registry records the absorbing R-parity bundle at ~1e-12 (only pooled specifically ~1e-13). README: matplotlib is already in dev/docs extras; only fpdf2/Pillow are carousel-only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Eq. 13 effect-stabilization admits stabilized already-treated units as clean controls, so the unqualified "never serve as controls" was too broad. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…edDiD name) diff-diff's StackedDiD implements Wing-Freedman-Hollingsworth (2024) Q-weights, a different (corrected) scheme LP-DiD does not nest; the paper's Sec. 3.7 equivalence target is the Cengiz et al. (2019) literature design. The shelf card previously juxtaposed the library estimator name with the Cengiz citation, inviting a false identification. Claim-discipline docstring now carries the rule. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ative) New arc per Dube-Girardi-Jorda-Taylor (2025) pp. 741-742, quotes verbatim: macro built LPs for dynamic effects of shocks (cover, IRF motif) -> negative weighting via contamination schematic + pull quote -> dark twist slide (naive LP inherits the bias, Eqs. 6-7) -> the "underappreciated feature" fusion (LP + clean controls) -> "unclean" mechanism grid -> non-negative weights + "subsumes" equivalence map -> symmetric pre-trends (Roth 2024, authors' claim) -> code/production/ validated/CTA. Visual flair: amber kickers, serif pull quotes, card shadows, one dark slide; type floored at ~13pt body / 38-52pt headlines for phone-width legibility. All prior claim discipline retained (BJS-style single-cohort, Cengiz-style literature naming, default-path survey, ~1e-12 tolerance, no speed claims, Sum over g != 0). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…l command Card title now matches the registry's entry-effect scope (exit-event dynamics are deferred). README gains the pip install line for the carousel-only deps. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…he line The dashed shock marker no longer extends below the pre-period line (read as a rendering mistake); the "shock" label sits directly beside its dash. Slide-6 lead-in rephrased to a plain sentence. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Trimmed the below-baseline padding so the curve's flat line is the motif's bottom edge, and raised the punchline so no text hangs under the chart. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Overall Assessment✅ Looks good — no unmitigated P0/P1 findings. Executive Summary
MethodologyFinding: No findings Code QualityFinding: No findings PerformanceFinding: No findings MaintainabilityFinding: No findings Tech DebtFinding: No findings SecurityFinding: No findings Documentation/TestsFinding: No findings |
Summary
carousel/generate_lpdid_carousel.py(generator, "Horizon" palette: violet/cyan/amber on a lavender gradient) + the renderedcarousel/diff-diff-lpdid-carousel.pdf(11 slides, 4:5) +carousel/README.md(regeneration contract, carousel-only deps, claim-discipline convention).StackedDiDimplements WFH 2024 Q-weights, which LP-DiD does not nest; classic 2x2 Sec. 2.2; BJS-style exact single-cohort PMD, fn. 10-11). Survey claims scoped to the variance-weighted default path; non-absorbing scoped to entry effects (Eq. 12/13); fixest parity scoped to VW variants; tolerances match the REGISTRY-recorded digits; no speed claims (the paper's Table 2 speedups are Stata-implementation artifacts and do not hold for diff-diff's vectorized CS - verified empirically).pyproject.tomlat generation time (stdlib regex, Python >= 3.9), so the deck cannot drift from the release it advertises.Methodology references (required if estimator / math changes)
LPDiD.docs/methodology/REGISTRY.md(## LPDiD).Validation
Security / privacy
Generated with Claude Code