{
  "tool_id": "art-437-fr2052a-inflow-outflow-classifier",
  "tool_version": "1.0.0",
  "display_name": "FR 2052a Inflow/Outflow Bucket Classifier",
  "mcp_name": "compute_fr2052a_inflow_outflow_classification",
  "mandate_type": "regulatory_reporting",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-437-fr2052a-inflow-outflow-classifier.html",
  "description": "FR 2052a complex-institution liquidity monitoring filing-layer kernel, scoped to the inflow/outflow section: product/maturity-bucket classification against a caller-supplied Appendix IV-style boundary table (versioned policy input, not hardcoded), intercompany elimination (excluded from external aggregation, reported separately), and form-shaped JSON export by bucket (inflow/outflow/net). A bucket override without a reason_code is flagged -- the row-level basis for a separate signed §27 human_accountability_record, not minted by this kernel. Not a filing tool -- evidence artifact and form-shaped export only, never regulator-submittable. Not check_conforming_loan_limit or a Call Report/Y-9C schedule kernel.",
  "input_schema_ref": "chaingraph/art-437-fr2052a-inflow-outflow-classifier.html#manifest",
  "deadline": null,
  "deadline_note": "FR 2052a: $100B panel, 18 daily / 23 monthly filers, deadline 3:00pm ET (FR notice 2025-02-07).",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:e6b15395a2f44a43b2968b7f10f6d7ef12137cd68b1a0ff292e5031b775f4f97",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Kh2K0VH45aIISbOROXZ/16Hg7Agd3nyGjzFvKkmazR4LRFBkTiqZ54nfvCMuOD1AM7MH4XffIGDQ6U8ZXBovGA9E6FgPYbR/9sZufwkO4EjsQ1xaozU6wCY33e6WB2haCMb3pBGBv9Z4T3vOd/3FwuQYmMlLsPJMce15S+zTtkYc4JNCvt5s52z1/dx5/eFTOW1TeSvAhTXF463PGTdyEAzbTDP0oggn7HaeILAdotJmLpadzgxGteC6RC5j0r3GKvsFlitfxlY1Seaqc+AohwJwDYKFtTy7GXNDDashlikqn+CthNJrYrVpt2OvdhbkUVuysWmmVP2RSpiUM8cEHQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:e6b15395a2f44a43b2968b7f10f6d7ef12137cd68b1a0ff292e5031b775f4f97",
      "output": {
        "boundary_table_version": "2026-07-01",
        "elimination_total_musd": 300,
        "form_2052a": [
          {
            "bucket": "Overnight",
            "inflow_musd": 1200,
            "net_musd": 1200,
            "outflow_musd": 0
          },
          {
            "bucket": "31-90 days",
            "inflow_musd": 650,
            "net_musd": -250,
            "outflow_musd": 900
          },
          {
            "bucket": "2-30 days",
            "inflow_musd": 0,
            "net_musd": -400,
            "outflow_musd": 400
          }
        ],
        "note": "Product/maturity-bucket classification against a versioned Appendix IV-style boundary table (policy input); an overridden bucket without a reason_code is flagged and is the row-level basis for a separate signed §27 human_accountability_record (this kernel does not mint that record). Intercompany rows are eliminated from the external aggregation and reported only in elimination_total_musd. Evidence artifact and form-shaped export only -- not a filing, not regulator-submittable.",
        "override_count": 0,
        "override_missing_reason_count": 0,
        "row_count": 5,
        "rows": [
          {
            "amount_musd": 1200,
            "bucket": "Overnight",
            "flow_type": "inflow",
            "is_intercompany": false,
            "maturity_days": 1,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r0",
            "table_bucket": "Overnight"
          },
          {
            "amount_musd": 900,
            "bucket": "31-90 days",
            "flow_type": "outflow",
            "is_intercompany": false,
            "maturity_days": 45,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r1",
            "table_bucket": "31-90 days"
          },
          {
            "amount_musd": 400,
            "bucket": "2-30 days",
            "flow_type": "outflow",
            "is_intercompany": false,
            "maturity_days": 7,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r2",
            "table_bucket": "2-30 days"
          },
          {
            "amount_musd": 650,
            "bucket": "31-90 days",
            "flow_type": "inflow",
            "is_intercompany": false,
            "maturity_days": 90,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r3",
            "table_bucket": "31-90 days"
          },
          {
            "amount_musd": 300,
            "bucket": "2-30 days",
            "flow_type": "outflow",
            "is_intercompany": true,
            "maturity_days": 30,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r4",
            "table_bucket": "2-30 days"
          }
        ],
        "total_inflow_musd": 1850,
        "total_net_musd": 550,
        "total_outflow_musd": 1300
      }
    }
  }
}
