← Case Study

do() vs obs() Gap

GDPR Compliance · Measure how far observational updates diverge from a causal intervention on the same node. Recommended opening view: Overall Compliance → Fine Amount.

Why this query explorer matters

Association tells you what tends to go together. Intervention tells you what would happen if you forced a change. Counterfactual tells you what would have happened for a specific case under different circumstances. These are three distinct questions — and they have three distinct answers, even on the same data and the same model.

Rung 1 (obs) leaves all back-door paths open: the model conditions on the evidence and propagates in all directions, mixing causal signal with selection bias. Rung 2 (do) severs the incoming edges to the intervention node, isolating the downstream causal mechanism and eliminating confounding. Comparing the two bars directly quantifies the bias that would arise from treating observational data as causal. Use the tools in the tab bar above to decompose the pathways, quantify the gap, and inspect individual-level background factors.

Start here
  1. Open the recommended scenario for this case
  2. Adjust observed evidence or intervention settings
  3. Move to a second tool without losing context
  4. Compare obs() versus do() where available
  5. Inspect paths, blankets, or CPT structure to explain the shift
Compare observation vs intervention

The gap is computed as E[target | source=value] minus E[target | do(source=value)]. A non-zero gap indicates confounding or correlation structure that observation alone cannot separate.

Model coverage

Visible nodes: 14 · Latent nodes: 11 · Total nodes: 25. Latent nodes are hidden by default except where they are the point of the analysis.