ShowWhy
December 17, 2025 ยท View on GitHub
This repository is the result of research efforts that are no longer active. It has been marked read-only on GitHub to preserve the public code, but is no longer maintained or accepting contributions.
ShowWhy
:warning: Currently we have an ongoing problem with one of our dependencies when building Showwhy from scratch. Feel free to use the Deploy to Azure button.
ShowWhy is a suite of no-code interfaces for performing data analysis using causal ML techniques and libraries. Currently, ShowWhy consists of four primary user-interfaces:
Data-Wrangling
The data-wrangling application allows users to clean, transform, and prepare data for analysis. Data tables created in the wrangling app can be used in other views within the application.
Exposure Analysis
This interface, formerly known as ShowWhy, allows users to define and test hypotheses around causal links within data in order to validate their prior assumptions. For example, a user may have some prior domain knowledge that "co2 emissions cause global warming" or "smoking causes cancer". This interface will verify these causal claims using the dowhy suite of refuters and estimators, and will help the user to understand the results of these analyses.

Event Analysis
The event analysis interface allows users to use time-series observational data containing treated and untreated units to detect whether treatments had a net effect on outcomes. This interface uses the Synthetic Differences-in-Differences technique for analysis.

Causal Discovery
This interface allows users to inspect variable relationships within data, and to perform causal discovery using a variety of techniques such as Causica, NOTEARS and DirectLiNGAM.

Getting Started
Note: At the moment, ShowWhy does not work with Apple Mxx processors in local mode.
To run the application locally, ensure that you have Docker installed and running on your machine. You can find instructions for installing Docker here.
Open up a terminal application, and using the command-line interface (CLI) run the following command:
docker compose --profile all up
For developers wishing to contribute to the project, refer to DEVELOPING.md for instructions on getting started.
Deployment
Check the deployment documentation for instructions on how to deploy to deploy ShowWhy to Azure AKS (either via one-click or manually), and how to deploy ShowWhy into a local Kubernetes instance.
Contribute
We welcome contributions to the application. All submissions must pass the CLABot verification.