{
  "slug": "econml",
  "name": "EconML",
  "aliases": ["ALICE (Automated Learning and Intelligence for Causation and Economics)"],
  "vendor": { "name": "PyWhy (originally Microsoft Research)", "slug": "pywhy", "website": "https://www.pywhy.org" },
  "homepage_url": "https://www.pywhy.org/EconML/",
  "docs_url": "https://www.pywhy.org/EconML/",
  "repo_url": "https://github.com/py-why/EconML",
  "license_url": "https://github.com/py-why/EconML/blob/main/LICENSE",
  "product_type": "library",
  "product_status": "active",
  "summary": "Python library for heterogeneous treatment-effect estimation with machine learning: double ML, doubly robust learners, causal forests, meta-learners, IV and policy learning",
  "description": "EconML is a Python library for estimating conditional average treatment effects (CATE) with machine learning, created by Microsoft Research's ALICE project and now maintained in the PyWhy organization under the MIT license. It implements double/debiased machine learning (LinearDML, SparseLinearDML, CausalForestDML, NonParamDML, KernelDML), doubly robust learners, meta-learners (S, T, X and domain adaptation), orthogonal random forests, instrumental-variable estimators (OrthoIV, DMLIV, DRIV variants), dynamic DML for panels, policy trees and forests, and generalized random forests, with inference via bootstrap or asymptotic methods, SHAP-based interpretation, tree-based CATE interpreters, validation scorers and DoWhy refutation tests.\n\nEstimators follow scikit-learn conventions and accept scikit-learn models as nuisance learners, so a typical workflow fits an EconML estimator on observational data, inspects heterogeneity with interpreters and checks robustness through the DoWhy wrapper. Version 0.17.0 is current at the time of writing. The library assumes unconfoundedness or valid instruments like any causal method, requires reasonably large samples for ML nuisance estimation, and does not implement classic panel or event-study estimators, which remain the domain of linearmodels, fixest or Stata.",
  "capabilities": ["Double/debiased machine learning estimators", "Doubly robust and meta-learners", "Causal and orthogonal random forests", "Instrumental-variable estimators (DRIV, DMLIV, OrthoIV)", "Policy learning trees and forests", "Dynamic DML for panel data", "SHAP and tree-based CATE interpretation", "Validation scorers and DoWhy refutation integration"],
  "workflows": ["Heterogeneous effect of a pricing change by customer segment", "Treatment-effect estimation with high-dimensional controls", "Policy learning for targeted interventions"],
  "advantages": ["MIT licence and scikit-learn compatible API", "Broad coverage of modern causal-ML estimators", "Integrated inference and interpretation tools"],
  "limitations": ["Requires identification assumptions the library cannot verify", "ML nuisance estimation needs sizeable samples", "No classic panel or difference-in-differences estimators"],
  "prerequisites": ["Python with scikit-learn, NumPy and pandas"],
  "audiences": ["Applied economists using causal ML", "Data scientists estimating treatment heterogeneity"],
  "alternatives": ["dowhy", "statsmodels", "scikit-learn", "fixest"],
  "comparison_notes": "DoWhy frames identification and refutation and can call EconML for estimation; statsmodels and fixest provide classical regression-based causal designs; scikit-learn supplies the predictive learners EconML wraps.",
  "categories": [{ "slug": "econometrics-causal-inference", "primary": true }],
  "tags": ["python", "causal-inference", "machine-learning", "open-source"],
  "use_cases": ["estimate-causal-effects"],
  "operating_systems": ["macos", "linux", "windows"],
  "execution_modes": ["local"],
  "interfaces": ["library"],
  "deployment_models": ["embedded"],
  "integrations": ["scikit-learn", "DoWhy", "SHAP", "pandas"],
  "data_formats": ["NumPy arrays", "pandas DataFrame"],
  "languages": ["Python"],
  "source_model": "open-source",
  "license_spdx": "MIT",
  "pricing_model": ["free", "open-source"],
  "self_hostable": true,
  "sources": [
    { "url": "https://www.pywhy.org/EconML/", "type": "official_site", "title": "Welcome to econml's documentation! — econml 0.17.0", "supports": ["name", "summary", "capabilities"], "checked_at": "2026-11-02" },
    { "url": "https://github.com/py-why/EconML", "type": "repository", "title": "py-why/EconML", "supports": ["repo_url", "vendor"], "checked_at": "2026-11-02" },
    { "url": "https://github.com/py-why/EconML/blob/main/LICENSE", "type": "license_page", "title": "EconML LICENSE", "supports": ["license_spdx", "source_model"], "checked_at": "2026-11-02" }
  ],
  "confidence": "high",
  "uncertainty_note": "Documentation header showed 0.16.0 while PyPI lists 0.17.0 on the check date.",
  "discovery_method": "editorial-research",
  "depth": "standard",
  "editorial_status": "reviewed",
  "visibility": "public",
  "featured": false,
  "author": "batch-E"
}
