Not every customer is worth targeting. This finds the ones who are.
To stop treating average A/B test results as if they apply to everyone.

What it does
CausalML is a Python package that estimates the Conditional Average Treatment Effect (CATE)—essentially, how an intervention T changes an outcome Y for a specific user with features X. It bundles uplift modeling and causal inference methods behind a standard interface, accepting both experimental (A/B) and observational data without demanding rigid assumptions about model form. Uber built it to solve practical targeting problems: figuring out which customers an ad will actually persuade, or which up-sell offer fits a specific user.
The interesting bit
The library straddles two worlds that usually ignore each other: recent ML research (meta-learners, causal trees, neural networks) and industrial operations research (cost optimization across multiple treatments). It is explicitly incubated for long-term support, which is rare for open-source tooling born inside a ride-hailing company’s ad-tech stack.
Key highlights
- Estimates heterogeneous treatment effects at the individual level rather than population averages.
- Handles both randomized experiments and observational data where randomization was impossible.
- Implements a broad catalog of recent methods drawn from the cited literature, including meta-learners, causal trees, and doubly robust estimators.
- Supports multiple treatment options and cost optimization, based on the authors’ own published research.
- Backed by an active research community with dedicated KDD workshops and an arXiv whitepaper.
Caveats
- APIs for newer experimental methods are subject to change, even though the project is labeled stable and incubated.
Verdict
Worth a look if you run A/B tests but suspect your average lift is driven by users who would have converted anyway. Less useful if your problem is purely associative prediction rather than causal attribution.
Frequently asked
- What is uber/causalml?
- To stop treating average A/B test results as if they apply to everyone.
- Is causalml open source?
- Yes — uber/causalml is an open-source project tracked on heatdrop.
- What language is causalml written in?
- uber/causalml is primarily written in Python.
- How popular is causalml?
- uber/causalml has 5.9k stars on GitHub.
- Where can I find causalml?
- uber/causalml is on GitHub at https://github.com/uber/causalml.