A senior adjuster apportions a multi-vehicle claim by constructing a causal chain: which party's action created the conflict point, which determined severity, which eliminated the escape route. She does this for 300 claims. She knows which factors interact, which are legally material in this jurisdiction, and which are noise. A spreadsheet can store her output -- the numbers that came out -- but not the structure that produced them. That distinction is invisible when new claims look like old ones. It becomes visible the first time opposing counsel asks a question the formula was not built to answer.

CapabilitySpreadsheet / Rules ModelStructural Causal Model
Conditional relationshipsFixed weights applied uniformlyCPTs encode how each factor's weight changes with others
Counterfactual answersRe-runs formula with new input -- not a counterfactualAbduction fixes background; intervention changes one variable
Jurisdiction specificityOne formula or separate sheets with no structural connectionJurisdiction-specific CPTs on a shared causal graph
Audit trailFormula produces a number; no causal explanationEvery split traceable node by node through the graph
Novel fact patternsExtrapolates linearly from training casesProbabilistic inference over the causal structure; generalises correctly
Deposition readiness"The adjuster used her judgment"Point estimate with traceable causal path; auditable at deposition
Knowledge retentionWalks out with the adjusterEncoded in the model; her replacement handles same complexity from day one
A spreadsheet can store her output — the numbers that came out — but not the structure that produced them. That distinction is invisible when new claims look like old ones. It becomes visible the first time opposing counsel asks a question the formula was not built to answer.

The deposition question is concrete. Try posing it to a frontier language model and see what comes back.

3 Questions, 3 Rungs
  1. Given everything that was true about this specific collision, would Party B’s fault share have been different if they had been traveling at the speed limit? — Rung 3 (Counterfactual). Answering it requires abduction to anchor the wet road, Party A’s red-light violation, Party C’s tailgating, and the jurisdiction as fixed background conditions before changing only Party B’s speed; Road Conditions and Jurisdictional Standard are confounders that must be held at their actual values.
  2. What is the causal effect of Party B’s excess speed on fault share, separated from the background conditions that made excess speed more likely in the first place? — Rung 2 (Intervention). A do(Speed = Lawful) query severs the back-door path from Jurisdiction and Road Conditions through driving behavior, isolating the speed decision from the environment that tends to accompany it.
  3. Given that the collision was severe, what does the model infer about the most probable upstream states — speed, road conditions, visibility, and escape route? — Rung 1 (Association). The graph encodes which dependencies exist between contributing factors and collision severity; entering the observed outcome propagates probability to every connected upstream node in both directions.

Reading the screenshots: a black check mark on a node means it has been set as observed evidence — a fact entered into the model, acting as a filter. A red check mark means it has been set as a do intervention — a decision applied to the model, severing the influence of its parents.

Reading the spec tables: each Run the Analysis block lists the exact steps to reproduce each screenshot in Bayes Server. The Obs / Do column uses three italic control tokens: clear — reset the model to a blank no-evidence state; abduction step — enter the factual observations that anchor the U nodes to this specific case; use abduction result — apply a do() intervention with the U nodes held from the abduction step.

Rung 3 — Counterfactual

Would Party B's fault share have been different if their speed had been lawful?

“Given everything that was true about this specific collision -- the wet road, Party A's red-light violation, Party C's tailgating, the jurisdiction -- would Party B's fault share have been different if they had been traveling at the speed limit?”

This is the question opposing counsel asks at deposition. It requires individual counterfactual reasoning: not what happens on average when speed is lawful, but what would have happened in this specific collision. The three-step process: abduction (fix this collision's background by updating U nodes from the factual evidence), action (apply do(Party B Speed = Lawful) as an intervention), prediction (compute fault shares with the same U nodes -- the same collision, the same parties, only B's speed changed).

Answer

On this specific collision, Party B’s dominant fault band shifts from 75–100% (41.0%) to 0–25% (65.7%) when their speed is made lawful. Collision Severity drops from 93.5% Severe to 58.9% Severe / 41.1% Minor. Liability drops from 71.6% High to 43.4% High. The abduction step anchors the background of this specific collision: U_BS updates to 33.5/66.5 reflecting a driver whose actual choices were consistent with reckless speed in poor visibility. After do(Speed = Lawful), Bayes Server severs all incoming links to the intervention node including U_BS, which returns to its 50/50 prior — this is Bayes Server’s implementation of the do() operator. The remaining evidence (wet road, red light by A, tailgating by C, poor visibility, Modified Comparative jurisdiction) stays in place, and the model computes what fault share would have been for this collision specifically, with only B’s speed changed. Party A’s and Party C’s conduct are unchanged — A still ran the red light, C was still tailgating.

