OpenChainGraph · Bank Capital & Credit Risk · Chain

Allocation Decision Receipt

Three-step linear chain: classify each candidate's tokenized-collateral eligibility, apply the Basel CRE22 haircut, then re-derive whether the allocation actually chosen is explained by the declared objective over those eligibility and haircut snapshots. This is a collateral instance of a pattern portable to any optimizer: liquidity, treasury, payment routing, order allocation.

BCBS d349/SCO60 Basel CRE22 Linear · 3 steps OCG v0.8.0 Bank Capital & Credit Risk
Computing…
Pending
DAG · 3 steps · 505 → art-444 → art-515 · no gate
STEP 1 Tokenized Collateral Eligibility
Classifies each candidate tokenized asset for DTC/Fed eligibility and Basel HQLA tier (L1/L2A/L2B/non-HQLA), per BCBS d349/SCO60. This is the shared eligibility layer already consumed by DvP, repo, and margin workflows, not rebuilt here.
→ Handoff: dtc_status and hqla_tier feed the haircut engine's eligibility snapshot at Step 2
🔗 505-tokenized-collateral-eligibility-checker
MCP Call · check_tokenized_collateral_eligibility
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "check_tokenized_collateral_eligibility",
    "arguments": {
      "asset_type": "ust",
      "notional": 1000000,
      "transfer_restrictions": {},
      "custody_linkage": "dtc"
    }
  },
  "id": 1
}
STEP 2 Basel CRE22 Collateral Haircut
Applies a caller-supplied, versioned supervisory haircut table (policy input, never hardcoded) to each collateral item's asset class and maturity bucket, per Basel CRE22's comprehensive approach, scaling for a non-standard holding period and layering an FX haircut for currency-mismatched items.
→ Handoff: haircut_table_version and the per-item adjusted values feed the allocation re-derivation at Step 3
🔗 art-444-collateral-haircut-engine
MCP Call · compute_basel_haircut_adjusted_exposure
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "compute_basel_haircut_adjusted_exposure",
    "arguments": {
      "haircut_table_version": "2026-07-01",
      "holding_period_days": 10,
      "fx_haircut_pct": 8,
      "min_haircut_floor_pct": 0,
      "haircut_table": [
        { "asset_class": "sovereign_aaa_aa", "maturity_bucket": "1-5y", "haircut_pct": 2 }
      ],
      "exposure": { "amount": 100000000, "currency": "USD", "asset_class": "cash" },
      "collateral_items": [
        { "item_id": "c0", "asset_class": "sovereign_aaa_aa", "maturity_bucket": "1-5y", "market_value": 60000000, "currency": "USD" }
      ]
    }
  },
  "id": 2
}
STEP 3 Allocation Decision Receipt
Re-derives whether the allocation actually chosen is explained by the declared objective (cheapest_to_deliver, preserve_hqla, minimise_movements, or a caller-named objective) over the eligibility schedule and haircut-table snapshots that were true at the time. Reports a reproducibility verdict, the delta versus the re-derived allocation in cost and eligibility terms, and the binding constraint behind any divergence. A divergence is never a finding of error: a trader override, an undeclared constraint, or a stale snapshot are all routinely legitimate explanations, and this node never characterises intent.
🏁 Terminal stage · emits reproducibility verdict, delta, and binding constraint
🔗 art-515-build-allocation-decision-receipt
MCP Call · build_allocation_decision_receipt
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "build_allocation_decision_receipt",
    "arguments": {
      "obligation_ref": "OBL-DEMO-01",
      "as_of": "2026-06-30",
      "eligibility_schedule_ref": "ELIG-2026-06",
      "inventory_ref": "INV-2026-06-30",
      "haircut_table_version": "HC-2026Q2",
      "obligation_amount": "1000000",
      "objective": "cheapest_to_deliver",
      "eligibility_schedule": [
        { "asset_id": "A1", "eligible": true },
        { "asset_id": "A2", "eligible": true }
      ],
      "inventory_snapshot": [
        { "asset_id": "A1", "available_amount": "600000", "cost_bps": "5", "hqla": true, "haircut_pct": "0" },
        { "asset_id": "A2", "available_amount": "600000", "cost_bps": "2", "hqla": false, "haircut_pct": "0" }
      ],
      "allocation_chosen": [
        { "asset_id": "A2", "amount": "600000" },
        { "asset_id": "A1", "amount": "400000" }
      ]
    }
  },
  "id": 3
}
Export Chain Artifact
Download a §4-compliant chain artifact with execution hash, step definitions, and regulatory basis. Hash is deterministic over canonical {policy_parameters, output_payload} per RFC 8785/JCS.