Modern systems make decisions by combining data, models, rules, and context. What is often missing is a way to capture that decision as a single, coherent event.
A Decision Record is a minimal structure that does exactly that. It does not attempt to explain the decision in words. Instead, it captures the underlying evidence so that the decision can be examined, verified, and, if necessary, reproduced.
Conceptual Structure
A Decision Record brings together the components that are typically scattered across systems:
| Layer | Description |
|---|---|
| Identity | What decision is this? |
| Inputs | What data was used? |
| Features | How was that data transformed? |
| Model | What produced the score or prediction? |
| Rules | What logic was applied alongside the model? |
| Context | Under what conditions did this occur? |
| Outcome | What was the final result? |
| Intervention | Was there any human involvement? |
| Audit | How is this record tracked internally? |
| Integrity | Can this record be trusted as untampered evidence? |
Minimal Schema (v0)
{
"decision_id": "uuid",
"timestamp": "2026-04-10T14:32:00Z",
"subject": {
"subject_id": "string",
"subject_type": "individual | organisation",
"domain": "lending | insurance | hiring"
},
"inputs": {
"raw": {
"application_data": {},
"external_data": {
"credit_bureau": {},
"third_party_sources": []
}
},
"data_sources": [
{
"source_name": "string",
"version": "string",
"retrieved_at": "timestamp"
}
]
},
"features": {
"feature_vector": {},
"feature_metadata": {
"feature_set_version": "string",
"generated_at": "timestamp"
}
},
"model": {
"model_id": "string",
"model_version": "string",
"inference": {
"score": 0.42,
"label": "reject"
},
"generation_params": {
"temperature": 0.0,
"top_p": 1.0,
"seed": "optional"
}
},
"rules": {
"evaluated_rules": [],
"triggered_rules": []
},
"context": {
"channel": "api | batch | manual",
"jurisdiction": "UK",
"execution_environment": "prod"
},
"outcome": {
"decision": "approve | reject | flag",
"final_action": "string",
"decided_at": "timestamp"
},
"intervention": {
"is_human_reviewed": false,
"reviewer_id": "optional",
"review_timestamp": "optional",
"action": "confirmed | overridden"
},
"audit": {
"created_at": "timestamp",
"system_version": "string",
"trace_id": "string"
},
"integrity": {
"record_hash": "string",
"hash_algorithm": "SHA-256",
"signature": "optional"
}
}
What This Enables
1. Reconstruction without Guesswork
The decision can be retrieved as it occurred, without recomputing intermediate steps.
2. Audit Readiness
All relevant components — data, model, rules, context — are captured in one place.
3. Reproducibility (Foundation)
With the addition of environment and policy layers, the same decision can be replayed.
4. Human Accountability
Interventions are explicitly recorded, rather than inferred.
5. Tamper Evidence
Cryptographic binding ensures that the record can be trusted after the fact.
Relationship to Existing Standards
The Decision Record does not replace existing standards. It complements them.
| Standard | Role |
|---|---|
| ISO/IEC 42001 | Defines governance expectations |
| DMN | Models decision logic |
| IEEE P7000 Series | Provides process guidance |
These frameworks define what must be demonstrated. The Decision Record provides a way to structure the evidence itself.
Looking Ahead
This structure is intentionally minimal. As systems evolve towards more dynamic, multi-component decision-making, the record will need to expand to include:
- Policy versioning and threshold configuration
- Full environment snapshots for replay
- Multi-step interaction traces for agent-based systems
From reconstructing decisions after the fact —
to recording them as they happen.