Blog
Saved0

Decision lineage in AI: how models, rules, policy and people make one outcome

The model recommended review. The specialist opened an investigation. The claims system sent a denial. How to record every judgment in an AI outcome, what role each one played, and what it was allowed to authorize.

LinkedIn
On this page
  1. The model said review. The claim was denied.
  2. Is an AI outcome one decision?
  3. Decision lineage, defined
  4. What should a decision record contain?
  5. Declare what each decision may do
  6. Proposals shouldn't become facts by accident
  7. Link decisions with meaning, not timestamps
  8. Keep disagreement and overrides visible
  9. Confidence routes. Authority decides.
  10. Decisions expire
  11. Follow the decisions through to the effect
  12. Common anti-patterns
  13. Ten rules for decision lineage
  14. The result: one accountable outcome
  15. Frequently asked questions
  16. How Frozion records every decision behind an outcome
  17. Sources
The short answer

Decision lineage is the record of every judgment behind an AI outcome: model proposals, rule checks, policy decisions, routing, human reviews and the final authorization to act. Each is stored with its role, the evidence and versions it used, and how it led to the next, through to the effect the system of record confirmed.

The model said review. The claim was denied.

An insurer's AI application reviews a $78,000 reimbursement claim with complete documentation for a covered event. The model returns a structured fraud-risk proposal: score 0.82, recommendation "refer to specialist". It's advisory. It doesn't say deny.

A coverage check confirms the policy is active, the service is covered and the documents are present. The policy service returns "review required", with an obligation: no denial before a specialist decides. A specialist reviews the case and chooses "open investigation". They haven't approved payment, and they haven't denied the claim. The intended state is investigation pending.

The downstream integration accepts only one boolean field, approved. Anything other than "approve payment" maps to false. The claims platform reads false as denied, changes the claim and sends a denial notice.

Every component did its job. The application kept the outputs of each decision. It lost what each output was allowed to mean.

Four decisions, refer to specialist, coverage confirmed, review required and open investigation, all collapsing into approved equals false and then a denial
Four distinct judgments, one boolean, an outcome nobody decided.

Is an AI outcome one decision?

Rarely. A consequential AI outcome usually combines several judgments, each with a different job: an observation, a model proposal, a validation, a policy decision, a routing choice, a human judgment, an authorization to act and a confirmation of what happened.

JudgmentQuestion it answersWhat it's for
ObservationWhat fact or signal was found?Supplies evidence; authorizes nothing
Model proposalWhat does the model suggest?Usually advisory
ValidationDoes it meet structural, domain and state rules?Accepts or rejects under explicit rules
Policy decisionIs this exact action permitted, denied or permitted with obligations?Constrains authority, creates duties
RoutingContinue, gather more, stop, or send to a person?Chooses the next path, not the outcome
Human judgmentWhat did a qualified reviewer decide?Accountable judgment within their authority
Authorization to actMay this exact action run now?Binds current authority, policy, state and approval
ConfirmationWhat actually changed?Establishes the business result

The role isn't set by the technology. A rule can be advisory. A model output can be binding in a low-stakes path if the workflow gives it that role and the controls are met. A person can recommend, approve, deny, adjudicate or override. The application has to declare the role rather than infer authority from whoever produced the output.

Decision lineage, defined

It's narrower than full execution lineage, which also covers context, identity, waits, retries and external effects. And it's richer than a list of model calls and approvals. Context records show what information was available. Decision lineage shows how the application's judgments used it, and which one made the outcome binding.

What should a decision record contain?

Each judgment needs its own record: what it was about, who or what produced it, the evidence and versions it used, its result and status, its role, when it stops being valid, and its links to earlier and later decisions.

In practice that means:

  • a stable decision ID and type, and the producer (model, rule, policy service, person or runtime check);
  • the workflow version, run, step and contract it belongs to;
  • the exact proposal evaluated, with a digest;
  • the evidence used, assumptions made and anything excluded;
  • the result, alternatives considered, any uncertainty and the threshold applied;
  • its role, scope, validity conditions and expiry;
  • its status: accepted, rejected, escalated, superseded or committed;
  • links to the decisions before and after it.

It doesn't need to copy every document or model payload. References, digests and versions pointing to the systems that own them are enough.

