DECISION: [ADR-010] 19-Variable Credit Ontology
DATE: 2026-02-18
TYPE: 2 (reversible)
STATUS: Accepted
SOLITON SCORE: 0.78

## Context

Credit risk modeling requires a standardized set of variables that span
borrower characteristics, loan attributes, performance metrics, and
macroeconomic conditions. The variable set must cover CCAR/DFAST scenarios,
CECL loss estimation, and fair lending analysis.

## Options Considered

### Option A: Minimal ontology (5-7 variables)
Pros: Simple, fast to implement.
Cons: Cannot cover CCAR scenarios (requires macro variables). Insufficient
for fair lending analysis (no protected characteristics pathway).

### Option B: 19-variable structured ontology (selected)
Borrower (5): credit_score, dti, income, employment_length, age
Loan (4): loan_amount, interest_rate, ltv, term
Performance (5): dpd_30, dpd_60, dpd_90, current_balance, default_flag
Macro (5): unemployment_rate, fed_funds_rate, hpi, gdp_growth, cpi
Pros: Covers CCAR variables, enables CECL, supports fair lending analysis.
Each variable has causal role, bounds, and regulatory tags.
Cons: More complex graph, more edges to specify.

### Option C: Large ontology (50+ variables)
Pros: Comprehensive, covers niche regulatory scenarios.
Cons: Graph becomes unwieldy, many edges poorly specified, overfitting risk.

## Decision

19-variable ontology organized into four domains. Each variable has causal
role, type, bounds, sensitivity level, and regulatory tags. Extensible —
new variables can be added without breaking existing structure.

## Rationale

19 variables is the minimum set that covers all three regulatory use cases
(CCAR, CECL, fair lending) while keeping the causal graph tractable. The
macro variables (5) match Fed CCAR variable definitions. The performance
cascade (dpd_30 → dpd_60 → dpd_90 → default) reflects real delinquency
escalation dynamics.

## Consequences

**Easier:** Regulatory mapping, scenario analysis, fair lending decomposition.
**Harder:** Graph has ~20 edges to maintain. Adding variables requires
updating structural equations in the synthetic data generator.
