{
  "tool_id": "art-464-confirmation-matcher",
  "tool_version": "1.0.0",
  "display_name": "Bank/AR Confirmation Matcher",
  "mcp_name": "match_confirmations",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-464-confirmation-matcher.html",
  "description": "Joins caller-supplied bank and accounts-receivable confirmation responses against caller-supplied ledger balances on (counterparty_id, type), and classifies each pair EXACT_MATCH, TOLERANCE_MATCH, or MISMATCH, plus confirmations with no corresponding ledger balance and ledger balances with no corresponding confirmation. The match tolerance (tolerance_abs, tolerance_pct) is a caller-declared policy input; the explicit, echoed default is 0/0 (exact match required) when the caller declares neither -- there is no silent, unrecorded tolerance. A duplicate (counterparty_id, type) key on either side is reported as a data-quality flag rather than silently overwritten -- only the first occurrence on each side is joined. Third of three ARCB-K-1 substantive audit-recalculation kernels. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-464-confirmation-matcher.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:54918b9e1a32a89b38be7118d7fa3e6c5af4fc8dc91a023545a4fdbddb0bec76",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "KgodNxCGkCvA7iVj+Ukt9h8VgQ63E5EN6tIhZht41JQo/mcKEJJ+wG3kUcauJFKDlJuKDESY7Nj1ZSx/yNnkfShaE1VSCOS6Na9ESKm0f7YyPrw4qd54kJ46Sg25r5l8GCSoVQhhxjcxnSieddtPxQNKJRvs6yY0n427GwRDm1IPizZ4j5MS5wZ5g0CbBE0Ugnbbyv/uwTNGx/iu5pMB0Sy3XQO583L7RgtiRHc+qBofxxiSQMzAjBJBXM4yxutTGpKKg5UYEvEN2vS59opS31znUw+LFUb73PibG/5UaTcUSzH3TS/jd6TNWQTQ1jfI+Lzo5BAysa3sPbCXS2yF1g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:54918b9e1a32a89b38be7118d7fa3e6c5af4fc8dc91a023545a4fdbddb0bec76",
      "output": {
        "duplicate_confirmation_keys": [],
        "duplicate_ledger_keys": [],
        "exact_count": 1,
        "matched": [
          {
            "confirmation_id": "C-1",
            "confirmed_balance": 100000,
            "counterparty_id": "cp-A",
            "ledger_balance": 100000,
            "match_type": "EXACT_MATCH",
            "type": "bank",
            "variance": 0
          }
        ],
        "matched_count": 1,
        "tolerance_count": 0,
        "tolerance_used": {
          "abs": 0,
          "declared_by_caller": true,
          "pct": 2
        },
        "total_confirmations": 4,
        "total_ledger_balances": 4,
        "unmatched": [
          {
            "confirmation_id": "C-2",
            "confirmed_balance": 50100,
            "counterparty_id": "cp-B",
            "ledger_balance": 50000,
            "reason": "MISMATCH",
            "type": "bank",
            "variance": 100
          },
          {
            "confirmation_id": "C-3",
            "confirmed_balance": 20000,
            "counterparty_id": "cp-C",
            "ledger_balance": 15000,
            "reason": "MISMATCH",
            "type": "ar",
            "variance": 5000
          },
          {
            "confirmation_id": "C-4",
            "confirmed_balance": 7500,
            "counterparty_id": "cp-D",
            "ledger_balance": null,
            "reason": "NO_LEDGER_BALANCE",
            "type": "ar",
            "variance": null
          },
          {
            "confirmation_id": null,
            "confirmed_balance": null,
            "counterparty_id": "cp-E",
            "ledger_balance": 9000,
            "reason": "NO_CONFIRMATION",
            "type": "ar",
            "variance": null
          }
        ],
        "unmatched_count": 4
      }
    }
  }
}
