Skip to content

Unified deck: Alexander's review rounds (opening graph, case 3 fleshed out, trims to 55 presented slides, The END) - #3

Open
AlexanderFengler wants to merge 5 commits into
fmuia:unified_deckfrom
AlexanderFengler:unified-refinements
Open

Unified deck: Alexander's review rounds (opening graph, case 3 fleshed out, trims to 55 presented slides, The END)#3
AlexanderFengler wants to merge 5 commits into
fmuia:unified_deckfrom
AlexanderFengler:unified-refinements

Conversation

@AlexanderFengler

Copy link
Copy Markdown
Collaborator

Four review rounds on apps/unified_slides.html, applied to both the canonical src and the built deck (this checkout has no book/build shards, so every edit was mirrored byte-identically into the built file — none touch tokens or DATA; the next shard-full make html-unified reproduces everything from src).

Opening

  • S2 "PyMC Labs: what we do": Labs logo chip top-right (dark-mode safe) + a left-to-right ecosystem graph: PyTensor → PyMC → {PyMC-Marketing, CausalPy, Bespoke (dashed: customer-specific builds)}; "what we sell / how we work" bullets rewritten; the method note now reads "Our lectures will center around classical methods to stay didactically coherent…".

Part 1 (the cases)

  • Colgate: "recovered" explained plainly (planted 50% → 49–59%, find a known answer before being trusted); "Bayesian" dropped from the method line; clearer sub.
  • HelloFresh: the everyday-tool card now names the MMM (it was used undefined); the loop figure loses the synthetic-control node (not yet taught at that point) and closes on "that method is Part 2 of this session".
  • Nürnberger fleshed out to a two-slide case: a new card slide defines last-touch attribution, the GDPR (spelled out), and the funnel-aware causal MMM before the poll; the poll is now concept-grounded ("which channels does last-touch systematically under-credit?") with per-option why-notes; the 27% CPL outcome moved into the reveal.

Part 2 (geo) trims

  • Boardroom slide gains a schematic metros picture (29 grey donors, the treated metro with campaign arcs); the "unbiased" fold dropped.
  • Simulate-the-world: legend fixed ("Black: the treated metro"), before/after means on by default (also on the data slide).
  • "The estimator" deleted; "What the constraint buys" simplified to "The synthetic twin, graded against the truth" (OLS synthetic + n_eff removed).
  • Act III reduced to the two falsification slides → straight into the money act; placebo-in-space, test inversion, the Act-III poll, and the statistics summary all moved to Backup.

Part 3 (IV) trims

  • "The plan for Part 2" → "Going forward"; the machine-learning line dropped; "Why the division is forced", "The IV estimate", and "Weak instruments" moved to Backup. Reviewer note: worth one live click-through of the reduced-form → LATE handoff, since the on-screen division now lives in the appendix (later slides still cite €16.5 via tokens).

Closing

  • Provenance slide logo row: PyTensor · PyMC · PyMC-Marketing · CausalPy (PyTensor vector logo vendored from pymc-devs/pytensor).
  • "One breath" → a title-style "The END": both authors' contacts, the breadth message (Bayesian inference as a vast toolset beyond causal inference), and a get-in-touch callout.
  • "The pattern in every engagement" moved to Backup.

Deck: 55 presented slides + Sources + 11 backup (67 total). Verified each round: labs claims + deck-wide sweeps green on both decks (90/90), node --check OK, headless DOM 0 JS / 0 MathJax errors, polls exercised end-to-end in a real browser, every changed slide screenshotted (light + dark spot checks). One shared-claims tweak: colgate_method relaxed to the fragment both decks contain ("interrupted time series").

Also carries the labs-deck scratchpad tooling commit (assembler + fragments) from the earlier branch.

🤖 Generated with Claude Code

AlexanderFengler and others added 5 commits July 21, 2026 17:46
The "PyMC Labs: what we do" slide gains the Labs logo as a white chip top-right
(absolutely positioned, costing no vertical space; explicit background so the
dark wordmark survives dark mode) and a left-to-right ecosystem graph:
PyTensor (compute engine) -> PyMC (probabilistic programming) -> PyMC-Marketing
(MMM, CLV), CausalPy (quasi-experiments), and a dashed Bespoke node for
customer-specific builds. The graph shares a row with the clients callout so
the slide stays above the fold; theme-aware IIFE registered in __redraw.

Build note: this checkout has no book/build shards, so the identical edit was
applied to both the canonical src and the committed built deck (no tokens or
DATA touched; verified byte-identical insertions). The next shard-full
`make html-unified` reproduces it from src. Verified: labs claims + deck-wide
sweeps 90 checks 0 failures; node --check OK; headless DOM 67 slides,
0 mjx-merror, 0 JS errors; slide 2 screenshotted in light and dark.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…d, wording passes

