{
  "tool_id": "art-535-fdic370-output-file-validator",
  "tool_version": "1.0.0",
  "display_name": "FDIC Part 370 Output-File Validator",
  "mcp_name": "validate_fdic370_output_file",
  "mandate_type": "compliance_control",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-535-fdic370-output-file-validator.html",
  "description": "Validates the shape of the institution's own 12 CFR part 370 deposit-insurance-coverage output file (the section 370.10 coverage summary report structure) against its published record layout -- required field presence, malformed count/amount values, and a repeated ownership right and capacity code -- and ties the file's declared totals to a supplied art-507-determine-deposit-insurance-coverage recompute. A file-shape defect and a totals mismatch are two separate, never-merged findings: a shape problem is checked first and routes to review_required regardless of how the totals compare, and only a clean-shaped file with a totals disagreement routes to escalate. Ownership right and capacity codes stay opaque strings, exactly as in art-507; no table of part 330 ownership categories is held here. Without a supplied art-507 result there is nothing to reconcile against, so the node reports did_not_run naming that precondition rather than assuming a tie-out. Emits a section 27.4 gate-policy value plus a sibling execution_state at a predictable output_payload pointer. Not a filing and not deposit insurance advice.",
  "input_schema_ref": "chaingraph/art-535-fdic370-output-file-validator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:10cb82f1a665d074500af23e512217234c39f79ad7f298e6f12a74eab4e2eeae",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-04"
    }
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "H0Nol5gOt/9bOw6acFYE4c7Y20DcpHmANJUmTZ1eB/MhHK7qvugiSFIs88OlfOZ6lvAlze68alvTivsxFaxdOycuWQphkyP+jeL2lfzGzgsb1er8EyWqGfBp/2cs3ZLTLre0O1M+tPoSlAdJ3K32/rR2x6J2dBaT7zPs5kqTV4kmSOSyEdfaRR2s+Y2HwBz9mA4zu55Lau5EdWScWl/jnwNRGr+9VszSC55PsfuoXRXsUniTQWURcYatgP0OtCtlDmQxSSlxQMvUeltzCLDv7+XvP9zhHcMAVO+oZgXoIhcpg5hQ5ubDaKJZsKzAD3khvB806xZmoogEikPB57OziQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:10cb82f1a665d074500af23e512217234c39f79ad7f298e6f12a74eab4e2eeae",
      "output": {
        "art507_result": {
          "accounts_with_uninsured_deposits_count": 2,
          "fully_insured_account_count": 2,
          "insured_minor_units": 46500000,
          "uninsured_minor_units": 10000000
        },
        "art507_supplied": true,
        "as_of_date": "2026-06-30",
        "boundary": "This validates the shape of a supplied 12 CFR part 370 output file against the section 370.10 record layout and ties the file's declared totals to a supplied art-507-determine-deposit-insurance-coverage recompute. It is not a filing, it does not produce the section 370.10 submission format, it carries no claim that the FDIC would accept the file, and it offers no deposit insurance advice. Whether coverage is correct for any particular depositor is decided under 12 CFR part 330 by the institution and its counsel, never here.",
        "conforming_row_count": 2,
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "file_structure_errors": [],
        "file_totals": {
          "accounts_with_uninsured_deposits_count": 2,
          "deposit_account_count": 4,
          "distinct_account_holder_count": 3,
          "fully_insured_account_count": 2,
          "insured_minor_units": 46500000,
          "uninsured_minor_units": 10000000
        },
        "institution_ref": "IDI-SYNTH-0001",
        "mismatches": [],
        "note": "Deterministic 12 CFR part 370 output-file shape validator and totals reconciler. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It validates the file's own declared rows against the section 370.10 record layout and ties the file's totals to a supplied art-507 recompute, reporting a shape defect and a totals mismatch as two separate, never-merged findings. It holds no part 330 rule table and is not a filing.",
        "ownership_code_handling": "Ownership right and capacity codes on each file row are opaque strings, used only to detect a code repeated across rows. Nothing in this computation branches on the text of a code, and no table of part 330 ownership categories or allowance rules is held here.",
        "rationale": [
          "Part 370 output file validation for institution reference IDI-SYNTH-0001 as of 2026-06-30, over 2 supplied file rows.",
          "Every supplied row conforms to the section 370.10 coverage summary report layout: 2 rows carried every required field and no ownership right and capacity code repeated.",
          "The file's totals tie out exactly against the supplied art-507 recompute across every tied field.",
          "Ownership right and capacity codes on each file row are opaque strings, used only to detect a code repeated across rows. Nothing in this computation branches on the text of a code, and no table of part 330 ownership categories or allowance rules is held here.",
          "Small-buyer caveat carried forward from art-507: the population this reconciliation currently covers is zero institutions in the revenue-kanban sense. This validator is specified and shipped anyway because it is cheap and completes art-507 into the certification evidence pack.",
          "This validates the shape of a supplied 12 CFR part 370 output file against the section 370.10 record layout and ties the file's declared totals to a supplied art-507-determine-deposit-insurance-coverage recompute. It is not a filing, it does not produce the section 370.10 submission format, it carries no claim that the FDIC would accept the file, and it offers no deposit insurance advice. Whether coverage is correct for any particular depositor is decided under 12 CFR part 330 by the institution and its counsel, never here."
        ],
        "small_buyer_caveat": "Small-buyer caveat carried forward from art-507: the population this reconciliation currently covers is zero institutions in the revenue-kanban sense. This validator is specified and shipped anyway because it is cheap and completes art-507 into the certification evidence pack.",
        "supplied_row_count": 2,
        "totals_mismatch": false
      }
    }
  }
}
