{
  "tool_id": "art-577-exchange-fee-tier-recompute",
  "tool_version": "1.0.0",
  "display_name": "Exchange Access-Fee / Maker-Taker Tier Recompute",
  "mcp_name": "recompute_exchange_fee_tier_invoice",
  "mandate_type": "compliance_control",
  "wave": 97,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-577-exchange-fee-tier-recompute.html",
  "description": "Recomputes a monthly exchange maker-taker invoice from a caller-pasted fee schedule: resolves the firm's active tier from its declared prior-period average daily volume (ADV), applies that tier's maker rebate and taker access-fee rate to the declared monthly maker/taker share totals, and diffs the recomputed amount against the claimed invoice within a declared tolerance -- verdict MATCHES, DIVERGES, or INDETERMINATE when no tier qualifies. Separately, independent of which tier is currently active, checks every tier's taker rate in the declared schedule against the Reg NMS Rule 610(c) access-fee cap ($0.001/share for quotations priced at $1.00/share or more, compliance date 2026-11-02) -- verdict CAP_CONFORMANT, CAP_EXCEEDS, or INDETERMINATE when the caller has not declared that the schedule applies to quotes priced at $1.00/share or more. The two checks never gate each other: a schedule can conform to the cap while its invoice diverges, or the reverse. Fee schedules, ADV, and monthly volume are caller-declared inputs; this tool does not source, fetch, or maintain any exchange's published schedule. All rates and money amounts are integer micro-dollars (1 micro = $0.000001) so the arithmetic is exact. Not legal or accounting advice; a DIVERGES or CAP_EXCEEDS verdict is a citable arithmetic finding for the firm and, where relevant, its counsel to evaluate against the exchange's actual published schedule and rule text.",
  "input_schema_ref": "chaingraph/art-577-exchange-fee-tier-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:caed451dceca161ee2dd898a0aee48ceeaee497d39ac0eab2963ebad4437f5d8",
      "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": "FMIDYrYAp3kDZl726yv09TsrS4+8MGFHeLWIxdVJIPkg25GgF0VEOV8Y/slXQDqageAXcinuwUpBAPNMSl3i8AhX+VZ1W7oy97B+AuXtitO6j41P2lZ4uQLWmIEigaooJbXmaRfUboKOV4TLJxx2BW1dc/GYZroQAw1FVEJBZ5cWr5AlwfxJ1Bf4dzUozneSeJN2+YwiK7MR9a7j5kRHdyRapWeS/h3xfSphwBfDjt0xlcnAqjR7vYrHbiZHU7b+GIcmDNeaW4Yc7vDNJ5cXB0QLwLwYN4SlaWy7jf3QRQgdQQ3o77nQ6/pG1gsqxP5ETwbw56ijf9UZDxRcJrGnWg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:caed451dceca161ee2dd898a0aee48ceeaee497d39ac0eab2963ebad4437f5d8",
      "output": {
        "active_tier": {
          "maker_rate_micros_per_share": -300,
          "min_adv_shares": 5000000,
          "taker_rate_micros_per_share": 300,
          "tier_id": "tier-3-top"
        },
        "cap_check": {
          "cap_micros_per_share": 1000,
          "quotes_priced_ge_1usd": true,
          "tier_findings": [
            {
              "exceeds_cap": false,
              "taker_rate_micros_per_share": 300,
              "tier_id": "tier-1-base"
            },
            {
              "exceeds_cap": false,
              "taker_rate_micros_per_share": 300,
              "tier_id": "tier-2-mid"
            },
            {
              "exceeds_cap": false,
              "taker_rate_micros_per_share": 300,
              "tier_id": "tier-3-top"
            }
          ]
        },
        "cap_verdict": "CAP_CONFORMANT",
        "claimed_invoice_micros": -450000000,
        "clause_note": "Regulation NMS Rule 610(c), as amended by the SEC access-fee-cap rule (adopted 2024-09-18), caps the access fee for a protected quotation priced at $1.00/share or more at $0.001/share; compliance date extended by SEC order to 2026-11-02 following the D.C. Circuit's 2025 review, which upheld the cap. Sub-dollar securities are governed by a different formula (0.1% of quotation price) that this kernel does not evaluate.",
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "diff_micros": 0,
        "fee_schedule_summary": {
          "effective_date": "2026-01-01",
          "quotes_priced_ge_1usd": true,
          "schedule_id": "demo-exchange-tier-schedule-2026-06",
          "tier_count": 3
        },
        "findings": [],
        "invoice_period": {
          "end_date": "2026-06-30",
          "start_date": "2026-06-01"
        },
        "invoice_verdict": "MATCHES",
        "prior_period_adv_shares": 6000000,
        "recompute_tolerance_micros": 1000,
        "recomputed_invoice_micros": -450000000,
        "rejected_inputs": [],
        "scope_note": "Fee schedules, ADV, and monthly volume are caller-declared inputs. Does not source, fetch, or maintain any exchange fee schedule; performs arithmetic only over what the caller pastes.",
        "tiers": [
          {
            "maker_rate_micros_per_share": -200,
            "min_adv_shares": 0,
            "taker_rate_micros_per_share": 300,
            "tier_id": "tier-1-base"
          },
          {
            "maker_rate_micros_per_share": -250,
            "min_adv_shares": 1000000,
            "taker_rate_micros_per_share": 300,
            "tier_id": "tier-2-mid"
          },
          {
            "maker_rate_micros_per_share": -300,
            "min_adv_shares": 5000000,
            "taker_rate_micros_per_share": 300,
            "tier_id": "tier-3-top"
          }
        ],
        "volume_summary": {
          "line_count": 2,
          "maker_shares_total": 4000000,
          "taker_shares_total": 2500000
        }
      }
    }
  }
}
