From e5fec86729452034c5be25e12dc55e6e0f74a920 Mon Sep 17 00:00:00 2001 From: igerber Date: Tue, 14 Apr 2026 19:00:56 -0400 Subject: [PATCH 1/4] Add LinkedIn carousel PDF for dCDH estimator announcement 9-slide carousel (slate+teal palette) covering: hook, problem statement with treatment timeline visual, real-world scenarios, DID_M method, feature grid, dynamic event study plot, code example, R validation parity, and CTA. Marketing campaign hero example threads through. Co-Authored-By: Claude Opus 4.6 (1M context) --- carousel/diff-diff-dcdh-carousel.pdf | Bin 0 -> 174277 bytes carousel/generate_dcdh_carousel.py | 965 +++++++++++++++++++++++++++ 2 files changed, 965 insertions(+) create mode 100644 carousel/diff-diff-dcdh-carousel.pdf create mode 100644 carousel/generate_dcdh_carousel.py diff --git a/carousel/diff-diff-dcdh-carousel.pdf b/carousel/diff-diff-dcdh-carousel.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c9f4ab4747c82314ef1109a507b8c3cc15956114 GIT binary patch literal 174277 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

dv7A-Il#*g(N?zC^B7R0wb1 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 Ks_Lly_P+p|wWtdK literal 0 HcmV?d00001 diff --git a/carousel/generate_dcdh_carousel.py b/carousel/generate_dcdh_carousel.py new file mode 100644 index 00000000..42f6dd7e --- /dev/null +++ b/carousel/generate_dcdh_carousel.py @@ -0,0 +1,965 @@ +#!/usr/bin/env python3 +"""Generate LinkedIn carousel PDF for dCDH estimator announcement.""" + +import os +import tempfile +from pathlib import Path + +import matplotlib +matplotlib.use("Agg") +import matplotlib.pyplot as plt # noqa: E402 +import matplotlib.patches as mpatches # noqa: E402 +import numpy as np # noqa: E402 +from PIL import Image as PILImage # noqa: E402 + +from fpdf import FPDF # noqa: E402 + +# Computer Modern for math +plt.rcParams["mathtext.fontset"] = "cm" + +# Page dimensions (4:5 portrait) +WIDTH = 270 # mm +HEIGHT = 337.5 # mm + +# ── Dark cool-slate + teal palette ────────────────────────────── +SLATE_900 = (15, 23, 42) # #0f172a — page background +SLATE_800 = (30, 41, 59) # #1e293b — card/panel bg +SLATE_700 = (51, 65, 85) # #334155 — elevated panels +TEAL = (20, 184, 166) # #14b8a6 — primary accent +TEAL_LIGHT = (94, 234, 212) # #5eead4 — CI bands, secondary +TEAL_DARK = (13, 148, 136) # #0d9488 — accent bars +WHITE = (255, 255, 255) # #ffffff — primary text +SLATE_400 = (148, 163, 184) # #94a3b8 — secondary text +SLATE_300 = (203, 213, 225) # #cbd5e1 — fine print +CORAL = (251, 113, 133) # #fb7185 — problem accent +CODE_BG = (2, 6, 23) # #020617 — code block bg +GREEN_CODE = (134, 239, 172) # #86efac — code string literals + +# Hex colors for matplotlib +SLATE_900_HEX = "#0f172a" +SLATE_800_HEX = "#1e293b" +SLATE_700_HEX = "#334155" +TEAL_HEX = "#14b8a6" +TEAL_LIGHT_HEX = "#5eead4" +TEAL_DARK_HEX = "#0d9488" +CORAL_HEX = "#fb7185" +WHITE_HEX = "#ffffff" +SLATE_400_HEX = "#94a3b8" +SLATE_300_HEX = "#cbd5e1" + + +class DCDHCarouselPDF(FPDF): + def __init__(self): + super().__init__(orientation="P", unit="mm", format=(WIDTH, HEIGHT)) + self.set_auto_page_break(False) + self._temp_files = [] + + def cleanup(self): + """Remove temporary image files.""" + for f in self._temp_files: + try: + os.unlink(f) + except OSError: + pass + + # ── Background & Footer ────────────────────────────────────── + + def dark_bg(self): + """Fill page with dark slate background.""" + self.set_fill_color(*SLATE_900) + self.rect(0, 0, WIDTH, HEIGHT, "F") + + def add_footer(self): + """Add footer with teal rule and diff-diff wordmark.""" + rule_y = HEIGHT - 28 + self.set_draw_color(*TEAL_DARK) + self.set_line_width(0.5) + self.line(50, rule_y, WIDTH - 50, rule_y) + + self.set_font("Helvetica", "B", 12) + d1 = "diff" + dash = "-" + d2 = "diff" + d1_w = self.get_string_width(d1) + dash_w = self.get_string_width(dash) + d2_w = self.get_string_width(d2) + total_w = d1_w + dash_w + d2_w + start_x = (WIDTH - total_w) / 2 + + self.set_xy(start_x, HEIGHT - 22) + self.set_text_color(*SLATE_400) + self.cell(d1_w, 10, d1) + self.set_text_color(*TEAL) + self.cell(dash_w, 10, dash) + self.set_text_color(*SLATE_400) + self.cell(d2_w, 10, d2) + + # ── Text Helpers ───────────────────────────────────────────── + + def centered_text(self, y, text, size=28, bold=True, color=WHITE, + italic=False): + """Add centered text.""" + self.set_xy(0, y) + style = "" + if bold: + style += "B" + if italic: + style += "I" + self.set_font("Helvetica", style, size) + self.set_text_color(*color) + self.cell(WIDTH, size * 0.5, text, align="C") + + def draw_split_logo(self, y, size=18): + """Draw the split-color diff-diff logo.""" + self.set_xy(0, y) + self.set_font("Helvetica", "B", size) + self.set_text_color(*WHITE) + self.cell(WIDTH / 2 - 5, 10, "diff", align="R") + self.set_text_color(*TEAL) + self.cell(10, 10, "-", align="C") + self.set_text_color(*WHITE) + self.cell(WIDTH / 2 - 5, 10, "diff", align="L") + + # ── Equation Rendering ─────────────────────────────────────── + + def _render_equations(self, latex_lines, fontsize=26, color=TEAL_HEX): + """Render LaTeX equations to transparent PNG.""" + n = len(latex_lines) + fig_h = max(0.7, 0.55 * n + 0.15) + fig = plt.figure(figsize=(10, fig_h)) + + for i, line in enumerate(latex_lines): + y_frac = 1.0 - (2 * i + 1) / (2 * n) + fig.text( + 0.5, y_frac, line, + fontsize=fontsize, ha="center", va="center", + color=color, + ) + + fig.patch.set_alpha(0) + fd, path = tempfile.mkstemp(suffix=".png") + os.close(fd) + fig.savefig(path, dpi=250, bbox_inches="tight", pad_inches=0.06, + transparent=True) + plt.close(fig) + + with PILImage.open(path) as img: + pw, ph = img.size + + self._temp_files.append(path) + return path, pw, ph + + def _place_equation_centered(self, path, pw, ph, y, max_w=200): + """Place equation image centered on page at given y.""" + aspect = ph / pw + display_w = min(max_w, WIDTH * 0.75) + display_h = display_w * aspect + eq_x = (WIDTH - display_w) / 2 + self.image(path, eq_x, y, display_w) + return display_h + + # ── Treatment Timeline Visual ──────────────────────────────── + + def _render_treatment_timeline(self): + """Render side-by-side treatment timeline comparison. + + Left: typical staggered DiD (all units adopt, never leave). + Right: dCDH (some join, some leave, same never-treated control). + """ + fig, (ax_left, ax_right) = plt.subplots( + 1, 2, figsize=(11, 4.5), gridspec_kw={"wspace": 0.35}, + ) + fig.patch.set_facecolor(SLATE_900_HEX) + + n_periods = 10 + periods = np.arange(n_periods) + bar_height = 0.6 + + untreated_color = SLATE_700_HEX + treated_left = TEAL_DARK_HEX + treated_right = TEAL_HEX + + # ── Left panel: typical staggered DiD ── + ax_left.set_facecolor(SLATE_900_HEX) + ax_left.set_title("Typical staggered DiD", + fontsize=13, fontweight="bold", + color=SLATE_300_HEX, pad=10, + fontfamily="sans-serif") + + left_units = [ + ("Prospect A", 3), # adopts at t=3 + ("Prospect B", 5), # adopts at t=5 + ("Prospect C", 7), # adopts at t=7 + ("Prospect D", None), # never treated + ] + + for row, (label, onset) in enumerate(left_units): + y = len(left_units) - 1 - row + for t in periods: + if onset is not None and t >= onset: + color = treated_left + else: + color = untreated_color + ax_left.barh(y, 0.9, left=t, height=bar_height, + color=color, edgecolor=SLATE_900_HEX, + linewidth=0.5) + + ax_left.text(-0.5, y, label, ha="right", va="center", + fontsize=9, color=SLATE_300_HEX, + fontfamily="sans-serif") + + ax_left.set_xlim(-0.2, n_periods) + ax_left.set_ylim(-0.8, len(left_units) - 0.3) + ax_left.set_xlabel("Time", fontsize=10, color=SLATE_400_HEX, + fontfamily="sans-serif") + ax_left.set_yticks([]) + ax_left.tick_params(axis="x", colors=SLATE_400_HEX, labelsize=8) + for spine in ax_left.spines.values(): + spine.set_visible(False) + + # "All adopt" annotation — vertically aligned with right panel legend + ax_left.text(n_periods / 2, -1.8, "All treatment flows one way", + ha="center", va="center", fontsize=9, + color=SLATE_400_HEX, style="italic", + fontfamily="sans-serif") + + # ── Right panel: dCDH ── + ax_right.set_facecolor(SLATE_900_HEX) + ax_right.set_title("dCDH", + fontsize=13, fontweight="bold", + color=TEAL_HEX, pad=10, + fontfamily="sans-serif") + + # (label, list of treated periods, transition_type) + right_units = [ + ("Prospect A", list(range(4, 10)), "join", 4), + ("Prospect B", list(range(0, 6)), "leave", 6), + ("Prospect C", list(range(6, 10)), "join", 6), + ("Prospect D", [], None, None), # never treated (same control) + ] + + for row, (label, treated_periods, trans_type, trans_t) in enumerate( + right_units + ): + y = len(right_units) - 1 - row + for t in periods: + if t in treated_periods: + color = treated_right + else: + color = untreated_color + ax_right.barh(y, 0.9, left=t, height=bar_height, + color=color, edgecolor=SLATE_900_HEX, + linewidth=0.5) + + ax_right.text(-0.5, y, label, ha="right", va="center", + fontsize=9, color=SLATE_300_HEX, + fontfamily="sans-serif") + + # No transition markers — the color blocks tell the story + + ax_right.set_xlim(-0.2, n_periods) + ax_right.set_ylim(-0.8, len(right_units) - 0.3) + ax_right.set_xlabel("Time", fontsize=10, color=SLATE_400_HEX, + fontfamily="sans-serif") + ax_right.set_yticks([]) + ax_right.tick_params(axis="x", colors=SLATE_400_HEX, labelsize=8) + for spine in ax_right.spines.values(): + spine.set_visible(False) + + # Legend below right panel + join_patch = mpatches.Patch(color=TEAL_HEX, label="Targeted") + leave_patch = mpatches.Patch(color=untreated_color, + label="Not targeted") + ax_right.legend(handles=[join_patch, leave_patch], + loc="lower center", bbox_to_anchor=(0.5, -0.25), + ncol=2, fontsize=9, frameon=False, + labelcolor=SLATE_300_HEX) + + fig.subplots_adjust(left=0.08, right=0.98, bottom=0.12, top=0.90, + wspace=0.35) + + fd, path = tempfile.mkstemp(suffix=".png") + os.close(fd) + fig.savefig(path, dpi=200, bbox_inches="tight", pad_inches=0.15, + facecolor=SLATE_900_HEX) + plt.close(fig) + + with PILImage.open(path) as img: + pw, ph = img.size + + self._temp_files.append(path) + return path, pw, ph + + # ── Event Study Plot ───────────────────────────────────────── + + def _render_event_study(self): + """Render dynamic event study plot with placebos. + + Uses hardcoded ATT values (no runtime library dependency). + Placebos at negative horizons near zero, effects at positive horizons. + """ + horizons = np.arange(-4, 6) + # Placebos: near zero (pre-trend validation) + atts_pre = [0.08, -0.05, 0.12, -0.02] + # Post-treatment: positive effects, growing then stabilizing + atts_post = [0.0, 1.40, 1.85, 2.10, 1.95, 2.05] + atts = np.array(atts_pre + atts_post) + ses = np.array([0.28, 0.25, 0.22, 0.20, + 0.0, 0.24, 0.26, 0.28, 0.32, 0.35]) + + # 95% pointwise CI + ci_lower = atts - 1.96 * ses + ci_upper = atts + 1.96 * ses + + fig, ax = plt.subplots(figsize=(9, 5)) + fig.patch.set_facecolor(SLATE_900_HEX) + ax.set_facecolor(SLATE_900_HEX) + + # Shade pre and post regions + ax.axvspan(-4.5, -0.5, alpha=0.08, color=SLATE_400_HEX) + ax.axvspan(-0.5, 5.5, alpha=0.05, color=TEAL_HEX) + + # Region labels at top of plot area + y_top = max(ci_upper) + 0.45 + ax.text(-2.5, y_top, "Placebos", + ha="center", va="bottom", fontsize=12, + color=SLATE_400_HEX, style="italic", + fontfamily="sans-serif") + ax.text(2.5, y_top, "Treatment effects", + ha="center", va="bottom", fontsize=12, + color=TEAL_LIGHT_HEX, style="italic", + fontfamily="sans-serif") + + # CI band (skip horizon 0 which is the reference) + mask = horizons != 0 + ax.fill_between(horizons[mask], ci_lower[mask], ci_upper[mask], + color=TEAL_LIGHT_HEX, alpha=0.2) + + # ATT line + dots + ax.plot(horizons[mask], atts[mask], "o-", color=TEAL_HEX, + linewidth=2.5, markersize=7, zorder=5) + + # Reference point at horizon 0 (normalized to zero) + ax.plot(0, 0, "D", color=SLATE_400_HEX, markersize=8, zorder=6) + + # Reference lines + ax.axhline(0, color=SLATE_400_HEX, linestyle="--", linewidth=0.8) + ax.axvline(-0.5, color=CORAL_HEX, linestyle=":", linewidth=1.5, + label="First treatment change", zorder=3) + + ax.set_xlabel("Horizon (l)", fontsize=12, color=SLATE_300_HEX, + fontfamily="sans-serif") + ax.set_ylabel("Effect estimate", fontsize=12, color=SLATE_300_HEX, + fontfamily="sans-serif") + + ax.tick_params(colors=SLATE_400_HEX) + ax.set_xticks(horizons) + for spine in ax.spines.values(): + spine.set_color(SLATE_700_HEX) + + ax.legend(loc="upper left", fontsize=10, frameon=False, + labelcolor=SLATE_300_HEX) + + fig.tight_layout() + + fd, path = tempfile.mkstemp(suffix=".png") + os.close(fd) + fig.savefig(path, dpi=200, bbox_inches="tight", pad_inches=0.1, + facecolor=SLATE_900_HEX) + plt.close(fig) + + with PILImage.open(path) as img: + pw, ph = img.size + + self._temp_files.append(path) + return path, pw, ph + + # ── Code Block ─────────────────────────────────────────────── + + def _add_code_block(self, x, y, w, token_lines, font_size=12, + line_height=11): + """Render syntax-highlighted code on a dark panel.""" + n_lines = len(token_lines) + total_h = n_lines * line_height + 24 + + self.set_fill_color(*CODE_BG) + self.rect(x, y, w, total_h, "F") + + self.set_font("Courier", "", font_size) + char_w = self.get_string_width("M") + + pad_x = 15 + pad_y = 12 + + for i, tokens in enumerate(token_lines): + cx = x + pad_x + cy = y + pad_y + i * line_height + + for text, color in tokens: + if not text: + continue + self.set_xy(cx, cy) + self.set_text_color(*color) + self.cell(char_w * len(text), 10, text) + cx += char_w * len(text) + + return total_h + + # ════════════════════════════════════════════════════════════ + # SLIDES + # ════════════════════════════════════════════════════════════ + + def slide_01_hook(self): + """Slide 1: Hook - When Treatment Isn't Permanent. + + Claims & sources: + - "When Treatment Isn't Permanent": captures the non-absorbing + treatment assumption relaxed by dCDH. REGISTRY.md line 466: + "This is the only modern staggered estimator in the library + that handles non-absorbing (reversible) treatments" + - "de Chaisemartin & D'Haultfoeuille (2024)": REGISTRY.md lines + 462-464, NBER WP 29873 revised 2024 + - "Joiners and leavers in one model": REGISTRY.md lines 486-491, + DID_{+,t} for joiners, DID_{-,t} for leavers + - "Dynamic event study with pre-trend placebos": REGISTRY.md + lines 518-534, DID_l and DID^{pl}_l + - "Part of a 16-estimator DiD toolkit": counted from __init__.py, + 16 treatment-effect estimators with fit() including dCDH + """ + self.add_page() + self.dark_bg() + + self.draw_split_logo(55, size=56) + + # Hook - two lines + self.centered_text(125, "When Treatment", size=32) + self.centered_text(155, "Isn't Permanent.", size=32, color=TEAL) + + # Teasers + teasers = [ + "de Chaisemartin & D'Haultfoeuille (2024)", + "Joiners and leavers in one model", + "Dynamic event study with pre-trend placebos", + ] + y_start = 205 + for i, teaser in enumerate(teasers): + self.set_xy(0, y_start + i * 20) + self.set_font("Helvetica", "", 15) + self.set_text_color(*SLATE_400) + self.cell(WIDTH, 10, teaser, align="C") + + self.add_footer() + + def slide_02_problem(self): + """Slide 2: The Permanent Treatment Assumption. + + Claims & sources: + - "Most staggered DiD estimators assume treatment is absorbing": + Callaway-Sant'Anna (staggered.py) requires first_treat to be + permanent. Sun-Abraham, Imputation, TwoStage, Stacked all + require absorbing treatment (one-way adoption). + - Visual contrast: left panel (absorbing) vs right (dCDH). + Right panel uses marketing-flavored labels per storyboard. + - "Requires never-treated or never-switching controls": + REGISTRY.md line 476, stable controls needed for both + joiner and leaver estimation. + """ + self.add_page() + self.dark_bg() + + self.centered_text(25, "The Permanent Treatment", size=32) + self.centered_text(55, "Assumption", size=32, color=CORAL) + + # Subtitle + self.centered_text(90, + "Most staggered DiD estimators assume absorbing treatment.", + size=15, bold=False, color=SLATE_400) + + # Treatment timeline visual + plot_path, ppw, pph = self._render_treatment_timeline() + plot_w = WIDTH * 0.92 + plot_aspect = pph / ppw + plot_h = plot_w * plot_aspect + plot_x = (WIDTH - plot_w) / 2 + plot_y = 128 + + self.image(plot_path, plot_x, plot_y, plot_w) + + # Annotation below + ann_y = plot_y + plot_h + 10 + self.centered_text(ann_y, + "Some units adopt while others discontinue.", + size=15, bold=False, color=SLATE_300) + self.centered_text(ann_y + 20, + "You need both directions.", + size=16, bold=True, color=TEAL) + + self.add_footer() + + def slide_03_real_world(self): + """Slide 3: Where Treatment Isn't Permanent. + + Claims & sources: + - Marketing campaigns: natural fit for dCDH. New prospects + get targeted (joiners) while others are untargeted (leavers). + - Policy adoption/repeal: states can adopt AND repeal policies. + dCDH paper motivates with policy examples. + - Clinical: patients start and discontinue treatments. + - Pricing: promotions launch and sunset across stores. + All are standard motivating examples for non-absorbing + treatment in the dCDH literature. + """ + self.add_page() + self.dark_bg() + + self.centered_text(25, "Where Treatment", size=34) + self.centered_text(55, "Isn't Permanent", size=34, color=TEAL) + + margin = 35 + box_w = WIDTH - margin * 2 + box_h = 42 + gap = 5 + start_y = 85 + bar_w = 4 + + scenarios = [ + ("Marketing Campaigns", + "Target new prospects, untarget others - measure both"), + ("Policy Adoption & Repeal", + "States adopt policies while others repeal them"), + ("Clinical Treatments", + "Patients start a drug while others discontinue"), + ("Pricing & Promotions", + "Promotions launch in some stores, sunset in others"), + ] + + for i, (title, desc) in enumerate(scenarios): + by = start_y + i * (box_h + gap) + + # Card + self.set_fill_color(*SLATE_800) + self.set_draw_color(*SLATE_700) + self.set_line_width(0.5) + self.rect(margin, by, box_w, box_h, "DF") + + # Teal accent bar + self.set_fill_color(*TEAL) + self.rect(margin, by, bar_w, box_h, "F") + + # Title + self.set_xy(margin + bar_w + 12, by + 7) + self.set_font("Helvetica", "B", 16) + self.set_text_color(*WHITE) + self.cell(box_w - bar_w - 24, 10, title) + + # Description + self.set_xy(margin + bar_w + 12, by + 24) + self.set_font("Helvetica", "", 13) + self.set_text_color(*SLATE_400) + self.cell(box_w - bar_w - 24, 10, desc) + + self.add_footer() + + def slide_04_method(self): + """Slide 4: The dCDH Method. + + Claims & sources: + - de Chaisemartin & D'Haultfoeuille (2020, 2024): + REGISTRY.md lines 462-464. AER 2020 + NBER WP 29873. + - DID_M equation: REGISTRY.md lines 498-500. + DID_M = (1/N_S) sum (N_{1,0,t} DID_{+,t} + N_{0,1,t} DID_{-,t}) + - Joiners vs stable-untreated: REGISTRY.md line 491, + DID_{+,t} compares joiners against stable_0(t) + - Leavers vs stable-treated: REGISTRY.md line 490, + DID_{-,t} compares stable_1(t) against leavers + - R DIDmultiplegtDYN: R package by the paper authors. + Stata did_multiplegt_dyn: Stata implementation. + """ + self.add_page() + self.dark_bg() + + self.centered_text(25, "The dCDH Estimator", size=36) + + # Citation + self.centered_text(62, + "de Chaisemartin & D'Haultfoeuille (2020, 2024)", + size=15, bold=False, italic=True, color=SLATE_400) + + # DID_M equation + eq_path, epw, eph = self._render_equations( + [r"$\mathrm{DID}_M = \frac{1}{N_S}" + r" \sum_{t \geq 2}" + r" \left( N_{1,0,t} \cdot \mathrm{DID}_{+,t}" + r" + N_{0,1,t} \cdot \mathrm{DID}_{-,t} \right)$"], + fontsize=22, + ) + eq_h = self._place_equation_centered(eq_path, epw, eph, 100, + max_w=230) + + # Two explanation cards: joiners and leavers + margin = 38 + card_w = (WIDTH - margin * 2 - 10) / 2 + card_h = 58 + card_y = 100 + eq_h + 16 + + # Joiners card + cx = margin + self.set_fill_color(*SLATE_800) + self.set_draw_color(*TEAL) + self.set_line_width(0.8) + self.rect(cx, card_y, card_w, card_h, "DF") + + self.set_xy(cx + 10, card_y + 8) + self.set_font("Helvetica", "B", 16) + self.set_text_color(*TEAL) + self.cell(card_w - 20, 10, "Joiners (DID+)") + + self.set_xy(cx + 10, card_y + 26) + self.set_font("Helvetica", "", 12) + self.set_text_color(*SLATE_300) + self.cell(card_w - 20, 10, "Units switching ON") + + self.set_xy(cx + 10, card_y + 40) + self.set_text_color(*SLATE_400) + self.cell(card_w - 20, 10, "vs stable-untreated controls") + + # Leavers card + cx = margin + card_w + 10 + self.set_fill_color(*SLATE_800) + self.set_draw_color(*CORAL) + self.set_line_width(0.8) + self.rect(cx, card_y, card_w, card_h, "DF") + + self.set_xy(cx + 10, card_y + 8) + self.set_font("Helvetica", "B", 16) + self.set_text_color(*CORAL) + self.cell(card_w - 20, 10, "Leavers (DID-)") + + self.set_xy(cx + 10, card_y + 26) + self.set_font("Helvetica", "", 12) + self.set_text_color(*SLATE_300) + self.cell(card_w - 20, 10, "Units switching OFF") + + self.set_xy(cx + 10, card_y + 40) + self.set_text_color(*SLATE_400) + self.cell(card_w - 20, 10, "vs stable-treated controls") + + # Bottom note + note_y = card_y + card_h + 16 + self.centered_text(note_y, + "Both directions estimated jointly,", + size=16, bold=False, color=SLATE_300) + self.centered_text(note_y + 18, + "weighted by the number of switchers in each period.", + size=16, bold=False, color=SLATE_300) + + self.add_footer() + + def slide_05_features(self): + """Slide 5: What Ships With It. + + Claims & sources: + - Multi-horizon DID_l: REGISTRY.md lines 518-528 + - Pre-trend placebos: REGISTRY.md line 534 + - Covariate adjustment DID^X: REGISTRY.md, Web Appendix Section 1.2 + - Group-specific trends: REGISTRY.md, Web Appendix Section 1.3 + - Non-binary treatment: REGISTRY.md line 471, treatment supports + ordinal or continuous values + - HonestDiD sensitivity: honest_did.py, Rambachan & Roth (2023) + - Sup-t confidence bands: chaisemartin_dhaultfoeuille.py, + simultaneous inference across horizons + """ + self.add_page() + self.dark_bg() + + self.centered_text(25, "What Ships With It", size=36) + + margin = 30 + grid_gap = 8 + card_w = (WIDTH - margin * 2 - grid_gap) / 2 + card_h = 50 + start_y = 72 + + features = [ + ("Dynamic Event Study", + "Multi-horizon DID_l\nfor l = 1..L_max"), + ("Pre-Trend Placebos", + "DID^pl_l validates\nparallel trends"), + ("Covariate Adjustment", + "DID^X residualization\nfor covariates"), + ("Group-Specific Trends", + "Linear and nonparametric\ntrend removal"), + ("Non-Binary Treatment", + "Ordinal or continuous\ntreatment magnitudes"), + ("HonestDiD Sensitivity", + "Rambachan-Roth bounds\non pre-trends"), + ("Sup-t Bands", + "Simultaneous inference\nacross all horizons"), + ("Multiplier Bootstrap", + "Rademacher, Mammen,\nor Webb weights"), + ] + + for idx, (title, desc) in enumerate(features): + row = idx // 2 + col = idx % 2 + cx = margin + col * (card_w + grid_gap) + cy = start_y + row * (card_h + grid_gap) + + # Card + self.set_fill_color(*SLATE_800) + self.set_draw_color(*SLATE_700) + self.set_line_width(0.5) + self.rect(cx, cy, card_w, card_h, "DF") + + # Title + self.set_xy(cx + 10, cy + 8) + self.set_font("Helvetica", "B", 14) + self.set_text_color(*TEAL) + self.cell(card_w - 20, 10, title) + + # Description (handle line breaks) + desc_lines = desc.split("\n") + for j, line in enumerate(desc_lines): + self.set_xy(cx + 10, cy + 24 + j * 12) + self.set_font("Helvetica", "", 11) + self.set_text_color(*SLATE_400) + self.cell(card_w - 20, 10, line) + + self.add_footer() + + def slide_06_event_study(self): + """Slide 6: Dynamic Event Study Plot. + + Claims & sources: + - Event study aggregation: REGISTRY.md lines 518-528, + DID_l for l = 1..L_max + - Placebos: REGISTRY.md line 534, DID^{pl}_l for pre-trend + validation + - Plot shows synthetic data with hardcoded ATT values mimicking + a well-behaved dataset with true effect ~2.0 and flat placebos. + Horizon 0 is the reference period (normalized to zero). + """ + self.add_page() + self.dark_bg() + + self.centered_text(20, "Dynamic Event Study", size=36) + + # Event study plot + plot_path, ppw, pph = self._render_event_study() + plot_w = WIDTH * 0.88 + plot_aspect = pph / ppw + plot_h = plot_w * plot_aspect + plot_x = (WIDTH - plot_w) / 2 + plot_y = 58 + self.image(plot_path, plot_x, plot_y, plot_w) + + # Annotations below + ann_y = plot_y + plot_h + 8 + self.centered_text(ann_y, + "Placebos near zero: pre-trends validated", + size=15, bold=False, color=SLATE_400) + self.centered_text(ann_y + 18, + "Post-treatment: significant, persistent effects", + size=15, bold=True, color=TEAL) + + self.add_footer() + + def slide_07_code(self): + """Slide 7: The Code. + + Claims & sources: + - ChaisemartinDHaultfoeuille: __init__.py imports from + chaisemartin_dhaultfoeuille.py + - fit() params: chaisemartin_dhaultfoeuille.py lines 472-478 + (data, outcome, group, time, treatment) + - L_max parameter: constructor param, + chaisemartin_dhaultfoeuille.py line 389 + - placebo parameter: constructor param, default True, + chaisemartin_dhaultfoeuille.py line 396 + - plot_event_study(): available on results object, + chaisemartin_dhaultfoeuille_results.py + """ + self.add_page() + self.dark_bg() + + self.centered_text(25, "The Code", size=36) + self.centered_text(58, + "Same sklearn-like API as every diff-diff estimator", + size=15, bold=False, color=SLATE_400) + + margin = 24 + code_y = 82 + + token_lines = [ + [("from", TEAL), (" diff_diff ", WHITE), + ("import", TEAL), (" (", WHITE)], + [(" ChaisemartinDHaultfoeuille ", WHITE), + ("as", TEAL), (" DCDH", WHITE)], + [(")", WHITE)], + [], # blank + [("est", WHITE), (" = ", TEAL), + ("DCDH", GREEN_CODE), ("(", WHITE)], + [(" ", WHITE), ("L_max", WHITE), ("=", TEAL), + ("3", TEAL_LIGHT), (", ", WHITE), + ("placebo", WHITE), ("=", TEAL), + ("True", TEAL_LIGHT), (")", WHITE)], + [], # blank + [("results", WHITE), (" = ", TEAL), + ("est.fit(", WHITE)], + [(" data,", WHITE)], + [(" ", WHITE), ("outcome", WHITE), ("=", TEAL), + ("'conversions'", GREEN_CODE), (",", WHITE)], + [(" ", WHITE), ("group", WHITE), ("=", TEAL), + ("'prospect_id'", GREEN_CODE), (",", WHITE)], + [(" ", WHITE), ("time", WHITE), ("=", TEAL), + ("'week'", GREEN_CODE), (",", WHITE)], + [(" ", WHITE), ("treatment", WHITE), ("=", TEAL), + ("'targeted'", GREEN_CODE), (")", WHITE)], + [], # blank + [("results", WHITE), (".plot_event_study()", SLATE_400)], + ] + + code_h = self._add_code_block( + margin, code_y, WIDTH - margin * 2, token_lines, + ) + + # Subtitles — keep above footer (rule at HEIGHT-28) + sub_y = min(code_y + code_h + 14, HEIGHT - 62) + self.centered_text(sub_y, + "Joiners, leavers, placebos, event study -", + size=14, bold=False, color=SLATE_400) + self.centered_text(sub_y + 16, + "all from one fit() call.", + size=14, bold=True, color=TEAL) + + self.add_footer() + + def slide_08_validation(self): + """Slide 8: Validation. + + Claims & sources: + - 245 tests: pytest --co -q on + test_chaisemartin_dhaultfoeuille.py (230) + + test_chaisemartin_dhaultfoeuille_parity.py (15) = 245. + (test_honest_did.py dCDH tests are part of the 230 count.) + - R DIDmultiplegtDYN parity: + test_chaisemartin_dhaultfoeuille_parity.py, 15 parity tests + covering point estimates, SEs, covariates, trends + - HonestDiD integration: honest_did.py, Rambachan & Roth (2023) + sensitivity analysis on dCDH placebo surface + - Multiplier bootstrap: chaisemartin_dhaultfoeuille.py, + Rademacher/Mammen/Webb weight distributions + """ + self.add_page() + self.dark_bg() + + self.centered_text(30, "Validated Against R", size=36) + + # Hero claim + self.centered_text(72, + "ATT and SE parity with R's DIDmultiplegtDYN.", + size=17, bold=False, color=SLATE_300) + + # Validation items + margin = 38 + box_w = WIDTH - margin * 2 + box_h = 42 + gap = 5 + start_y = 108 + bar_w = 4 + + items = [ + ("Point Estimate Parity", + "ATT matches R across joiners, leavers, and controls"), + ("Standard Error Parity", + "Analytical SEs match R with covariates and trends"), + ("HonestDiD Integration", + "Rambachan-Roth sensitivity on the placebo surface"), + ("Multiplier Bootstrap", + "Rademacher, Mammen, and Webb weight distributions"), + ] + + for i, (title, desc) in enumerate(items): + by = start_y + i * (box_h + gap) + + # Card + self.set_fill_color(*SLATE_800) + self.set_draw_color(*SLATE_700) + self.set_line_width(0.5) + self.rect(margin, by, box_w, box_h, "DF") + + # Teal accent bar + self.set_fill_color(*TEAL) + self.rect(margin, by, bar_w, box_h, "F") + + # Title + self.set_xy(margin + bar_w + 12, by + 7) + self.set_font("Helvetica", "B", 15) + self.set_text_color(*WHITE) + self.cell(box_w - bar_w - 24, 10, title) + + # Description + self.set_xy(margin + bar_w + 12, by + 24) + self.set_font("Helvetica", "", 12) + self.set_text_color(*SLATE_400) + self.cell(box_w - bar_w - 24, 10, desc) + + self.add_footer() + + def slide_09_cta(self): + """Slide 9: CTA - Get Started.""" + self.add_page() + self.dark_bg() + + self.centered_text(50, "Get Started", size=42) + + # pip install badge + badge_w = 210 + badge_h = 36 + badge_x = (WIDTH - badge_w) / 2 + badge_y = 115 + self.set_fill_color(*TEAL_DARK) + self.rect(badge_x, badge_y, badge_w, badge_h, "F") + + self.set_xy(badge_x, badge_y + 9) + self.set_font("Courier", "B", 15) + self.set_text_color(*WHITE) + self.cell(badge_w, 16, "$ pip install --upgrade diff-diff", + align="C") + + # Links + self.centered_text(178, "github.com/igerber/diff-diff", + size=18, color=TEAL) + + # Wordmark + self.draw_split_logo(235, size=28) + + # Subtitle + self.centered_text(262, "Difference-in-Differences for Python", + size=15, bold=False, color=SLATE_400) + + self.add_footer() + + +def main(): + pdf = DCDHCarouselPDF() + try: + pdf.slide_01_hook() + pdf.slide_02_problem() + pdf.slide_03_real_world() + pdf.slide_04_method() + pdf.slide_05_features() + pdf.slide_06_event_study() + pdf.slide_07_code() + pdf.slide_08_validation() + pdf.slide_09_cta() + + output_path = Path(__file__).parent / "diff-diff-dcdh-carousel.pdf" + pdf.output(str(output_path)) + print(f"PDF saved to: {output_path}") + finally: + pdf.cleanup() + + +if __name__ == "__main__": + main() From 95a35b108fb116c93c5519c5145494181c30b974 Mon Sep 17 00:00:00 2001 From: igerber Date: Tue, 14 Apr 2026 19:12:51 -0400 Subject: [PATCH 2/4] Fix CI review: scope validation claims, correct API, soften placebo language - Slide 8: "ATT and SE parity" -> "Point estimates match R" + scope SE parity to pure-direction scenarios (mixed-direction SE limitation is tracked in TODO.md) - Slide 7: fix plot_event_study(results) API (not results.plot_event_study()), add import, update caption to match L_max=3 behavior (no joiners/leavers) - Slides 5/6: "validates parallel trends" -> "consistent with parallel trends" (placebos are diagnostic, not proof) Co-Authored-By: Claude Opus 4.6 (1M context) --- carousel/diff-diff-dcdh-carousel.pdf | Bin 174277 -> 174303 bytes carousel/generate_dcdh_carousel.py | 17 +++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/carousel/diff-diff-dcdh-carousel.pdf b/carousel/diff-diff-dcdh-carousel.pdf index c9f4ab4747c82314ef1109a507b8c3cc15956114..34d8e80564bbc7adf955210785c960ef4859c22f 100644 GIT binary patch delta 3467 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 delta 3431 zcmai!c{CJ!7sshl;De?Li zN?1EFUH-nYzBdPY)S5=PP)q(uoQJRl@IJ9sTXL}h9Zl{*Szpih4bKNQim)BR|700H zZ@LFOHMog;LS+jR#_c4NjPrq`QtGpX$Px@$XM|lWT^-YNbilV1^;6C_0gQD3q_qk& z&PpHW8WO|}hkb5^uQmH9R#&?5rHt}v*N<7R7PMS|HD$LhHZadYEJ~;jke5=I(p2^D z3CobO^`DZJJ8k{0#@m_hizL~py2GL!DbDXn5CvAzcsZf}a~3_xmDUvL_YFN0(;`DmxOH?sWr~aYL}YXz9fe1!gb#Xx1W6oyA_ ze5&XJ>mo5Ye!1KpC9E!NW#(J6a;}E3q(0{n_r!u(?hL0GKx*1_R?S{ zNPFxWNdzimx(ud9{I-(RjZZGwE!1_Y?GI^9THXq1J?C!kmzQCyZ&qt=8r^@QuwOlG zWNbM_R`XZf1;z6-3G~E0)WBgsDXm9cXzAR3njc5US|j|1-1U7QJuc2u6W0b_&nSf9 z{3`7DLKLu5?Rr@Tp0Nc5uCXTW5mg0q4sqd?;(G~aE*>mdLfJ?7{c$b#YK(_Ah7mdS zm|;U1xW2Uy{Cz7$vm4s5F7lHumv^B7BdT+@svxMPE9kTpzuOHVdbw%dkGJL3qU+^ni|fA>2C@b-qE`+J$P4BNozPmId+mX z2~2$JANqBg!ZXzK!oY}?`<>r%c3sq-k@1E3K|!2ev&Uv3^q8LYA>ZL|4GyX5?4Hp_ zMJ0aSwOOzT8N@=Nv(6~FluPcd+Z>tNu=YY>bHYMp4trTPF_=;lh9jj}Q`J&^F%l*# z8Q<@_7C+7(m4D2NDV_+#XVj5Xl)Ds{ySH|&XJ@k$#U)w@aMWLhC(gFxWFttTj(cQ6 zND5BUcBAO= z1-B$5m2s-tM7X3xRBf=i6kzzWXOQrSd`e?^S=h5f^r$q^0Z%gp_OD7#-U%nP4xxB= zYj%BIv-W|vDiNyqPKjqPK0bAlFb)uTX2W7$?kA;s-%$jK7x(`}FHM>^83Prqw9$`E zo54*lU>!gbPC=svQpOAOVBNqc^J9-I6MATB%24kNz0o1z>MGd*8q#k(IcF5zZ zG+x0Hoc;?PoBwJ$gKX}C)Mg8Exu@BCpBs$*vf}I|8B=focb}{O-dBlEQf~=J*kAr2 z$;k%C1c|=oIxP&yc*3TcdNU=J%$m#5cgD}EEJ)>WZnUJ$R!skS;A?i}A*=i3U4E(y z59e*OTS3*B7bc)!l!dvfCeVcP&{w=0y|FrUG*?pxsP49!Y3Z4V8xG|)(|RfDsV1BP zI=1op=<8D$Lg(nL2EYYfyQYBYKDEiKvjjY7X{;rR4dTf3&bhK0$ZI$ex&HR&v<-1a zBlnlOXxnmEo^t?lKiT;S%Q<*!R^+PKVAy%X z2Ca+59&>zN^a=NYGXe9%79Z1ZMNRFIJpNrvO<1st!0#p{4JFE_TIf7X=9}d`%<;5u z7e;2n4jIi}&*EErFZa3Q4samAaYcXSEKO+t<)767TC(W?@%Q`ECqTMYj>GGoY7b(o z>q6L^W1f3SB_E;9pPJ^iab9Wt-t}+l+5=5%i)M6m0n_-2REU4IZ7hCZ)%>Bel@nS$~J2bmlNvWoP6AMg(q0f7PQMhNsst~VPJRCG&Y0NTAXP8MF(kZxDljl`Sdbl#^QDLs*9GyE(lGAv%lTpe(l9A zoS&4{s{(PJeJHh`Q6wIe_u4blMCyv+9YP8B3!JbILb9IGq?|0~iDU1HCvwC_6)csm zqitsv%EL2yfEyvnSHi5+9u&2`1rBvlHcOKIxq_F%#W)#pzKlkjrL_a1=1Z>u?up5= zO#~SFFEf~)#KJK^5-qH?BXi#A4*FYxOM?JvfL(6+WPiV5FmH zzCH>wSs%n*{5-ng{_er}0xFZJB|yrHXxA4ycxg$K{7SR;_?y!qhc%;1W-z)j9(-!n zR&=H&$#So2L|;rMy@Ze-cRpPKN+TMHt+t!XOfj1KmiHdOEq7`O?0 zu)JrFkX?4mSxu8uFD)rkg1!M*)KI0=&!4iQ_5lQzv)e;SsdkgRU}CE=&0T{4PLJ@` zs@~t&ERgYhq%T*-`itp4*SG<0z!I5pl>TkfX-PxpOlRyIAeSJ|Cui+5-2?vZ7zk;+CE-bv(~hO^v3S3 ziRMt2Z6f@v@5Y@Tr4+1P%-jet%~1mz^wv989A3ju^c=Sht@oEyzcl$GPI3;EFS4j~ z!{b0rO6Tn_2u(soz=q+c=fs9M*$pwFuok+crF}xgtZJQ2YMq!&tg&a~E1{fACX0`gRRd;6po&Ld7F*9{du$ zyMDh|0^3=;Q*qZyd@kR3D>lzH{1fwLTkWnCZ}Me8ARcBI#f3CuI*a{p@_%bUyD*m- za3G?%-Eli50wT@TfE( z8#uL)?4)?NbP%foz=9Ixddl7Y91@Yc=CNiz%5qAe+D9(SM=#6sR4vQ%Dm~f_fy3bN zD%l)fAP)hg0{Z7s@lgT%>jHv7;OHF;f!-O1g6xQcBaw*hS~waE-_8&SDDvNo@V~@} zzY!xLkR4(q6oT4rh=f6QBu2uakR5S|ZCb+bM#xf1OUXf7>?SOsJNS23 z5%3h_JYEAV3~P) Date: Tue, 14 Apr 2026 19:34:09 -0400 Subject: [PATCH 3/4] Fix slide 7: merge subtitle into single line, clear code block overlap Co-Authored-By: Claude Opus 4.6 (1M context) --- carousel/diff-diff-dcdh-carousel.pdf | Bin 174303 -> 174289 bytes carousel/generate_dcdh_carousel.py | 9 +++------ 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/carousel/diff-diff-dcdh-carousel.pdf b/carousel/diff-diff-dcdh-carousel.pdf index 34d8e80564bbc7adf955210785c960ef4859c22f..0c328869ccd5051a0c773e2254f75b2f230c93ee 100644 GIT binary patch delta 1475 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 BK$QRh diff --git a/carousel/generate_dcdh_carousel.py b/carousel/generate_dcdh_carousel.py index 18745995..3a088187 100644 --- a/carousel/generate_dcdh_carousel.py +++ b/carousel/generate_dcdh_carousel.py @@ -824,14 +824,11 @@ def slide_07_code(self): margin, code_y, WIDTH - margin * 2, token_lines, ) - # Subtitles — keep above footer (rule at HEIGHT-28) - sub_y = min(code_y + code_h + 14, HEIGHT - 62) + # Subtitle — keep above footer (rule at HEIGHT-28) + sub_y = min(code_y + code_h + 18, HEIGHT - 48) self.centered_text(sub_y, - "Placebos, event study, HonestDiD -", + "Placebos, event study, HonestDiD - all from one fit() call.", size=14, bold=False, color=SLATE_400) - self.centered_text(sub_y + 16, - "all from one fit() call.", - size=14, bold=True, color=TEAL) self.add_footer() From 0838b5844080b1f30ce21279bdc5c4dd3da38558 Mon Sep 17 00:00:00 2001 From: igerber Date: Tue, 14 Apr 2026 20:00:36 -0400 Subject: [PATCH 4/4] Fix CI review R2: scope parity claim, correct fit() API signature - Slide 8: "ATT matches R across joiners, leavers, and controls" -> "ATT validated against R reference outputs" - Slide 7: move L_max and placebo from constructor to fit() where they belong, drop HonestDiD from caption (covered on slide 5) Co-Authored-By: Claude Opus 4.6 (1M context) --- carousel/diff-diff-dcdh-carousel.pdf | Bin 174289 -> 174289 bytes carousel/generate_dcdh_carousel.py | 17 ++++++++--------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/carousel/diff-diff-dcdh-carousel.pdf b/carousel/diff-diff-dcdh-carousel.pdf index 0c328869ccd5051a0c773e2254f75b2f230c93ee..f7687d2506c175effb06df663c4878c41d9b29a9 100644 GIT binary patch delta 1725 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