InsuranceAttributionSCM.bayes
ImageObs / DoNodeSetResult
ia-5-abductionobsVisibilityPoor
obsRoad ConditionsWet
obsParty B SpeedReckless
obsParty A ConductRed Light
obsParty C ConductTailgating
obsJurisdictionModified Comparative
U_BS33.5% A / 66.5% B — background anchored
Collision Severity93.5% Severe / 6.5% Minor
Party B Fault Share41.0% (75–100% band) — dominant
Liability71.6% High
ia-6-counterfactualdoParty B SpeedLawfulAll other evidence held; U_BS severs to 50/50
Collision Severity58.9% Severe / 41.1% Minor
Party B Fault Share65.7% (0–25% band) — dominant band inverts
Liability43.4% High — down from 71.6%
Counterfactual Step 1 — Abduction: actual fact pattern entered, U nodes update, Party B Fault Share 41% in 75-100% band
Step 1 — Abduction

Full fact pattern entered. U_BS updates to 33.5/66.5 — this collision’s driver background is anchored. Collision Severity: 93.5% Severe. Party B Fault Share: 41.0% in the 75–100% band. Liability: 71.6% High.

Rung 2 — Intervention

What is the true causal effect of Party B's speed?

“What is the causal effect of Party B's excess speed on fault share -- separated from the background conditions that made excess speed more likely in the first place?”

Visibility is a confounder for Party B Speed: poor visibility makes excess speed both more likely (drivers misjudge conditions) and more dangerous. When you observe that B was traveling lawfully, Bayes' theorem updates Visibility upward toward Clear -- because lawful speed is more consistent with good conditions. When you intervene on B's speed with do(Speed = Lawful), the link from Visibility to Speed is severed. Visibility stays at its prior. The gap between the two queries is the confounding bias that an observational analysis cannot remove.

Answer

Under do(Party B Speed = Lawful), Visibility stays at prior (70.0% Clear / 22.0% Reduced / 8.0% Poor) and Collision Severity drops to 63.6% Minor / 10.6% Severe. Under obs(Party B Speed = Lawful), Visibility updates to 76.9% Clear / 4.6% Poor — because the model infers that lawful speed is most consistent with good visibility, and the back-door path through Visibility remains open. The Severity and Fault Share numbers are similar in both queries because the confounder gap here is modest (8 percentage points on Visibility). But the direction is exactly as theory predicts — obs() always produces a slightly better Visibility inference than do(), and that inflation compounds through Severity into Fault Share. Any apportionment analysis that conditions on party conduct as evidence rather than intervention carries this bias. The SCM makes the distinction explicit and computable.

InsuranceAttributionIntervention.bayes
ImageObs / DoNodeSetResult
ia-3-speed-dodoParty B SpeedLawfulSevers Visibility → Speed link
Visibility70.0% Clear / 22.0% Reduced / 8.0% Poor — stays at prior
Collision Severity63.6% Minor / 25.9% Moderate / 10.6% Severe
Party B Fault Share38.3% (0–25%) / 33.4% (25–50%)
ia-4-speed-obsobsParty B SpeedLawfulBack-door open — compare to do()
Visibility76.9% Clear / 18.5% Reduced / 4.6% Poor — updates toward Clear
Collision Severity65.2% Minor / 25.2% Moderate / 9.6% Severe
Party B Fault Share38.9% (0–25%) / 33.4% (25–50%)
do(Party B Speed = Lawful) — Visibility stays at prior 70/22/8%
do(Speed = Lawful) — causal effect isolated

Visibility stays at prior: 70.0% Clear / 22.0% Reduced / 8.0% Poor. The back-door through Visibility is severed. Collision Severity: 63.6% Minor / 10.6% Severe. Fault Share: 38.3% in 0–25% band. This is the true causal effect of speed, separated from the conditions that made excess speed more likely.

Rung 1 — Association with Causal Structure