- S2: "What we sell" and "How we work" bullets rewritten to the reviewer's text
  (end-to-end data science; the client keeps the model and surrounding
  functionality transparently, not the core libraries).
- S3: the method note now reads "Our lectures will center around classical
  methods to stay didactically coherent. We will only hint at what the Bayesian
  approach affords."
- S5 Colgate: "Bayesian" dropped from the method line (the time series carries
  the point); the grading bullet now explains recovery plainly (run on
  simulated sales with the truth fixed at 50% by construction, estimate
  49-59%: find a planted answer before being trusted on the real one); the sub
  closes with "how much of its sales is which?" instead of "the launch verdict
  is the split".
- S7: the everyday-tool card now names the tool: a marketing-mix model (MMM),
  so the loop figure's MMM node is defined before use.
- S8: the loop figure loses the synthetic-control node (not yet taught at this
  point in the session); now a two-node MMM <-> geo-experiment loop, closing
  with "reading a geo experiment out is its own craft: that method is Part 2 of
  this session".
- Case 3 fleshed out to a two-slide case: a new "Nürnberger: steering by the
  last click" card slide defines last-touch attribution and the funnel-aware
  causal MMM (GDPR mechanism + Herp quote) BEFORE the poll; the poll becomes
  concept-grounded ("which channels does last-touch systematically
  under-credit?", correct: upper-funnel awareness) with per-option why-notes,
  and the CPL outcome moves to the reveal. data-t kept as "Poll: price the
  engagement" so shared claims stay anchored across both decks; colgate_method
  claim relaxed to the fragment both decks share.

Both files (src with tokens, built with resolved pins) edited identically; no
shards needed. Verified: labs claims + sweeps green on BOTH decks (90/90 each);
node --check OK; 68 slides, 0 mjx-merror, 0 JS errors; poll E end-to-end
(wrong pick dimmed, B marked correct); changed slides screenshotted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Geo arc:
- Boardroom slide gains a schematic metros picture (29 grey donor markets, the
  treated metro highlighted with campaign arcs); the "what unbiased means" fold
  is dropped (raised a question the slide never asked); the two callouts share
  a row to keep everything above the fold.
- Potential-outcomes slide drops the "estimation target, not a rhetorical
  question" line.
- Simulate-the-world: legend corrected to "Black: the treated metro"; the
  before/after means overlay is now ON by default.
- "The estimator" slide deleted (Abadie's idea now flows straight to the
  convex hull).
- "What the constraint buys" simplified into "The synthetic twin, graded
  against the truth": OLS synthetic and the effective-donors machinery removed
  from figure and prose; one figure showing the twin tracking the true
  counterfactual, with pre/post RMSE in the caption.
- Act III reduced to the two falsification slides; poll, placebo-in-space,
  test inversion, and the statistics summary moved to Backup, so the
  falsifications now hand straight to the money act.
- "Why not just forecast it?", the two DiD-algebra slides, and "Why the
  division is forced" also moved to Backup (kickers prefixed, TOC groups them).

IV arc:
- "The plan for Part 2" callout retitled "Going forward".
- The IV-estimate slide drops the "no model of intent, controls, or machine
  learning" line.

Closing:
- The provenance slide's logo row now runs PyTensor · PyMC · PyMC-Marketing ·
  CausalPy (PyTensor vector logo vendored from pymc-devs/pytensor, base64).
- "One breath" replaced by a title-style "The END": both authors' contacts,
  the breadth message (Bayesian inference as a vast toolset beyond causal
  inference), and a get-in-touch callout.

Deck: 68 -> 67 slides (one deletion, eight moves to Backup). Both files edited
identically (no tokens in touched regions). Verified: labs claims + sweeps
90/90; node --check OK; 67 slides, 0 mjx-merror, 0 JS errors; changed slides
screenshotted (metros, means-on simulate, twin-vs-truth, logos row, The END).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…on for the data slide, GDPR defined

- "The IV estimate", "Weak instruments (live)" and "The pattern in every
  engagement" moved to Backup (kickers prefixed; the pattern slide keeps its
  claims anchor).
- The data slide's before/after means overlay is now ON by default, matching
  the simulate-the-world slide.
- GDPR defined at first use on the Nürnberger case slide: "the EU's General
  Data Protection Regulation, the 2018 privacy law that restricts user-level
  tracking" (pinned quote fragment kept verbatim for the claim check).

Verified: labs claims + sweeps 90/90; node --check OK; 67 slides, 0 JS errors;
slides 9 and 13 screenshotted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant