Reviews, tutorials, and practical guides to causal inference tools and frameworks, including open-source libraries, experimentation platforms, and applied workflows.

The causalml Package in Python: Uplift Modeling and CATE Meta-Learners

The causalml Package in Python: Uplift Modeling and CATE Meta-Learners

Read more →
The gsynth Package in R: Generalized Synthetic Control with Interactive Fixed Effects

The gsynth Package in R: Generalized Synthetic Control with Interactive Fixed Effects

Read more →
The npcausal Package in R: Nonparametric Dose-Response Estimation for Continuous Treatments

The npcausal Package in R: Nonparametric Dose-Response Estimation for Continuous Treatments

Read more →
rdrobust for Regression Kink Design: Estimating Slope Discontinuities with deriv=1

rdrobust for Regression Kink Design: Estimating Slope Discontinuities with deriv=1

Read more →
Tigramite in Python: PCMCI for Causal Discovery in Time Series

Tigramite in Python: PCMCI for Causal Discovery in Time Series

Read more →
The bdid Package: Bayesian Difference-in-Differences for Staggered Treatments

The bdid Package: Bayesian Difference-in-Differences for Staggered Treatments

Read more →
The ivmte Package in R: Marginal Treatment Effects and Bounding Policy-Relevant Parameters

The ivmte Package in R: Marginal Treatment Effects and Bounding Policy-Relevant Parameters

Read more →
The contdid Package in R: Estimating Dose-Response Functions with Continuous Treatments

The contdid Package in R: Estimating Dose-Response Functions with Continuous Treatments

Read more →
CausalPy in Python: Bayesian Quasi-Experimental Causal Inference

CausalPy in Python: Bayesian Quasi-Experimental Causal Inference

Read more →
dagitty and ggdag in R: Drawing and Querying Causal Graphs

dagitty and ggdag in R: Drawing and Querying Causal Graphs

Read more →
The drdid Package in R: Doubly Robust Difference-in-Differences

The drdid Package in R: Doubly Robust Difference-in-Differences

Read more →
The Synth Package in R: Implementing the Original Abadie Synthetic Control

The Synth Package in R: Implementing the Original Abadie Synthetic Control

Read more →
The staggered Package in R: Efficient DiD Under Staggered Adoption

The staggered Package in R: Efficient DiD Under Staggered Adoption

Read more →
lpirfs in R: Estimating Impulse Responses with Local Projections

lpirfs in R: Estimating Impulse Responses with Local Projections

Read more →
Microsoft's EconML: Causal Machine Learning in Python

Microsoft's EconML: Causal Machine Learning in Python

Read more →
The bacondecomp Package in R: Visualising theGoodman-Bacon Decomposition

The bacondecomp Package in R: Visualising theGoodman-Bacon Decomposition

Read more →
The HonestDiD Package in R: Sensitivity Analysis for Difference-in-Differences

The HonestDiD Package in R: Sensitivity Analysis for Difference-in-Differences

Read more →
synthdid in R: Implementing Synthetic Difference-in-Differences

synthdid in R: Implementing Synthetic Difference-in-Differences

Read more →
Double Machine Learning in Practice: The DoubleML Package (R and Python)

Double Machine Learning in Practice: The DoubleML Package (R and Python)

Read more →
Causal Forests in R: The grf Package

Causal Forests in R: The grf Package

Read more →
The `augsynth` Package in R: Synthetic Control and ASCM

The `augsynth` Package in R: Synthetic Control and ASCM

Read more →
The `did` Package in R: A Complete Workflow

The `did` Package in R: A Complete Workflow

Read more →
fixest in R: Fast Fixed Effects, Event Studies, and Sun–Abraham DiD

fixest in R: Fast Fixed Effects, Event Studies, and Sun–Abraham DiD

Read more →
rdrobust in R: Optimal Bandwidth and Robust Inference for RDD

rdrobust in R: Optimal Bandwidth and Robust Inference for RDD

Read more →