{
  "tool_id": "art-575-tmpg-fails-charge-recompute",
  "tool_version": "1.0.0",
  "display_name": "TMPG Fails-Charge Recompute",
  "mcp_name": "recompute_tmpg_fails_charge",
  "mandate_type": "compliance_control",
  "wave": 94,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-575-tmpg-fails-charge-recompute.html",
  "description": "Recomputes the NY Fed Treasury Market Practices Group fails-charge claim a buyer presents to a failing seller on a UST, agency, or agency-MBS settlement fail: charge = max(0, 3% minus the caller-declared reference rate) / 360 x par amount x days failed, per the published trading practice (2016 revision). Accepts a batch of fails in one pass, each with its own par amount, reference rate, and day count, and diffs the recomputed charge against a caller-declared claimed amount within a caller-declared tolerance -- never a default. A fail with no claimed amount contributes an INDETERMINATE line rather than a silent pass. Overall verdict DIVERGES if any fail's recomputed charge falls outside tolerance of its claimed amount; INDETERMINATE if every fail is within tolerance or unclaimed but at least one has no claimed amount to diff, or if the tolerance itself, or every fail, is absent; MATCHES only when every fail carries a claimed amount and every one agrees within tolerance. Par and claimed amounts are integer minor units, so the arithmetic is exact; recomputed charges round to the nearest minor unit. Performs arithmetic only over caller-declared par amounts, reference rates, day counts, and claimed amounts -- does not source, derive, or independently verify fail status, par amounts, or reference rates from any feed, and makes no TMPG/NY Fed endorsement claim. Clause: NY Fed TMPG fails-charge trading practice (2016 revision); confirm current text at newyorkfed.org before relying on a computed figure for a live claim.",
  "input_schema_ref": "chaingraph/art-575-tmpg-fails-charge-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:14e3887cf72bab31d7ba429fce3f50695fd92a5bf06a7db441520862bfd55efc",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IQLijamtFm0H3CO8OK2eiFtum8XzPG/jOoD2Oeya6EEUJLka5wjGd0SdSB1oPOCUh4Q4m77pI/OZtgjZ8lY6nhMK99lD2YbSEma5pl3zUd5MiDJlZXO/8iojalXldQ3XDEseh6rXuXLoYr9g0SkWi09y2xhvj1Do5dC4+JrjDWghk/jM7RcUm54R1thhYtkKSXl1CPGQC4yIO0OnvxAuAwHPnrsHu0tW2/+w5gg6LxPg1/KetOm9eFv3Gkf6N1SLHqBOM3q+nm7ueHUWUFab38/aHw2G882cxZwj2/xSJnEkbOz+yhNOOJfy5mLTLtbfG5iEmh4639EtX395v1DC/w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:14e3887cf72bab31d7ba429fce3f50695fd92a5bf06a7db441520862bfd55efc",
      "output": {
        "clause_note": "NY Fed Treasury Market Practices Group fails-charge trading practice (2016 revision): charge = max(0, 3% - reference rate) / 360 x par x days failed. Confirm the current practice text at newyorkfed.org before relying on a computed figure for a live claim.",
        "decision": {
          "execution_state": "ran",
          "reason": null
        },
        "determinations": [
          {
            "claimed_charge_minor": 1389,
            "days_failed": 10,
            "delta_minor": 0,
            "fail_id": "fail-A",
            "par_amount_minor": 10000000,
            "rate_diff_bps": 50,
            "recomputed_charge_minor": 1389,
            "reference_rate_bps": 250,
            "verdict": "MATCHES"
          },
          {
            "claimed_charge_minor": 2083,
            "days_failed": 5,
            "delta_minor": 0,
            "fail_id": "fail-B",
            "par_amount_minor": 5000000,
            "rate_diff_bps": 300,
            "recomputed_charge_minor": 2083,
            "reference_rate_bps": 0,
            "verdict": "MATCHES"
          }
        ],
        "diff_tolerance_minor": 0,
        "fail_count": 2,
        "rejected_inputs": [],
        "scope_note": "Performs arithmetic only over caller-declared par amounts, reference rates, and fail-day counts. Does not source, derive, or independently verify any fail status, par amount, or reference rate, and makes no TMPG/NY Fed endorsement claim.",
        "total_claimed_charge_minor": 3472,
        "total_recomputed_charge_minor": 3472,
        "verdict": "MATCHES"
      }
    }
  }
}
