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
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Four review rounds on
apps/unified_slides.html, applied to both the canonical src and the built deck (this checkout has nobook/buildshards, so every edit was mirrored byte-identically into the built file — none touch tokens or DATA; the next shard-fullmake html-unifiedreproduces everything from src).Opening
Part 1 (the cases)
Part 2 (geo) trims
Part 3 (IV) trims
Closing
Deck: 55 presented slides + Sources + 11 backup (67 total). Verified each round: labs claims + deck-wide sweeps green on both decks (90/90),
node --checkOK, 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_methodrelaxed 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