Machine Learning for Growth Marketing
  • Home
  • Start here
  • Schedule
  • Days
    • Before Day 1 · Module 0 (pre-work)
    • Day 1 · Customers and churn
    • Day 2 · What a customer is worth
    • Day 3 · Incrementality
    • Day 4 · Where the next dollar goes
    • Day 5 · Targeting and the plan
    • Extensions · Beyond the core week
  • Notebooks
  • References
  • What’s new
  • Teach

On this page

  • The core workshop: pre-work and Days 1–5
  • Optional extensions: Modules 13–18
  • How to read this page

Readiness

What has run, where, and what is still missing

This page says, notebook by notebook, what is known about whether the workshop can be taught as designed. It is generated from the run records in runs/ and the CI evidence, with the rules in _variables.yml; it is never written by hand. A run time appears here only if a run record exists, and a run on a laptop, in Docker or on CI is never shown as a Colab run.

As of 2026-10-16, the core workshop (pre-work and Days 1–5): ready to teach. 18 of its 18 notebooks have a current, passing, worked, full-settings run of the whole notebook on Colab. 0 have passed on another machine (0 with full settings), and 18 on CI. Optional extensions (Modules 13–18), not part of that verdict: 6 of 6 notebooks have a current, passing Colab run; 0 have passed on another machine and 6 on CI.

The core workshop: pre-work and Days 1–5

Notebook Ready to teach Evidence
python/00-setup-warmup
Module 0
Yes Colab (Python runtime, CPU): passed 2026-10-16, 2 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 3 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 2 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 2 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
r/00-setup-warmup
Module 0
Yes Colab (R runtime, CPU): passed 2026-10-16, 2 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 3 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 2 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): not run
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Workshop image on an Apple Silicon laptop (linux/arm64, Docker))
python/01-customer-base-sql
Module 1
Yes Colab (Python runtime, CPU): passed 2026-10-16, 11 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 64 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 5 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 3 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/02-btyd
Module 2
Yes Colab (Python runtime, CPU): passed 2026-10-16, 3.2 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 71 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 52 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 24 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
r/03-clvtools-covariates
Module 3
Yes Colab (R runtime, CPU): passed 2026-10-16, 10 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 6 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 4 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): not run
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Workshop image on an Apple Silicon laptop (linux/arm64, Docker))
python/03-btyd-vs-ml
Module 3
Yes Colab (Python runtime, CPU): passed 2026-10-16, 2.0 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 46 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 23 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 14 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/04-monetary-clv
Module 4
Yes Colab (Python runtime, CPU): passed 2026-10-16, 5.7 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 76 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 86 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 69 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/05-clv-decisions
Module 5
Yes Colab (Python runtime, CPU): passed 2026-10-16, 3.4 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 50 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 46 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 36 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/06-experiments
Module 6
Yes Colab (Python runtime, CPU): passed 2026-10-16, 9 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 6 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 5 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 3 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/07-synthetic-control-did
Module 7
Yes Colab (Python runtime, CPU): passed 2026-10-16, 19 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 8 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 8 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 6 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
r/07-causalimpact-geolift
Module 7
Yes Colab (R runtime, CPU): passed 2026-10-16, 70 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 13 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 26 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): not run
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Workshop image on an Apple Silicon laptop (linux/arm64, Docker))
python/08-bayesian-mmm
Module 8
Yes Colab (Python runtime, CPU): passed 2026-10-16, 3.7 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 80 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 53 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 26 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/09-mmm-calibration
Module 9
Yes Colab (Python runtime, CPU): passed 2026-10-16, 10 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 2.4 min, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 2.0 min, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 89 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
r/09-robyn
Module 9
Yes Colab (R runtime, CPU): passed 2026-10-16, 3.1 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 48 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 52 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): not run
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Workshop image on an Apple Silicon laptop (linux/arm64, Docker))
python/10-budget-allocation
Module 10
Yes Colab (Python runtime, CPU): passed 2026-10-16, 2.3 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 70 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 32 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 15 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
r/11-grf-causal-forest
Module 11
Yes Colab (R runtime, CPU): passed 2026-10-16, 75 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 8 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 63 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): not run
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Workshop image on an Apple Silicon laptop (linux/arm64, Docker))
python/11-uplift-econml
Module 11
Yes Colab (Python runtime, CPU): passed 2026-10-16, 61 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 14 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 19 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 24 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/12-capstone
Module 12
Yes Colab (Python runtime, CPU): passed 2026-10-16, 4.1 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 1.8 min, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 65 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 45 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))

Optional extensions: Modules 13–18

Judged by the same rules, and never counted in the core workshop’s verdict. The release check requires them only when asked to (release_check.py --extensions).

Notebook Ready to teach Evidence
python/13-messy-real-data
Module 13
Yes Colab (Python runtime, CPU): passed 2026-10-16, 65 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 90 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 17 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 10 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/14-survival-churn
Module 14
Yes Colab (Python runtime, CPU): passed 2026-10-16, 40 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 14 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 12 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 8 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/15-double-ml
Module 15
Yes Colab (Python runtime, CPU): passed 2026-10-16, 2.3 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 52 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 49 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 4.2 min, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/16-multi-touch-attribution
Module 16
Yes Colab (Python runtime, CPU): passed 2026-10-16, 23 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 7 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 6 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 5 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/17-mmm-time-varying
Module 17
Yes Colab (Python runtime, CPU): passed 2026-10-16, 12 min
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 2.3 min, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-11, 2.5 min, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-11, 2.2 min, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-11, Apple Silicon laptop, native uv environment (not Linux))
python/18-notifications
Module 18
Yes Colab (Python runtime, CPU): passed 2026-10-16, 38 s
GitHub Actions runner in the workshop image (linux/amd64, 4 vCPU): passed 2026-10-16, 8 s, QUICK settings
Workshop image on an Apple Silicon laptop (linux/arm64, Docker): passed 2026-10-16, 14 s, before the notebook or its deps last changed
Apple Silicon laptop, native uv environment (not Linux): passed 2026-10-16, 12 s, before the notebook or its deps last changed
AWS SageMaker Studio (custom image): documented, not run
AWS EC2 (workshop image over an SSH tunnel): documented, not run
Learner mode: stopped at checkpoint 1 as designed (2026-10-16, Workshop image on an Apple Silicon laptop (linux/arm64, Docker))

How to read this page

Each evidence line is the newest worked run on that machine, from the run records in runs/. A newer failure replaces an older pass. A run is before the notebook or its deps last changed when the notebook’s code (content_sha) or the files, pins and ref it depends on (deps_sha) have changed since; it no longer counts.

Ready to teach needs a passing run on Colab, the runtime the notebook is designed for: worked (reference solutions bound), the whole notebook, full settings (not QUICK), with the current code and deps, at most 21 days older than the newest record on this page. A laptop’s, the Docker image’s or the CI runner’s time does not predict Colab’s. The AWS paths are documented, not run.

Learner mode runs the notebook with nothing written: it must stop at the first checkpoint with the message that tells a participant how to go on.

Machine Learning for Growth Marketing · Genial Labs · Built with Quarto

  • Setup

  • FAQ

  • Readiness

Text CC BY 4.0 · Code MIT