> ## Documentation Index
> Fetch the complete documentation index at: https://wuweism.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Pearl's causal ladder

> The three-rung hierarchy that separates correlation from causation — and causation from counterfactual reasoning.

Most analytical systems answer questions about patterns in data. Wu-Weism is built to answer a different class of question: not just *what happened*, but *why it happened*, *what would happen if we intervened*, and *what would have happened if things had been different*.

This distinction is formalized in Judea Pearl's **causal ladder** — a hierarchy of three rungs, each requiring more information and more powerful reasoning than the one below.

## The three rungs

<Tabs>
  <Tab title="Rung 1 — Association">
    **Seeing: "What is the probability of Y given X?"**

    Association is the domain of statistical correlation. You observe data and ask what patterns exist. No causal claim is made — only a relationship between measurements.

    > *"Patients who took aspirin had lower rates of heart attack."*

    This rung answers questions of the form *P(Y | X)* — the probability of an outcome given an observation. It requires only observational data: surveys, records, logs, measurements. Virtually every machine learning model and statistical analysis lives here.

    **Limitations:** Association cannot tell you what *caused* what. The aspirin-taking patients may differ from non-takers in dozens of other ways. Correlation is real, but its causal interpretation is not warranted from this rung alone.

    <Note>
      Association-level answers are valid and useful. Wu-Weism displays a **Rung 1** indicator when a response is grounded at this level, so you know what epistemic weight to place on it.
    </Note>
  </Tab>

  <Tab title="Rung 2 — Intervention">
    **Doing: "What would happen if we do X?"**

    Intervention moves beyond observation to action. Instead of asking what happens *when* X is observed, you ask what would happen *if* X were forced — regardless of its natural causes.

    > *"If we prescribed aspirin to everyone, what would the heart attack rate be?"*

    This rung answers questions using Pearl's **do-calculus**, written as *P(Y | do(X))*. The `do(·)` operator severs the variable X from its usual causes in the causal graph, simulating a controlled intervention. This is the mathematical formalization of a randomized experiment.

    **What it requires:** A valid Structural Causal Model (SCM) with sufficient information to identify the causal effect — specifically, knowledge of which confounders exist and how to adjust for them.

    <Tip>
      In Wu-Weism, you trigger Rung 2 reasoning by switching to **intervene** mode in the Causal Workbench. The system checks identifiability before executing the intervention, and will tell you if the effect cannot be estimated from available information.
    </Tip>
  </Tab>

  <Tab title="Rung 3 — Counterfactual">
    **Imagining: "What would have happened if X had been different?"**

    Counterfactuals reason about specific, realized cases after the fact. You already know what happened — now you ask what *would* have happened under a different scenario.

    > *"Would this patient have had a heart attack if they had NOT taken aspirin?"*

    This is **but-for reasoning** — the standard of causation in law, medicine, and moral philosophy. It requires knowing not just the general causal structure, but the specific mechanisms and exogenous conditions that produced the observed outcome.

    **What it requires:** A fully specified SCM with structural equations, plus knowledge of the specific individual or case being analyzed. Counterfactuals are computed by: (1) abducing the exogenous factors that produced the observed outcome, (2) modifying the variable in question, (3) re-running the model forward.

    <Note>
      Wu-Weism persists a deterministic trace for every counterfactual computation. See [Counterfactual reasoning](/concepts/counterfactuals) for details on traces and how to access them.
    </Note>
  </Tab>
</Tabs>

## Why this matters for AI systems

Most large language models and data analytics platforms operate exclusively at **Rung 1**. They detect patterns in training data and generate outputs that reflect statistical associations. They cannot, by design, answer causal questions — because association-level data is insufficient to identify causal effects.

This has practical consequences:

* A Rung 1 system cannot tell you whether a drug *caused* recovery or whether recovering patients happened to take the drug.
* A Rung 1 system cannot simulate what would happen if you changed a policy, only describe what was observed when the policy was in place.
* A Rung 1 system cannot assess individual-level causation — whether *this specific patient* was harmed *by* the treatment.

Wu-Weism is designed to target all three rungs by grounding every analysis in an explicit Structural Causal Model. The model encodes the causal graph, the functional relationships between variables, and the constraints that cannot be violated.

<Info>
  Moving to a higher rung does not make lower-rung answers wrong — it makes them more precise. A Rung 3 analysis is built on Rung 2 interventions, which are built on Rung 1 associations. Wu-Weism always shows you which rung a given response operates at.
</Info>

## How Wu-Weism maps to the ladder

Every query in Wu-Weism passes through a pipeline that determines the appropriate rung and applies the corresponding reasoning:

<Steps>
  <Step title="Domain classification">
    Wu-Weism classifies your query to determine its subject domain — neuroscience, legal causation, ecology, alignment, and others. This determines which SCM to load.
  </Step>

  <Step title="SCM loading">
    The appropriate Structural Causal Model is retrieved from the SCM Registry. The model defines the variables, causal edges, and constraints relevant to your domain. You can see which model was loaded via the `scm_loaded` event in the workbench.
  </Step>

  <Step title="Constraint injection">
    Universal constraints (conservation laws, entropy, locality) are injected as Tier 1 rules that no response can violate. Domain-specific constraints are applied as Tier 2 rules.
  </Step>

  <Step title="Response generation">
    The AI generates a response grounded in the loaded SCM, with the causal density indicator showing which rung the response operates at — **Rung 1**, **Rung 2**, or **Rung 3**.
  </Step>
</Steps>

## The causal density indicator

Every response in Wu-Weism displays a **causal density indicator** that signals which rung of the ladder the response reaches:

| Indicator | Rung           | What it means                                                                                            |
| --------- | -------------- | -------------------------------------------------------------------------------------------------------- |
| Rung 1    | Association    | The response describes observed patterns. No causal claim is warranted beyond correlation.               |
| Rung 2    | Intervention   | The response reflects do-calculus reasoning. A causal effect estimate has been computed.                 |
| Rung 3    | Counterfactual | The response addresses a specific hypothetical. A counterfactual trace has been generated and persisted. |

<Tip>
  When you need a higher-rung answer and are receiving a Rung 1 response, switch to **intervene** mode and rephrase your question using explicit intervention framing — for example, "What would happen if \[variable] were set to \[value]?"
</Tip>

## Related concepts

<CardGroup cols={3}>
  <Card title="Structural Causal Models" icon="diagram-project" href="/concepts/scm">
    The formal graphs that power Wu-Weism's causal reasoning.
  </Card>

  <Card title="Counterfactual reasoning" icon="code-branch" href="/concepts/counterfactuals">
    How Wu-Weism computes and traces Rung 3 answers.
  </Card>

  <Card title="Claim Ledger" icon="clipboard-list" href="/concepts/claim-ledger">
    How every claim produced is governed, scored, and audited.
  </Card>
</CardGroup>
