The helpful action that prediction tells us to stop
A service team studies whether proactive support prevents customers from missing a critical deadline. Its historical data contain a disturbing pattern. Customers who received support were more likely to miss the deadline than customers who did not. A well-calibrated predictor reproduces the pattern: the feature support_contacted = true raises predicted failure risk by about five percentage points.
The first deployment proposal is efficient and plausible. Remove low-value contact from cases where the model says it is associated with worse outcomes. The proposal passes ordinary predictive checks. Its held-out discrimination is strong, the feature effect is stable across folds, and the predicted group means match the historical record.
Yet the action is beneficial. Staff had historically contacted difficult cases: 80 per cent of high-risk cases and only 20 per cent of low-risk cases. Within each risk group, contact reduced failure. Pooled across the selected groups, contacted customers still did worse because the contact group contained many more difficult cases. In the synthetic population used throughout this article, the observed difference is 5.1 percentage points of apparent harm, while the intervention reduces failure by 13 percentage points.
The predictor learned an outcome under the old assignment process. Deployment proposed a new assignment process. The relationship could not authorise the action because the policy would change the very mechanism that made the relationship predictive.
This is the narrow question of the paper: when may a predictive model become a decision instrument? The answer is not “whenever accuracy is high” and not “only after discovering the complete causal graph”. It is more operational. Name the intervention, state how historical actions were selected, identify the effect under explicit assumptions, test the estimate against rival explanations, then verify the outcome under the released policy.
A prediction records a choice
A predictor answers a conditional question. Given features observed under some data-generating regime, what outcome is likely? Let X be the features and Y the outcome. A score such as P(Y = 1 | X = x) can be excellent for prioritising inspection, forecasting demand or detecting change. Its success requires the future prediction setting to preserve enough of the relationship learned from the past.
An action question is different. Let T be a treatment, policy or system action. We now want to compare outcomes if T were deliberately set to one value rather than another. Structural causal models write this as P(Y | do(T = t)). The do notation means that the ordinary causes of T are replaced by a specified assignment. Potential-outcome notation expresses the same target as a contrast between Y(1) and Y(0), the outcomes a unit would have under the two treatment states. These formalisms differ in emphasis, but both force the analyst to specify a counterfactual contrast rather than read it from association alone.12
Δcausal = E[Y(1) − Y(0)] T is the action, Y is the outcome, and E denotes an average over the target population. The observed contrast compares groups selected by the historical process. The causal contrast compares alternative assignments for the same target population.
The two quantities coincide only when the treated and untreated groups are exchangeable for the causal question, either by design or under defensible assumptions. In the opening case, underlying risk affects both support assignment and deadline failure. Conditioning on contact therefore retains a path from contact backwards through risk and forwards to failure. Setting contact externally removes the historical assignment path while preserving the path from contact to outcome.
Thought experiment 1 · The warning lamp
A machine’s red lamp predicts bearing failure with near-perfect accuracy. The lamp is fed by a vibration sensor; it does not heat or load the bearing. An optimiser trained only on outcomes finds that “lamp on” is the strongest feature and recommends keeping the lamp off. The model has discovered a superb indicator and an absurd intervention.
Vary one causal feature. In World A, the lamp remains a passive display. Turning it off changes visibility but not the bearing. In World B, the same electrical line drives both lamp and emergency lubrication. Turning the line off now raises failure. The observed table can be identical before intervention. Predictive sufficiency leaves the action mechanism underdetermined.
World A · direct effect
Treatment changes outcome. Setting T tests the visible path.
World B · common cause
Risk selects treatment and raises the outcome. Setting T can expose no effect or the opposite effect.
World C · reverse path
The outcome process triggers a later treatment record. Acting on the record cannot change the earlier cause.
The assignment mechanism is part of the data
Machine-learning datasets often present treatment as another feature column. That representation hides how the value arrived. A clinician chose it, a queue threshold fired, a customer self-selected, a policy excluded ineligible cases, or an earlier model routed the case. This assignment process is not background decoration. It determines which potential outcomes become observable and which comparisons are credible.
In a graph, an intervention on T is represented by cutting incoming arrows to T and installing an external setter. It does not mean filtering records where T happened to equal the desired value. A customer who historically received support is evidence about the joint process “risk influenced support, then support and risk influenced outcome”. A customer assigned support by a random setter is evidence about a different process.
What prediction still earns
None of this demotes prediction. Baseline-risk models can define useful strata, improve precision, reveal heterogeneity worth testing, detect drift and allocate scarce measurement. Propensity models estimate how historical actions were assigned. Outcome models can serve as nuisance components inside doubly robust estimators. A predictor can therefore contribute materially to causal analysis without its feature coefficients becoming causal claims.
The distinction is about licence. A high-risk score may justify collecting more evidence or offering a choice when those actions are low consequence and independently governed. It does not establish that decreasing the score’s inputs will decrease risk. Some inputs are immutable causes, some are proxies, some are consequences, and some exist only because an earlier policy measured them. Feature attribution explains the predictor’s local dependence on its inputs. It does not, without a causal bridge, explain what changing the world would do.
This creates a useful division of labour. Prediction asks where the outcome is likely under the current regime. Causal inference asks which specified change would alter it. Decision theory asks whether the expected alteration is worth its cost and risk. A mature system preserves all three questions instead of forcing one score to answer them.
Worked example 1 · A reversal you can audit by hand
Consider 100,000 synthetic cases. Thirty per cent are high risk and 70 per cent low risk. Historical staff contact 80 per cent of high-risk cases and 20 per cent of low-risk cases. Among low-risk cases, failure is 20 per cent without support and 10 per cent with it. Among high-risk cases, failure is 60 per cent without support and 40 per cent with it.
| Risk stratum | Population share | Contact rate | Failure without contact | Failure with contact | Within-stratum effect |
|---|---|---|---|---|---|
| Low risk | 70% | 20% | 20% | 10% | −10 percentage points |
| High risk | 30% | 80% | 60% | 40% | −20 percentage points |
Contact helps in both strata. The population average treatment effect is 0.7 × (−0.10) + 0.3 × (−0.20) = −0.13. Yet contacted cases fail at 28.9 per cent and uncontacted cases at 23.9 per cent. The pooled observational contrast is therefore about +5.1 points. The sign reverses because risk changes both contact assignment and failure.
If risk blocks every common-cause path from contact to outcome, the back-door adjustment is:
This formula is not a ritual instruction to control for every available column. It is valid because a causal story says risk is a pre-treatment common cause and is sufficiently measured. If contact changes a later variable and that variable helps transmit the benefit, controlling for it would erase part of the effect. If two causes both feed a selection variable, conditioning on that collider can create an association that did not exist. Graphical criteria make these distinctions explicit.4
Identification before estimation
Teams often start with an estimator: matching, inverse-propensity weighting, a causal forest, double machine learning, or a library function named estimate_effect. The order should be reversed. Identification asks whether the desired causal quantity is recoverable from the available design and assumptions. Estimation asks how accurately to compute an identified expression from finite, noisy data.
A crisp estimand for the running case might be: among cases eligible for proactive support, what is the 14-day average effect on missed-deadline probability of assigning one defined contact protocol rather than no contact? This sentence fixes the target population, two treatment versions, outcome, horizon and aggregation. “Does support work?” leaves each of them open.
For the simple average treatment effect, four assumptions carry most of the burden. Consistency requires the recorded treatment to correspond to the treatment named in the estimand. Exchangeability requires no unblocked common causes of assignment and outcome after conditioning on the selected covariates. Positivity requires each relevant covariate stratum to have a non-zero chance of each treatment. A no-interference assumption says one unit’s treatment does not alter another unit’s outcome, unless the estimand explicitly models that interaction. Hernán and Robins develop these conditions as part of the design of causal questions, not as estimator settings.3
Write the trial you wish had been run
A practical way to expose ambiguity is to specify the target trial before touching the observational table. Write the eligibility rules, treatment strategies, assignment time, follow-up start, outcome window, causal contrast and analysis. Then map each field to available data. The exercise does not turn observational records into a randomised trial. It reveals where the record fails to represent the desired experiment.
Timing is often the decisive defect. A treatment label may be recorded after risk has already evolved. Eligibility may be assessed using information that became available only after treatment. Cases that must survive long enough to enter a treated group receive an artificial advantage. A before-and-after comparison may combine the intervention with seasonality, staffing changes or a new measurement system. These are not tuning issues. They alter who is compared and which counterfactual is being estimated.
For the support example, time zero is the moment an eligible case first becomes assignable. Both strategies must be feasible at that moment. Follow-up begins immediately for both groups, even if contact is delivered later. Cases are analysed according to the specified assignment contrast, while treatment receipt is recorded separately. Emulating the trial disciplines the observational analysis by making every mismatch visible.
Confounder · usually block
R → Y
T → Y
R opens a back-door path between treatment and outcome. Adjustment can recover the specified total effect when R is measured before treatment.
Mediator · do not erase blindly
M carries part of the treatment effect. Controlling for M changes the question from total effect to a direct or path-specific effect.
Collider · usually leave closed
Selection S is caused by both sides. Conditioning on S can manufacture dependence between T and Y.
Randomisation is a design, not a magic word
Random assignment can make treatment independent of pre-treatment causes in expectation. In the synthetic support example, assigning contact with probability 0.5 in both risk groups makes the unadjusted difference converge to the −13-point causal effect. This is the article’s negative control: when selection no longer differs by risk, the predictive group contrast and the intervention contrast align.
Randomisation does not rescue an ill-defined treatment. “Contact” may mean a reminder text, a 20-minute call, a promise of assistance, or an action bundled with priority processing. Non-compliance changes the effect of assignment into something different from the effect of receipt. Spillovers violate unit independence. Attrition can recreate selection after randomisation. A sound trial protects assignment, but the causal claim still needs a treatment contract, outcome measurement and analysis plan.
Observational studies can identify effects under strong, inspectable conditions. Quasi-experiments exploit thresholds, instruments, policy changes or temporal discontinuities. Longitudinal methods handle time-varying treatment and confounding. The decisive point is that the study contains an identification argument. Randomisation is often the clearest such argument, not the only possible one.2
A powerful learner cannot infer a missing counterfactual
Suppose every high-risk case historically receives support and every low-risk case does not. The dataset has no untreated high-risk cases and no treated low-risk cases. A flexible neural network can fit observed outcomes perfectly, but it cannot learn the missing within-stratum contrasts from those data. Extrapolation will produce numbers because software must return something. The numbers are supported by model shape, priors or external knowledge, not by overlap in the observed sample.
Modern causal machine learning is valuable after this boundary is respected. Double or debiased machine learning uses flexible learners for nuisance functions, then combines orthogonal scores and cross-fitting to reduce regularisation bias in target-parameter estimation. Causal forests estimate treatment-effect heterogeneity while preserving inferential structure under their assumptions. Neither method identifies a causal effect merely by being sophisticated.89
The practical sequence used by DoWhy is useful precisely because it keeps these stages apart: model assumptions, identify the estimand, estimate it, then attempt to refute the result with robustness tests.10 Refutation cannot prove that hidden confounding is absent. It can expose estimates that are fragile to placebo treatments, random common causes, subsets or alternative specifications.
flowchart LR A["The helpful action that<br/>prediction tells us to stop"] --> B["A prediction records a choice"] B --> C["Identification before estimation"] C --> D["Robustness is evidence, not<br/>licence"] D -. "re-test" .-> A classDef first fill:#0a1424,stroke:#7B4CD8,stroke-width:2px,color:#e6f3ff classDef step fill:#0a1424,stroke:#3f7da0,stroke-width:1px,color:#e6f3ff class A first class B,C,D step
Robustness is evidence, not licence
A tempting reply is that causal machinery can be replaced by robust prediction. Train across many environments, retain only features whose relationships persist, and prefer models that survive distribution shift. This programme contains an important causal intuition. Peters, Bühlmann and Meinshausen showed that predictions based on causal parents are generally expected to remain valid across interventions and environments under stated structural assumptions, while non-causal predictors can fail when their inputs are manipulated.5
But invariance is evidence about a candidate mechanism, not a universal permission to act. Several non-causal relationships may remain stable across the environments sampled. A causal relationship can appear unstable if the treatment version, measurement process or effect modifiers change. Practical invariant-risk objectives can miss natural invariances, learn suboptimal predictors or become fragile under sampling, as negative analyses of IRM demonstrate.67
Thought experiment 2 · The perfect queue proxy
Across four regions, a bank’s manual escalation flag perfectly predicts subsequent loss. Each region uses the same hidden policy: difficult cases receive the flag. A domain-generalisation system correctly discovers that the flag-outcome relationship is invariant. It then recommends setting the flag to zero to reduce losses.
Vary one feature: in the fifth region, randomise the flag while keeping case risk unchanged. Predictive accuracy collapses and losses do not fall. The invariant feature was a stable record of selection, not a controllable cause. More environments helped only because the relevant assignment mechanism eventually varied.
Observation alone often leaves several graphs alive
Conditional independences can rule out causal structures, but observational data frequently identify only an equivalence class of graphs. Direction may require temporal knowledge, interventions, functional assumptions, non-Gaussian noise or external evidence. Causal discovery is therefore a proposal generator whose outputs inherit the assumptions of its search space and tests. It should not be treated as a machine that converts a dataset into ground-truth arrows.
The competing position matters here. A decision-theoretic or potential-outcome analysis may avoid claiming a complete structural graph and focus on a narrowly defined treatment contrast. A structural model may expose transport, mediation and policy counterfactuals more directly. The article does not require allegiance to one formal school. It requires that the data regime, counterfactual question and identifying assumptions be explicit enough to fail.
When prediction is exactly the right tool
Causal analysis is unnecessary for many valuable decisions. If the system only forecasts tomorrow’s workload and does not manipulate the predictors, a stable conditional model may be sufficient. If a policy has already been randomised in the target population and the operational action exactly matches the trial treatment, the difference in outcomes may estimate the effect without an elaborate adjustment model. If the cost of an action is tiny, reversible and measured through rapid feedback, an online experiment may dominate retrospective causal modelling.
This counterexample sets a useful boundary. Causation is required when the decision depends on changing the world, not whenever a model supports any decision. Forecasting can inform staffing without claiming that weather alerts cause demand. Classification can prioritise human review without claiming that the score changes the underlying case. The mistake begins when a variable that predicts an outcome is treated as an action whose modification is expected to produce that outcome.
An effect has an address
A causal estimate belongs to a population, treatment version, comparator, outcome definition, horizon and operating context. Moving it to another population is a transport claim. Bareinboim and Pearl formalise how experiments and observational data from heterogeneous sources can be combined under assumptions represented in causal structures.11 In production terms, a validated effect under a staff-assigned workflow may not transport to model-triggered contact, a different channel, constrained capacity or a customer population that has adapted to the intervention.
Transport is not a final paperwork step. It can reverse the architecture decision. A treatment may help high-risk cases and waste attention on low-risk cases. A model may accurately estimate heterogeneous effects but deploy into a queue with insufficient capacity, causing delayed support for everyone. The policy effect then includes congestion created by the policy itself.
Release an intervention, not a score
The production failure is rarely a single statistical error. It is a chain in which a predictive score silently acquires authority. The model proposes that contacted cases have higher risk. A workflow interprets the proposal as “contact is harmful”. A policy suppresses contact. The released system changes assignment, world state and later training data. No component records that the deployed action differs from the historical variable whose coefficient motivated it.
A governed causal decision separates ten objects that compound systems often blur:
| Object | Production question | Evidence required before action |
|---|---|---|
| Intent | Which business outcome is being changed? | Named target, comparator and acceptable trade-off. |
| Identity | Who requested, proposed and approved the change? | Bound actors and accountable owner. |
| World state | What is true now about eligibility, capacity and prior action? | Fresh authoritative read, not a remembered narrative. |
| Context | Which evidence applies to this case and treatment version? | Provenance, time and population fit. |
| Reasoning | What estimand and identification argument support the proposal? | Graph or design, assumptions, estimate and uncertainty. |
| Authority | May this system assign the treatment? | Permission, purpose and consequence limit. |
| Action | What exactly will be set? | Typed treatment contract and idempotent execution. |
| Evidence | What justified this release and case-level choice? | Decision receipt with versions and exclusions. |
| Outcome | Did the action occur and did the target move? | Effect receipt, readback and outcome measurement. |
| Release and recovery | When must rollout stop or revert? | Canary limits, guard metrics and compensation path. |
The causal model proposal belongs inside this chain; it is not the chain. A score can estimate baseline risk, treatment effect, expected utility or uncertainty. The deterministic authority kernel still decides whether the action is permitted, fresh and within release bounds. The outcome observer then measures what actually happened. A causal estimate without effect verification remains a hypothesis about a released system.
Worked example 2 · A production-shaped support release
Suppose the team now wants to automate support assignment. It defines treatment as a specific call protocol delivered within two hours by a trained service queue. The comparator is ordinary digital reminders. The target is eligible customers not already in a hardship or complaints pathway. The primary outcome is a missed deadline within 14 days; guard outcomes include complaints, repeat contact and queue delay.
Historical analysis suggests a −13-point average effect after risk adjustment. The team records why it believes the measured risk variables block relevant common-cause paths. It tests overlap and finds that some extreme-risk cases were always contacted. Rather than extrapolate, it excludes that region from automated policy and routes it to human review. This changes the claim from “support works for everyone” to “the effect is identified for the overlap population”.
The release uses a randomised canary within the eligible overlap population. Ten per cent of cases receive policy-assigned contact, ten per cent receive the comparator, and the rest stay on the existing human process. The action service binds the assignment to customer, purpose, protocol version and outcome window. If a request times out, a readback checks whether a contact task was created before retrying, preventing duplicate calls.
After assignment, the system records an effect receipt: task created, accepted, attempted and completed. Outcome measurement remains independent of the model that recommended contact. Guard thresholds stop expansion if queue delay, complaints or missed-deadline risk cross their limits. The next model version trains on data labelled by assignment policy, so historical staff selection and randomised policy assignment are not pooled as though they were one treatment regime.
This architecture does more than improve estimation. It preserves the difference between a model proposal and a world-changing action. It also makes unknown outcome a causal problem: if the system cannot tell whether contact occurred, it cannot interpret subsequent outcomes as treated or untreated without bias.
An average effect is not yet a case policy
The average benefit does not prove that every eligible customer benefits, nor does it reveal each person’s unobservable individual effect. A policy must decide who receives treatment under uncertainty. It may use estimated conditional effects, baseline risk, treatment cost, capacity and asymmetric harm. The resulting object is a policy, not a list of personalised causal facts.
A treatment-effect model can rank cases correctly yet produce a poor policy if it ignores queue congestion. Conversely, a coarse rule can have higher policy value when its eligible region has strong overlap and reliable execution. Offline policy evaluation also inherits the historical assignment problem: if the proposed policy chooses actions rarely or never observed for some cases, its value estimate depends on extrapolation.
This is why the release card asks whether the deployment setter lies inside the evidence claim. The relevant benchmark is not whether a treatment-effect model beats a predictive model on a proxy metric. It is whether the complete policy improves verified outcomes against a defined baseline while respecting authority, capacity and recovery limits.
The assignment-substitution audit
The audit below is an operational release instrument, not a new identification theorem. Its original contribution is to make one comparison unavoidable: the process that assigned actions in the evidence versus the process that will assign them after release.
Prediction-to-action release card
- Name the intervention. Specify the setter, treatment version, comparator, timing and what remains unchanged.
- Reconstruct historical assignment. Record who or what selected T, using which information, thresholds, constraints and exclusions.
- Describe deployment assignment. State how the new policy changes selection, capacity, feedback and future data.
- Fix the estimand. Name population, outcome, horizon, aggregation and whether the target is assignment, receipt, total effect or a path-specific effect.
- Expose identification assumptions. Declare common causes, mediators, colliders, interference, treatment consistency and transport conditions.
- Test support. Inspect overlap, missing treatment cells, measurement quality and regions that require abstention rather than extrapolation.
- Challenge the estimate. Use a randomised or quasi-experimental check where feasible, negative controls, sensitivity analysis, alternative specifications and pre-registered stop conditions.
- Bind action to evidence. Preserve identity, authority, policy version, treatment receipt, readback, outcome and rollback in a decision receipt.
The card changes an architecture review. A model card can establish predictive performance. An assignment-substitution card establishes whether the proposed action is the action studied, whether the target population is supported, and whether the released system can create operating evidence. Both may be necessary. They answer different questions.
| Strong overlap | Thin overlap | No overlap | |
|---|---|---|---|
| Low hidden-confounding risk | Estimate cautiously. Design and measured common causes support adjustment. |
Restrict or regularise. Report the supported population and large uncertainty. |
Do not identify from these data. Experiment or obtain external evidence. |
| Material hidden-confounding risk | Triangulate. Use sensitivity analysis, instruments, natural experiments or a trial. |
High fragility. Both extrapolation and unmeasured selection threaten the result. |
Stop. A precise model output would be assumption-driven. |
| Interference or policy feedback | Change the estimand. Model clusters, capacity and policy-level effects. |
Simulate and experiment. Individual treatment effects may not compose into policy effects. |
Redesign the evidence. The unit-level table does not contain the policy contrast. |
Causal playground: change assignment, keep outcomes fixed
Run the synthetic support experiment in the browser. The outcome mechanism stays fixed while the assignment regime changes. “Observational” makes high-risk cases more likely to receive support. “Randomised” assigns support equally. “No overlap” makes the causal contrast unidentifiable from observed cells.
Show the equivalent runnable Python and expected output
import random
OUTCOME = {
(0, 0): 0.20, # low risk, no support
(0, 1): 0.10, # low risk, support
(1, 0): 0.60, # high risk, no support
(1, 1): 0.40, # high risk, support
}
def simulate(n=200_000, assignment="observational", seed=30):
rng = random.Random(seed)
rows = []
for _ in range(n):
risk = int(rng.random() < 0.30)
if assignment == "observational":
p_treat = 0.80 if risk else 0.20
elif assignment == "randomised":
p_treat = 0.50
elif assignment == "no_overlap":
p_treat = 1.0 if risk else 0.0
else:
raise ValueError("unknown assignment regime")
treated = int(rng.random() < p_treat)
failed = int(rng.random() < OUTCOME[(risk, treated)])
rows.append((risk, treated, failed))
return rows
def mean(values):
return sum(values) / len(values)
def effects(rows):
treated = [y for _, t, y in rows if t == 1]
untreated = [y for _, t, y in rows if t == 0]
naive = mean(treated) - mean(untreated)
adjusted = 0.0
for risk in (0, 1):
y1 = [y for r, t, y in rows if r == risk and t == 1]
y0 = [y for r, t, y in rows if r == risk and t == 0]
if not y1 or not y0:
raise ValueError("effect not identified: missing treatment overlap")
weight = sum(r == risk for r, _, _ in rows) / len(rows)
adjusted += weight * (mean(y1) - mean(y0))
return naive, adjusted
obs_naive, obs_adjusted = effects(simulate())
rnd_naive, rnd_adjusted = effects(simulate(assignment="randomised"))
assert obs_naive > 0.0 # misleading observational sign
assert obs_adjusted < -0.10 # adjusted benefit
assert abs(rnd_naive + 0.13) < 0.01 # randomised negative control
print(f"observational: naive={obs_naive:+.3f}, adjusted={obs_adjusted:+.3f}")
print(f"randomised: naive={rnd_naive:+.3f}, adjusted={rnd_adjusted:+.3f}")
try:
effects(simulate(assignment="no_overlap"))
except ValueError as error:
print(f"no-overlap: {error}")
observational: naive=+0.053, adjusted=-0.127
randomised: naive=-0.129, adjusted=-0.129
no-overlap: effect not identified: missing treatment overlap
Assumptions: risk is measured without error, it suffices to block the common-cause path, treatment has one version, cases do not interfere, and outcome probabilities remain fixed across regimes. The no-overlap case deliberately violates one assumption. The code uses only Python’s standard library.
stateDiagram-v2 [*] --> Claim state "Thought experiment 1 · The<br/>warning lamp" as Claim state "World A · direct effect" as Test state "World B · common cause" as Revision Claim --> Test: expose mechanism Test --> Decision: evidence survives Test --> Revision: rival survives Revision --> Claim: narrow or rebuild Decision --> [*]
Where this mechanism stops helping
The simple adjustment and playground cease to justify action when their causal structure is wrong. Hidden common causes can leave residual bias. Measurement error can turn an adequate variable into an inadequate proxy. Positivity failure leaves required counterfactual regions unsupported. Treatment versions can differ so much that consistency becomes fiction. Interference can make one unit’s outcome depend on other assignments. Dynamic policies can create time-varying confounding affected by prior treatment.
Production systems add further breaks. Capacity constraints mean treating more cases changes treatment quality. Users adapt to repeated interventions. The policy changes which outcomes become observed. Outcome labels arrive late or only for selected cases. Model-driven assignment can feed its own predictions back into the next training set. In these settings, a static average treatment effect may answer a valid but insufficient question.
The failure trigger is not “the estimate has uncertainty”. Every estimate has uncertainty. The trigger is that the available evidence no longer identifies the deployed policy effect under assumptions the team is willing to defend. The remedy may be a cluster trial, sequential experiment, instrumental design, explicit congestion model, narrower population, stronger measurement or abstention.
Do not use the article’s back-door adjustment when assignment lacks overlap, a relevant common cause is unmeasured, treatment changes other units’ outcomes, or the deployed treatment is materially different from the observed treatment. The resulting number may be precise while the requested causal quantity remains unidentified.
Compact glossary
- Assignment mechanism
- The process that determines which unit receives which action, including human judgement, rules, capacity and prior models.
- Causal estimand
- The exact counterfactual contrast sought, with treatment, comparator, population, outcome and horizon.
- Exchangeability
- A condition under which compared treatment groups can stand in for each other’s counterfactual outcomes, often after justified adjustment.
- Intervention
- A specified replacement of the ordinary process that sets a variable or action.
- Overlap or positivity
- Sufficient probability of each treatment within the covariate regions for which an effect is claimed.
- Transportability
- The argument that an effect identified in one population or system applies to another.
Optional method note: identification is not discovery
Identification usually starts from an assumed causal structure or study design and asks whether the target effect is a function of observed data. Causal discovery instead searches for structural candidates from statistical and background constraints. Discovery can inform identification, but observational data often leave several candidates compatible. A complete identification algorithm can determine whether a query follows from a supplied graph; it cannot certify that the supplied graph is true.12
Approve the intervention, not the predictor
Prediction is disciplined compression of an observed regime. Causal inference begins when a decision proposes to replace part of that regime. The move from score to action therefore needs more than an accuracy threshold. It needs an intervention contract, an account of historical and deployed assignment, an identified estimand, tests that can expose failure, and operating evidence that the intended effect occurred.
The synthetic support case makes the consequence concrete. The historical predictor was correct about who failed. It was wrong as a guide to suppressing support because it carried the imprint of staff selection. Adjustment recovered the effect only because the common cause was measured and treatment overlap existed. Randomisation showed what happened when assignment was actually replaced. The no-overlap case showed where estimation had to stop.
The changed decision is simple: no predictive feature becomes an action merely because it is stable, important or well calibrated. Before release, compare the evidence-generating setter with the deployment setter. Where they differ, earn a causal bridge through design, assumptions and experiment. Where that bridge cannot be defended, keep the score in its proper role: prediction, triage or a prompt to gather better evidence.
A system that acts should record the whole causal wager. What was set, for whom, by whose authority, under which evidence, compared with what, and with which verified outcome? That record turns causation from a philosophical label into an engineering discipline. It also makes the system capable of the most important causal response: stopping when the world refuses to behave as predicted.
sequenceDiagram participant Q as Question participant M as Mechanism participant E as Evidence participant D as Decision Q->>M: The helpful action that prediction tells us to stop M->>E: Thought experiment 1 · The warning lamp E-->>M: compare rival explanations E->>D: Primary and authoritative sources D-->>Q: revise scope or act
Primary and authoritative sources
- Pearl, J. “Causal Inference.” Proceedings of Machine Learning Research, volume 6. Official PMLR record.
- Rubin, D. B. “Estimating Causal Effects of Treatments in Randomized and Nonrandomized Studies.” Journal of Educational Psychology, 66(5). DOI record.
- Hernán, M. A., and Robins, J. M. Causal Inference: What If. Official open book.
- Greenland, S., Pearl, J., and Robins, J. M. “Causal Diagrams for Epidemiologic Research.” Epidemiology, 10(1). PubMed record.
- Peters, J., Bühlmann, P., and Meinshausen, N. “Causal Inference Using Invariant Prediction.” Journal of the Royal Statistical Society: Series B, 78(5). Primary manuscript.
- Kamath, P., Tangella, A., Sutherland, D. J., and Srebro, N. “Does Invariant Risk Minimization Capture Invariance?” Primary manuscript.
- Rosenfeld, E., Ravikumar, P., and Risteski, A. “The Risks of Invariant Risk Minimization.” Primary manuscript.
- Chernozhukov, V., Chetverikov, D., Demirer, M., et al. “Double/Debiased Machine Learning for Treatment and Structural Parameters.” The Econometrics Journal, 21(1). Publisher record.
- Wager, S., and Athey, S. “Estimation and Inference of Heterogeneous Treatment Effects Using Random Forests.” Journal of the American Statistical Association, 113(523). Primary manuscript.
- Sharma, A., and Kiciman, E. “DoWhy: An End-to-End Library for Causal Inference.” Primary paper; see also the official PyWhy documentation.
- Bareinboim, E., and Pearl, J. “Causal Inference and the Data-Fusion Problem.” Proceedings of the National Academy of Sciences, 113(27). Publisher record.
- Shpitser, I., and Pearl, J. “Identification of Joint Interventional Distributions in Recursive Semi-Markovian Causal Models.” University repository record.