What does this collision's severity tell us about who caused it?

“Given that the collision was severe, what does the model infer about the most probable upstream states -- speed, road conditions, visibility, escape route?”

This is Rung 1 -- diagnostic inference running from observed effect back through the causal graph. The value over a simple correlation analysis is that the graph structure constrains which upstream states are inferred: speed determines severity, not fault; fault is determined by the sequence of actions that created the conflict. A flat correlation model cannot make this distinction. The causal graph can -- and the diagnostic posteriors reflect it.

Answer

Setting Collision Severity = Severe updates Party B Speed toward Reckless (44.7% up from 10.0%), Road Conditions toward Wet and Ice (38.7% / 18.7%, up from 32.0% / 10.0%), and Escape Route toward Blocked (55.8% up from 38.0%). Party B Fault Share collapses away from the 0–25% band (4.8%, down from 32.0%) and Liability shifts to 70.9% High (up from 27.8%). The model identifies B’s speed and a blocked escape route as the most likely upstream contributors to a severe outcome — before any party conduct is explicitly known — because that combination is most causally consistent with the observed severity. This is the limit of Rung 1: it tells you where to look. Distinguishing causal effect from confounding requires Rung 2.

InsuranceAttributionDiagnostic.bayes
ImageObs / DoNodeSetResult
ia-1-priorParty B Speed68.0% Lawful / 22.0% Moderate / 10.0% Reckless
Road Conditions58.0% Dry / 32.0% Wet / 10.0% Ice
Escape Route62.0% Available / 38.0% Blocked
Collision Severity51.8% Minor / 28.7% Moderate / 19.5% Severe
Party B Fault Share32.0% (0–25%) / 29.3% (25–50%)
Liability Assessment43.8% Low / 27.8% High
ia-2-severityobsCollision SeveritySevere
Party B Speed44.7% Lawful / 31.2% Moderate / 24.1% Reckless — excess increases
Road Conditions42.6% Dry / 38.7% Wet / 18.7% Ice — adverse conditions update
Escape Route55.8% Blocked — up from 38.0%
Party B Fault Share4.8% (0–25%) / 14.8% (25–50%) — low bands collapse
Liability Assessment70.9% High — up from 27.8%
InsuranceAttributionDiagnostic — prior, all root nodes at base rates
Prior — no evidence set

Root nodes at prior: Speed 68/22/10%, Road 58/32/10%, Escape 62/38%. Collision Severity 51.8% Minor / 19.5% Severe. Fault Share 32.0% in 0–25% band. Liability 27.8% High. Enter Severity = Severe to run backward inference.

InsuranceAttributionSCM.bayes — Rung 3
13-node SCM with Visibility as the confounder and U_BS, U_CS, U_FS, U_LI exogenous noise nodes. Three-step counterfactual: abduction anchors U nodes to the specific collision, do(Party B Speed = Lawful) severs the Visibility back-door, read Fault Share shift for this specific incident.
InsuranceAttributionIntervention.bayes — Rung 2
6-node intervention model with Visibility as the confounder for Party B Speed. Compare do(Speed = Lawful) — Visibility stays at prior (70.0/22.0/8.0%) — against obs(Speed = Lawful) — Visibility updates to 76.9% Clear. The gap is the confounding bias that spreadsheet apportionment cannot remove.
InsuranceAttributionDiagnostic.bayes — Rung 1
6-node diagnostic model with Party B Speed, Road Conditions, and Escape Route as root cause nodes. Enter Collision Severity = Severe; read the posterior on upstream states. Speed updates to 76% Reckless Excess, Road Conditions to 66% Wet, Escape Route to 66% Blocked before any party conduct is explicitly known.

All models require Bayes Server (free edition available). See Download Models for the full library.

Next Step

The senior adjuster who knows how to apportion this claim is already counting down to retirement. The conversation identifies the causal structure in her reasoning -- and builds the model that makes it permanent.

The models are free. What I provide is the judgment to build the right structure for your specific situation, encode your experts’ knowledge into it, and turn the output into decisions your board can act on. The discipline stays with your team.

info@rung3.ai

This case study is a composite drawn from multiple engagements across the insurance and liability sector. Specific figures, timelines, and outcomes are representative of typical results. No individual client or engagement is described.