Upload a CSV with an outcome, a treated or control column and a before or after column, and this tool estimates how much the change moved the treated group beyond the control group, with a confidence interval and a parallel-trends check.
We email you the report link.
Free up to 10,000 rows. Encrypted in transit.
Differencing the differences...
The analysis splits your data into the classic 2x2 (treated vs control, before vs after) and estimates the change's effect as the treated group's before-to-after movement minus the control group's, via an OLS regression whose group-by-period interaction term is exactly that difference. It reports the estimate with a 95% confidence interval and p-value, in outcome units and as a percent of the counterfactual level. When a unit column is mapped, observations are first averaged to one pre and one post value per unit, a common way to limit the serial-correlation problem that repeated measurements create for the significance test. When the period column carries dates with several pre-change periods, it also tests whether the two groups' pre-change slopes differ, the parallel-trends check.
Use it when something changed for one group but not another (a pilot, a price change, a policy) and you have the outcome measured both before and after for both groups.
Not for a single group measured before and after (use the paired comparison or event impact tool. There is no control to difference against), and not a substitute for a randomized experiment when you can run one (use the A/B test tool).
Built for: Analysts, growth and pricing teams, and researchers evaluating changes they could not randomize
Typical data source: Any spreadsheet or CSV with an outcome, a treated/control column, and a before/after indicator or date column
One row per unit per period, with the outcome, the group, and when it was measured. For example, weekly sales for pilot and comparison stores:
Minimum 12 rows · Best with 100-10,000 rows across 2+ pre and 2+ post periods
Standard-library analysis: did the change cause the difference? Map an outcome, a treated/control group column, and a pre/post period column (labels or dates), and get the classic 2x2 difference-in-differences: how much the treated group moved, how much the control group moved anyway, and the difference between those two changes with a confidence interval and p-value. When your period column carries dates with several pre-change periods, the report also draws the treated-vs-control trends and runs a parallel-trends check: the assumption the whole causal read rests on.
The four group means: treated and control, before and after. The gap between the two groups' movements is the estimate.
Both groups' outcome over time. Parallel lines before the change and a separation after it are what a real effect looks like.
The arithmetic laid bare: each group's change and the difference between the changes, with its confidence interval and p-value.
How treated and pre/post were identified, the model, the inference, and the assumptions the causal read rests on.
Plain-English reading of the results and what to do next.
Did the change cause the difference?
Map your outcome, your treated/control column, and your before/after column. You get the treated group's movement minus the control group's, the difference-in-differences, with a confidence interval, a p-value, and the effect in your outcome's own units and as a percent.
See our FAQ for pricing, privacy and how the analysis works.
MCP Analytics. Difference-in-Differences. Free tool. https://mcpanalytics.ai/free/standard_did. Accessed [date you used it].
Your turn
Bring your own data and the question you actually need answered.
MCP AnalyticsData science by email Send us your data and your question, and we will reply. ds@mcpanalytics.ai
Tell us what went wrong, in your own words. We capture the page you're on automatically, so no need to describe where you are.