Every decision must be reproducible from:
tenant_idsnapshot_idmodel_version_id- threshold set version
- feature lineage/version
- deterministic replay time (
cardops.replay_time)
model_registrymodel_versionsmodel_deployments
For each decision, keep:
- feature value
- feature weight
- feature contribution
This enables score reconstruction and audit defense.
- PSI for population stability
- KS proxy from score distributions
- ROC recalculation view
- feature drift tracking
- Accuracy >= 0.85
- F1 >= 0.80
- Drift score <= configured threshold
- Guardrail constraints satisfied
- Replay equivalence validation must pass before activation