Composability

For Both Executive and Technical Readers

A large model composed of smaller models is only as sound as the seams between them. This page states what the seams require, and what goes wrong when they are skipped.

No single model covers an enterprise. They have to compose, and most can’t.

No single .bayes file covers an enterprise. A fraud model covers account-level signals. A portfolio risk model covers book-level exposure. A regulatory capital model covers the whole balance sheet. Each was elicited from different experts, calibrated to different populations, and scoped to a different set of questions. When an enterprise question spans more than one of them, as most enterprise questions do, the answer requires composing their outputs into a single inference chain.

Composition is not concatenation. Passing the output of one model as input to the next is a claim about the world: that the boundary node between them satisfies specific graphical and semantic conditions. If those conditions are not met, the composed model produces numbers that look valid and are not.

The failure is silent. A composition that violates conditional independence at the seam does not throw an error. It propagates. The downstream model receives a distribution, runs valid inference on it, and returns a confident posterior. The confidence is not earned, it was computed against the wrong input. Nothing in the pipeline flags this unless the seam was checked before it ran.

Five conditions. All necessary. None sufficient alone.

Five conditions must hold for two models to compose correctly. All five are necessary. None is sufficient alone.

1. An accurate, precise ontology

The boundary between models must reference a shared, unambiguous vocabulary, a named node set with fixed state spaces and documented semantics, meaning the same thing in both models. “High Risk” in Model A must mean the same thing as “High Risk” in Model B, same population, same threshold, same referent. This is enforced through Scope Cards in the Model Registry, which declare the interface explicitly.

2. Conditional independence at the boundary

The boundary node must d-separate the downstream model from the upstream internals. The downstream model must be able to treat the upstream posterior as a sufficient statistic, it must not need to reach inside the upstream model to reason correctly. If it does, the decomposition is wrong: either the boundary is in the wrong place, or the models share a latent variable that has not been made explicit.

3. Full distribution at the seam

The upstream model must pass a full posterior distribution over the boundary node's state space, not a point estimate, not a mode, not a threshold crossing. A point estimate discards the uncertainty that the downstream model needs to propagate correctly. A composition that passes 0.73 instead of {Low: 0.11, Medium: 0.16, High: 0.73} loses the variance. Any robustness analysis downstream is then blind to the upstream uncertainty.

4. Scope assumption compatibility

Each model's CPTs were elicited under a scope assumption: a population, a regime, a set of conditions under which the parameters are valid. When models compose, their scope assumptions must be compatible at the seam. A fraud model calibrated to consumer retail cannot feed a commercial lending portfolio model without an explicit compatibility check. The CPTs on both sides of the boundary may be correctly specified for their respective domains and still be incompatible as a composed system.

5. Correct graphical role at the seam

The boundary node plays one of three graphical roles relative to the path between upstream causes and downstream effects: Mediator, Collider, or Hidden common cause. Each role has different conditioning rules. Conditioning on a Mediator blocks a causal path that should remain open. Conditioning on a Collider opens a path that should remain blocked. The graphical role must be classified before the composition runs, not assumed.

Requirements 1 and 3 are structural and can be enforced by the pipeline. Requirements 2 and 5 are graphical and require d-separation analysis at the seam. Requirements 4 is a knowledge problem, it requires documented scope assumptions per model and an explicit compatibility check. The CompositionCertificate is the artifact that records whether all five were met.

Each unmet requirement produces a distinct failure. All are silent.

Each unmet requirement produces a distinct failure. All are silent.

Requirement violated What happens Why it is hard to detect
Ontology mismatch The downstream model receives a state it has no CPT for, or maps the upstream state to a different referent. Inference runs. The posterior looks calibrated. The error is in what the node means, not in the arithmetic.
Conditional independence violated The downstream model double-counts evidence that already propagated upstream. The posterior is overconfident. Both models individually pass calibration. The overconfidence only appears in the composed system, under evidence that activates the shared path.
Point estimate at the seam Upstream variance is lost. The downstream model treats a high-uncertainty 0.73 identically to a low-uncertainty 0.73. The downstream posterior is numerically valid. Robustness analysis shows low sensitivity to upstream uncertainty, because the upstream uncertainty was never passed.
Scope incompatibility The downstream model applies CPTs calibrated to a different population to an upstream posterior from a mismatched regime. Both models are correctly specified for their own domains. The error is at the seam, invisible to per-model validation.
Wrong graphical role Conditioning on a Collider opens a spurious path. Conditioning on a Mediator blocks a causal path. The estimand is wrong. The d-separation violation only surfaces under specific evidence combinations. Routine queries may return plausible answers.

