System Schema v4.0

Decision Object

The QuorumDecisionObject is the canonical data structure that captures the end-to-end lifecycle of a risk event. It is the primary transport mechanism for state across the arbitration, execution, and forensic layers.

Interface Specification

quorum-decision-schema.ts
export interface QuorumDecisionObject {
  /** Unique decision identifier */
  decision_id: UUID;
  correlation_id: UUID;
  created_at: ISOTime;

  // INPUT LAYER
  input: {
    source_system: string;
    event_type: string;
    raw_payload: Record<string, unknown>;
    normalized_payload: Record<string, unknown>;
  };

  // CONTEXT LAYER
  context: {
    entity_id?: string;
    user_id?: string;
    session_id?: string;
    device_fingerprint?: string;
    geo_context?: string;
  };

  // BEHAVIORAL LAYER
  behavior: {
    velocity_signals: Record<string, number>;
    anomaly_scores: Record<string, number>;
    historical_patterns: string[];
    risk_features: Record<string, number>;
  };

  // MODEL LAYER (bounded influence only)
  model: {
    model_versions: string[];
    raw_scores: Record<string, number>;
    calibrated_scores: Record<string, number>;
    feature_attributions: Record<string, number>;
    confidence_bounds: { lower: number; upper: number; };
  };

  // GOVERNANCE LAYER (immutable snapshot)
  governance: {
    policy_version: string;
    rule_set_id: string;
    precedence_tree_hash: string;
    applied_constraints: string[];
  };

  // ARBITRATION OUTPUT
  arbitration: {
    resolved_path_id: string;
    conflict_detected: boolean;
    suppressed_rules: string[];
    activated_rules: string[];
    decision_authority_chain: string[];
    final_rationale_hash: string;
  };

  // DECISION RESULT
  decision: {
    outcome: "APPROVE" | "DECLINE" | "REVIEW" | "ESCALATE";
    risk_score: number;
    decision_confidence: number;
    reason_codes: string[];
  };

  // EXECUTION LAYER
  execution: {
    executed: boolean;
    execution_timestamp?: ISOTime;
    action_type: string;
    external_systems_called: string[];
    execution_result: "SUCCESS" | "FAILED" | "PENDING";
  };

  // AUDIT LAYER
  audit: {
    ledger_hash: string;
    immutable_event_pointer: string;
    replayable_state_vector: string;
    integrity_signature: string;
  };
}

Data Principles

Immutable Trace

The decision object is never mutated. Each layer appends its specific state, ensuring the final object contains the complete lineage of the decision.

WORM Compliance

Serialized as a binary blob for storage in Write-Once-Read-Many ledgers, supporting non-repudiation and forensic replay.

Isolated Logic

Data is logically partitioned to prevent "leakage" between model scores and governance rules until the arbitration resolution.

Logical Layer Breakdown

Input & Normalization

Captures the raw event from the source system and the canonical representation used for all internal logic.

Behavioral Signals

Dynamic velocity and anomaly scores distilled from raw interaction signals during state construction.

Model Attribution

Transparent capture of model outputs, including feature weights and confidence bounds for regulatory explainability.

Governance Snapshot

A permanent link to the policy version and rule set hash that governed this specific decision cycle.

Arbitration Trace

The logic path taken through the precedence tree, including suppressed rules and authority chain.

Execution Binding

The final commitment state, action type, and external system response pointers.