Free — no account required

Did the Change Cause the Difference? Difference-in-Differences

Upload a CSV, map your outcome, your treated/control column, and your before/after column — and get the treated group's movement minus the control group's, with a confidence interval, p-value, and a parallel-trends check. Free.

24,000+ analyses run
Encrypted & deleted in 7 days
PDF & citation included

Free analyses run on up to 10,000 rows. Larger files are randomly sampled to that size — sign up to analyze your full dataset.

📊
-
Rows
-
Columns
-
Numeric

Running difference-in-differences analysis...

Differencing the differences...

Your report is ready

Sent to — the 2x2 group means, treated-vs-control trends, the DiD estimate with confidence interval and p-value, the parallel-trends check, R code, and AI insights.

Analyze another file
Sample Output

Every report includes interactive charts, tables, and AI insights

Upload your data to get your own report

View all case studies See all free tools

How it works

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, which guards the significance test against serial correlation. 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

E-commerceRetailMarketingPublic PolicyProductFinance

What data do you need?

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:

store_id (text) month (date) store_group (categorical) weekly_sales (numeric)
S001 2024-05-01 Pilot 212.4
S002 2024-06-01 Comparison 198.7
S003 2024-07-01 Pilot 241.9

Minimum 12 rows · Best with 100-10,000 rows across 2+ pre and 2+ post periods

What's in the report?

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 2x2: Group Means Before and After

The four group means — treated and control, before and after. The gap between the two groups' movements is the estimate.

📈

Treated vs Control Over Time

Both groups' outcome over time. Parallel lines before the change and a separation after it are what a real effect looks like.

📋

The Difference-in-Differences Estimate

The arithmetic laid bare: each group's change and the difference between the changes, with its confidence interval and p-value.

📋

Method & Assumptions

How treated and pre/post were identified, the model, the inference, and the assumptions the causal read rests on.

🤖

AI Insights

Plain-English interpretation — what the numbers mean, what's significant, and what to do next.

The Question This Answers

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.

Questions?

See our FAQ for details on pricing, data privacy, and how the analysis works. Every report includes a Methodology section showing the statistical test, assumptions checked, and diagnostics run.

Your data has more stories to tell

Run any analysis on your own data — validated R analyses, interactive reports, AI insights, and PDF export.

Try Free — No Credit Card
Powered by MCP Analytics