The common thread: none of these failures produce an error code. The composed system runs, returns a number, and nothing in the output signals that a seam condition was violated. Detection requires checking the requirements before composition runs, not inspecting the output after.

Two models composing through a boundary node (the seam), with the five requirements annotated.

Both models share the boundary node. The seam is where the five requirements must hold before any inference runs.

Stage 5 of the Pipeline enforces composition before inference runs.

Stage 5 of the Pipeline, Compose, is the enforcement point. It runs before any inference executes. The full mechanics are documented on the stage page: how Scope Cards enforce interface and scope requirements, how d-separation analysis classifies the bridge, and how the full posterior distribution is passed across the seam rather than a point estimate.

Stage 5 · Compose →

The output of a successful Stage 5 is a CompositionCertificate: the boundary node set, graphical role classification, d-separation result, scope compatibility check, and the full distribution passed across the seam. The certificate travels with the AuditRecord. A composed answer that cannot show its CompositionCertificate does not ship.

Stage 5 Compose decision flow: three sequential checks with refusal branches, leading to the CompositionCertificate.

Stage 5 runs three checks in sequence. Any failure returns a structured refusal. All three must pass before Execute runs.

What composition looks like from the outside.

What composition looks like from the outside, and what the pipeline is checking that the user never sees.

We want to know the effect of our fraud controls on portfolio-level expected loss. The fraud model and the credit risk model are separate. Can we combine them?
AnyChatRung 2 · Compose → Route → Identify
Checking the seam. The shared node is Account Risk, declared in both Scope Cards with matching state spaces {Low, Medium, High} and matching population scope (consumer retail, 2022–2025). Graphical role: Mediator, Account Risk sits on the causal path from fraud controls to credit loss, and conditioning on it is licensed. D-separation holds post-conditioning. Scope assumptions compatible. Full posterior over Account Risk will pass from fraud model to credit model. Composition licensed. CompositionCertificate: compcert_2026_000041.
What if we had deployed the stronger fraud control last year? Would portfolio loss have been lower?
AnyChatRung 3 · Abduct → Compose → Counterfactual
Rung 3 composition requires d-separation to hold post-abduction, not just post-conditioning. Abducting last year’s loss experience anchors the U-terms in both models. D-separation check at the seam: holds. Intervening to set FraudControl = Strong in the fraud model, passing the counterfactual posterior over Account Risk to the credit model, and reading portfolio Expected Loss. P(ExpectedLoss = Low | counterfactual) = 0.61 vs. 0.44 factual. The stronger control would have reduced expected loss by 17 percentage points for this portfolio, last year.
Couldn't our data engineers just join the two model outputs in a database and compute the combined estimate?
AnyChatRung 3 · composition failure
A database join passes a point estimate across the seam. The credit model receives 0.73 for Account Risk and treats it as certain. The variance in the fraud model’s posterior, which reflects genuine uncertainty about whether fraud controls are working, is discarded at the join. The counterfactual query is not possible at all: a database has no abduction step, no U-term anchoring, and no mechanism to propagate an intervention from one model’s causal graph through to another’s. The join produces a number. The composition produces a certified answer.

The CompositionCertificate is the artifact that makes a composed answer auditable. Without it, the answer has no seam record and no challengeable basis.

Enforced by the Model Registry and Pipeline.

Composability is not a separate component, it is Stage 5 of the Pipeline and a property enforced by the Model Registry. It becomes relevant whenever Stage 3 (Route) determines that the query requires more than one model. The Scope Cards that make routing possible also make composition checkable.

The upstream inputs are the Scope Cards from 01 Pipeline and the .bayes files built through 02 Discovery and 03 Evidence. The output is the CompositionCertificate, which travels with the AuditRecord to 12 BPMN Integration. A composed answer is indistinguishable from a single-model answer in the governance handoff, both arrive as a typed, versioned AuditRecord with full provenance.

Composability compounds. The first composition between two models requires establishing a shared interface from scratch. Every composition after that can reuse an interface the Registry has already validated, a third model built against the same “Account Risk” boundary node doesn’t re-derive the scope compatibility or graphical role classification; it inherits them. The cost of composing falls as the Model Registry grows, not because the requirements get easier to satisfy, but because fewer of them are being satisfied for the first time.