Applied Causal Inference & Decision Science
An 80-day, full-stack course that takes economists from raw data to a defensible causal estimate to a decision.
Every day is one page with a video lesson, a timed 5-hour plan, the outcomes you should reach, and the full written lesson with tested, step-by-step code. You follow one simulated retailer, NorthMart, whose true causal effects are known, so you can see exactly when a method gets the answer right and when it fails.
Video lessons by module
One video per day. Each module has ten.
How to use this site
- Pick a module tab to see what it covers, its tools and its ten days.
- Open a day to watch the video, follow the timed plan and work through the written lesson. Each day takes about five hours.
- Lessons are released module by module. Days whose notes are not written yet show their place in the plan; videos show a placeholder until published.
- Mark days complete to track your progress. It's saved in this browser.
Part I: Causal Foundations
Days 1–30Causal-Ready Data Engineering
Turning messy transactions into tested panels with treatment, timing, outcomes and pre-period covariates.
- Days 1–3Causal vocabulary, Polars cleaning, DuckDB and the customer × week panel.
- Days 4–7Ingesting API data with dlt and modelling the panel in dbt.
- Days 8–10Data contracts for leakage and treatment timing, orchestration with Prefect.
Causal Thinking, Estimands & DAGs
Stating the question precisely and making every causal assumption explicit.
- Days 11–13Potential outcomes, estimands (ATE, ATT, CATE, LATE) and randomization as the benchmark.
- Days 14–17DAGs, backdoor and frontdoor criteria, colliders and bad controls.
- Days 18–20Encoding assumptions in DoWhy and defending a DAG in writing.
Experimentation & A/B Testing
Designing, running and analysing randomized experiments well.
- Days 21–23Test design, power and sample size, stratified randomization and balance.
- Days 24–27Regression analysis, CUPED, multiple testing, peeking and sequential tests.
- Days 28–30Interference, switchback and geo experiments, and the free-shipping capstone.
Part II: Identification & Estimation
Days 31–60Selection on Observables & Instrumental Variables
Estimating effects without randomization when confounders are measured, or an instrument exists.
- Days 31–33Regression adjustment, propensity scores and matching.
- Days 34–36Inverse probability weighting, overlap and doubly robust (AIPW) estimators.
- Days 37–40Instrumental variables, 2SLS, weak instruments and LATE.
Quasi-Experiments: DiD, Synthetic Control, RDD
Evaluating rollouts and campaigns when you can't randomize.
- Days 41–44Difference-in-differences, event studies and modern staggered estimators.
- Days 45–47Synthetic control, synthetic DiD and Bayesian structural time series.
- Days 48–50Regression discontinuity and placebo tests.
Causal Machine Learning & Heterogeneity
Using machine learning to estimate effects in high dimensions and find who responds.
- Days 51–54Orthogonalization, cross-fitting and DoubleML for partially linear, interactive and IV models.
- Days 55–57Meta-learners, causal forests and validating heterogeneous effects.
- Days 58–60Price elasticities with DML and instruments, by segment and category.
Part III: Decisions & Delivery
Days 61–80Sensitivity, Robustness & Decisions
Stress-testing estimates and turning them into targeting policies and choices under uncertainty.
- Days 61–63Sensitivity to hidden confounding, robustness values, E-values, refutation tests and specification curves.
- Days 64–66Uplift modelling, policy learning and cost-benefit analysis.
- Days 67–70Decisions under uncertainty, value of information and the decision memo.
Decision Intelligence Delivery
Putting causal estimates in front of decision-makers as tools they can use.
- Days 71–73A versioned parameters file, a scenario API with FastAPI, scenario design and uncertainty for executives.
- Days 74–76The Streamlit simulator, counterfactual charts, tests, CI, a container and a smoke test.
- Days 77–80Monitoring for effect drift, when to re-run the experiment, and the final capstone defence.
Final capstone
The course ends with one full-stack causal decision project on a real or simulated decision (a price change, a policy rollout, a budget shift), defended in 15 minutes to a mock executive panel.
| Component | Technology | Deliverable |
|---|---|---|
| Data | Polars, DuckDB, dlt, dbt, Prefect | A tested, orchestrated panel with treatment, timing and pre-period covariates. |
| Identification | DAGs, DoWhy | A stated estimand and a written defence of every causal assumption. |
| Estimation | pyfixest, EconML, DoubleML, CausalPy | At least two estimation strategies, reconciled, with honest uncertainty. |
| Robustness | Sensitivity analysis, placebos | Evidence of how much hidden confounding would change the answer. |
| Decision & delivery | FastAPI, Streamlit or Next.js | A recommendation with expected value and a scenario tool, defended to a mock executive panel. |