The Receipts Test
Four questions that separate causal measurement from attribution theater. Score any vendor in two minutes. We take the same test below.
Question 1 of 4
What is your identification strategy? How do you separate causation from correlation, specifically?
What a real answer sounds like: A real answer names the confounders and the adjustment method (backdoor criterion, FWL residualization, or equivalent). Vague references to "advanced modeling" are not an identification strategy.
Question 2 of 4
What baseline is my lift measured against, and where is it stored?
What a real answer sounds like: A real answer describes a measured per-segment counterfactual that is queryable. "Industry benchmarks" and "historical averages" are not baselines. Lift is mathematically undefined without one.
Question 3 of 4
Where is the confidence interval on this number?
What a real answer sounds like: A real answer surfaces a confidence interval on every point estimate. A number without uncertainty is a decoration, not a measurement. If the UI only shows a single value, there is no real answer here.
Question 4 of 4
What does your product do when a number is NOT proven: refuse, or round up?
What a real answer sounds like: A real answer describes a designed refusal state you can screenshot. If every screen always shows a number, the product rounds up. That is the tell.
Live Demo
See the refusal live
Causal Lift
+18%
95% CI: 11% to 25%
run: fixture-run-001 / baseline: fixture-baseline-v1
This is the same pending state our production API serves. Where every other tool shows you a number, we show you the truth. Synthetic data; the rule is real.
Live Demo
Try to edit history
One changed character invalidates all history after it. Nobody can quietly edit the past, including us. This is what an audit trail is supposed to mean.
We take our own test
One factual sentence per question. These behaviors are enforced by tests, not policy.
Q1
What is our identification strategy?
Backdoor confounder adjustment with FWL residualization: we name every confounder, adjust for it explicitly, and the empty-confounder-set case is an error, not a default.
Q2
What baseline is lift measured against, and where is it stored?
A measured per-segment counterfactual stored in the decision ledger, queryable by segment and time window. Lift is mathematically undefined without one, so we refuse to compute it without one.
Q3
Where is the confidence interval on this number?
Every point estimate ships with a confidence interval. When measurement is pending, the product renders the word "pending" in words. No placeholder digits appear on any surface.
Q4
What do we do when a number is NOT proven?
We raise an exception. Every causal result is born uncitable, and exporting an unproven number is a hard error in the engine. The refusal state is not a policy request. It is enforced by tests.
All four answers are enforced by tests, not policy.
Read the manifesto and the receipts
The full argument for why credit is not causation, and how the refusal is built.
Read the Honesty Gap manifesto