Declare what each decision may do

RoleWhat it may doExample
AdvisoryInfluence a later decision; can't change anything aloneModel recommendation, generated plan
ValidatingAccept or reject a proposal against a ruleEligibility rule, schema check
GatingLet the work continue, stop it or escalate itRequired-evidence check, confidence routing
PolicyPermit, deny or permit with obligationsA policy decision for one user, resource, action and purpose
Human judgmentApprove, deny, adjudicate, request more or authorize an exceptionA reviewer's recorded decision
Authorizing the actionAllow this exact action to run nowFinal check before the write
Confirming the outcomeRecord the effect, or confirm there was noneConfirmation from the system of record

Declaring roles stops a common leak: a proposal passes through several systems and is gradually treated as a fact, then a permission, then an action, though no step ever earned those changes.

Proposals shouldn't become facts by accident

Give each judgment an explicit status and govern every change of status. A typical path runs proposed, then validated, then permitted by policy, then authorized, then committed. Along the way it may be rejected, escalated for review, superseded, expired or flagged for revalidation. Not every case follows the same path; some run in parallel, some are denied straight away, some low-risk proposals skip review.

What matters is that each status change is explicit, attributable and versioned. Valid JSON doesn't make a model output authorized. Opening an investigation isn't approval to deny. A policy "permit" isn't proof the action happened.

A status path from proposed through validated, permitted, authorized and committed, with side branches for rejected, escalated, superseded and expired
Each change of status is explicit, attributed and versioned.

A link between two decisions should say how one became evidence, a constraint, a trigger or the authorization for the next. For example: the model's fraud_risk field mapped to the policy fact specialist_review_score under mapping version 7; a coverage result blocking auto-denial even with a high risk score; a policy obligation creating a review task rather than a notification; a reviewer authorizing "open investigation" but not "deny claim"; a current-state check invalidating an approval after the amount changed.

Without explicit links, investigators infer meaning from timestamps, field names and which service called which. That shows order. It can't prove one decision was allowed to constrain or authorize another. In the opening case, a link stating "reviewer authorized: open investigation" would have made the boolean mapping visibly wrong.

Keep disagreement and overrides visible

Real applications disagree with themselves: two models differ, a proposal breaks a rule, policy requires review despite high confidence, a person rejects a recommendation, a later check invalidates an earlier decision. Record all of it.

When a later decision replaces an earlier one, record that it did, for which proposal and scope. When someone overrides, record it as a new decision with their authority, reason, evidence, policy basis, conditions and expiry, and keep the original. A person can override only when policy grants that authority and separation-of-duty rules are met. Otherwise it's another proposal, or an unauthorized deviation.

Confidence routes. Authority decides.

A confidence score can route a case. It can't decide whether a consequential action is allowed. Record what the score represented, which threshold and version turned it into a route, what that route was, and which policy governed the threshold. (See confidence escalation.)

Human involvement needs the same precision. Reviewing evidence, confirming a fact, challenging a result, approving a proposal, adjudicating a conflict, authorizing an exception and opening an investigation are different decisions. Record which one happened, what the reviewer saw, their authority and exactly what it allowed.

Decisions expire

A decision can be right when made and wrong to rely on later. During a long wait, the amount or evidence changes, a reviewer loses authority, the record is edited, the policy or threshold is updated. Give each consequential decision validity conditions: the proposal digest, record version, authority, policy version, scope and expiry. Before resuming or acting, recheck them, or record why the earlier decision expired and needs a new one.

Follow the decisions through to the effect

A decision chain that stops at the model recommendation, the policy result, the approval or the API request is incomplete. Continue through the final authorization to act, the stable operation ID, each attempt, and the confirmation from the system of record. Then you can show which decisions were accepted, which were rejected or replaced, what authorized the action, and whether what happened matched what was authorized.

Make this testable before go-live. For each consequential path, list the decisions, roles, links and checks that must exist, and flag any path where a model proposal connects straight to an action, several outcomes collapse into one boolean, or an override has no declared authority.

Common anti-patterns

