A decision-support tool for regulators and operators. Click an earthquake, see which wells contributed, how much, and what volume threshold keeps risk below the limit. Built on doubly-robust TMLE and Causal Forest methods.
Two things can happen at the same time without one causing the other. Ice cream sales and drowning deaths both go up in summer — but banning ice cream wouldn't save anyone. The hidden third factor (hot weather) drives both. That hidden factor is called a confounder.
Looks causal. But controlling for temperature makes the link vanish. The arrow was never real.
After controlling for genetics, pollution, income — the link holds. The arrow is real.
If the link survives after adjusting for every confounder, it's causal. If it disappears, it was spurious.
Saltwater disposal wells and earthquakes cluster in the same areas. But the same deep sedimentary basins that make good disposal targets also sit on top of critically stressed faults. Geology is the confounder.
The paper formalized the physical mechanism as a causal diagram. It identified five geologic and operational confounders, controlled for them, and tested whether the injection–seismicity link survived. It did.
The advance: SPE-228051 moved the field from "wells and earthquakes are in the same place" to "changing injection volume causes changes in earthquake magnitude." The causal DAG was right. But the estimator (OLS) had limitations.
The original paper used ordinary least squares (OLS), which forces a straight line through the data. The real relationship between injection and seismicity is nonlinear. We replaced OLS with TMLE — a doubly-robust, nonparametric method that lets the data speak for itself.
| OLS (Paper) | TMLE v3 + Forest (This Work) | |
|---|---|---|
| Estimator | Linear OLS | Doubly robust TMLE (NNLS SuperLearner, 5-fold CV) |
| Per-well effects | Not available | Causal Forest CATE + honest CI at all 20 radii |
| Spatial interference | Not addressed | Neighbor well volumes controlled (VIF 1.12) |
| Dose-response | Straight line | Nonparametric curve with extrapolation warnings |
| Pressure band (7–19 km), regHAL-TMLE | Not tested | ψ=+7.7×10-3, p=7.2×10-4 (April 2026 vintage; see scoreboard) |
| Pressure band (7–19 km), XGBoost-GPU | Not tested | ψ=+6.1×10-4, p=1.3×10-4 (plug-in) |
| Near-field (1–6 km) | Not tested | Inconclusive (basis-sensitive) |
| Confidence intervals | Assumes equal variance | Bessel-corrected cluster IF SEs |
| Validation | DoWhy refuters | R tlverse (<0.1%) + 6 sensitivity analyses |
The dashboard stacks three levels, each more specific than the last:
"If all wells reduce volume 10%, how does earthquake risk change?" For area-wide policy.
"How much did this specific well contribute to this specific earthquake, controlling for what neighboring wells were doing?" For targeted shut-ins.
"At what volume does this well's contribution cross the regulatory limit?" For volume caps.
Top 3–5 wells have CATEs with CIs excluding zero. Use the CATE waterfall + threshold curve. Action: targeted shut-in or volume cap.
Every well's CI crosses zero. Collective effect is real but individual signal is below noise floor. Action: area-wide volume reduction via TMLE shift.
Click the earthquake. Rank wells by CATE. Target wells where the CI excludes zero. Use the threshold curve to set a well-specific volume cap. Other operators continue normally.
Check if your well's CI crosses zero (no significant contribution). Use the threshold curve to find your safe operating volume. Prioritize reductions at highest-CATE wells across your fleet.
Click any earthquake on the map. See which wells contributed and how much. Click a well card for its threshold curve.
Open the full dashboard, read the FAQ, or dive into the methodology.