Anti-patternWhy it failsWhat to do instead
One "AI decision" fieldProposals, checks, policy and people collapse into one labelSeparate records with declared roles
Last writer winsLater results erase disagreement and contextRecord replacement explicitly; keep the original
Confidence equals permissionA score silently becomes authorizationKeep thresholds, policy and the final check separate
A human was present, so it's governedThe reviewer may have seen another version or only reviewedRecord the exact decision type and what it allowed
Policy permit equals effectObligations may not have been enforcedLink the policy decision to enforcement and outcome
Timestamps imply causeOrder doesn't prove one decision authorized anotherRecord explicit links with meaning
Override deletes the originalYou can't study disagreement or exceptionsKeep both, with authority and reason
Lineage stops at approvalYou can't prove what ran afterwardsContinue to the confirmed effect

Ten rules for decision lineage

  1. Treat proposals, checks, policy decisions, routing, human judgments and confirmations as different things.
  2. Declare each decision's role; don't infer it from the technology.
  3. Bind each decision to the exact proposal, evidence and versions it used.
  4. Link decisions with meaning: mapping, threshold, obligation, authorization.
  5. Keep rejected, escalated, expired and replaced decisions.
  6. Record overrides as new, authorized decisions that keep the original.
  7. Record exactly what a reviewer decided and what it allowed.
  8. Recheck decisions after material changes before acting.
  9. Follow the chain to the confirmed effect.
  10. Never claim the record shows the model's private reasoning.

The result: one accountable outcome

AI outcomes get attributed to one model, one rule or one reviewer. In practice they come from a network of judgments spread across the application. Decision lineage gives that network a precise form: which proposals existed, what role each decision played, what evidence and constraints applied, how disagreement was handled, which decision became binding, and whether the effect matched.

That doesn't diminish models, rules, policy or people. It gives each a defined place, and stops any one of them from quietly borrowing another's authority.


Frequently asked questions

What is decision lineage in AI?

It's the linked record of every judgment that produced an AI outcome: what each model, rule, policy check and person concluded, what role that conclusion had, what evidence it used, and how it led to the action that actually ran.

Is a model's recommendation the AI's decision?

Usually not on its own. A recommendation is typically advisory. The outcome also depends on validations, policy decisions, routing, human judgment and a final check before acting. Recording only the model output hides which of those made the outcome binding.

How should an override of an AI recommendation be recorded?

As a new, separately authorized decision that keeps the original. Record who overrode it, their authority, the reason, the evidence, the conditions and the expiry. Deleting or overwriting the recommendation removes what you need to study disagreement and exceptions.

How does this work for agents we already run?

Route the agent's tool calls through a governed runtime over MCP or HTTPS. Its proposals are then checked by policy before and after each step, routed to a person when rules say so, and recorded with the rule, facts, approval and confirmed outcome.

With Frozion

How Frozion records every decision behind an outcome

Frozion enforces policy before and after every step, and each policy decides with history from the Feature Store, not just the current request. Only rule-selected decisions reach a person in the HITL Inbox, and approval is bound to the exact revision reviewed. Provenance & Evidence keeps one tamper-evident record per decision: the rule, the facts, the approval, each attempt and the confirmed outcome. Six role views read from that record, it's exportable, and auditors get scoped read-only access.


Sources

  1. W3C PROV-ONeutral relationships for usage, generation, derivation and attribution.
  2. W3C PROV-DMProvenance data model that domains can specialize.
  3. NIST AI Risk Management FrameworkAccountability, transparency and documentation of overrides and escalations.
  4. NIST AI 600-1, Generative AI ProfileLifecycle oversight, documentation and downstream impacts.
  5. OASIS XACML 3.0 CoreDecisions with obligations that enforcement must fulfil, and advice that may be ignored.
  6. NIST SP 800-53 Rev. 5Audit, accountability and separation of duties controls.
  7. JSON SchemaStructural validation is one layer, not proof of authority.
  8. OWASP Top 10 for Agentic Applications (2026)Risks of accepting agent outputs and actions without independent gates.
  9. EY survey: autonomous AI outpaces oversight, Sep 202672% worry they can't trace lineage behind critical AI decisions.
More in Evidence & inspectability

Evidence & inspectability

Audit & explanation 2
Lineage & provenance 3
Versioning & replay 2

Other topics

Pick up where you left off: