{
  "tool_id": "art-684-intercompany-elimination-netting",
  "tool_version": "1.0.0",
  "display_name": "Intercompany Elimination and Netting Workflow",
  "mcp_name": "compute_intercompany_elimination_netting",
  "mandate_type": "compliance_control",
  "wave": 116,
  "gpu": false,
  "url": "https://ainumbers.co/tools/684-intercompany-elimination-netting.html",
  "description": "Deterministic intercompany elimination and netting arithmetic over caller-declared synthetic entity pairs. For each declared pair the kernel compares the receivable declared by entity a against the payable declared by entity b (both rounded to 2 decimal places, half-up): equal amounts form a matched pair; unequal amounts are listed as a mismatch with their difference. The kernel reports matched and mismatched pair counts, the elimination total (sum of the smaller side of every pair), the unmatched residual (sum of mismatch differences), a full trace, and an overall GAPS_FOUND or ALL_MATCHED verdict. Pure matching arithmetic: not legal advice, not an audit opinion, not a settlement instruction: nothing is posted, netted, or paid anywhere, and no counterparty is contacted. No runtime clock: any as-of dating is a caller-declared input.",
  "input_schema_ref": "tools/684-intercompany-elimination-netting.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:095706cb39c4376c2a3782381693f0cb72986cfd7fabe8cc894cef4d385aece3","valid_from":"2026-09-05"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-09-06"}],
  "export_capability": ["json"],
  "standards_basis": "not_applicable",
  "cited_clause_digest": [],
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"Bn8XUC/9Axaj1vb3JLfCMzP6KQ/b76QAiW4oaOwTVCcNOivHbSgbP5THp+Gjv8SdgiTK2nklfl0QwSpOWPNpTyQZkQziuoVHS8T3CR2Tqn0AU/TAKNfcNDfKTmn53UwkESp5S2d3YMPFs9tBorQGuInsMjbldL4YeHzr8VTboWEq60MuUi4REIa+juVkB35SDLxySoQLLcnJ+UF7IF4qMiPosbA92kZIxf/GWJpbifu6QsF2EJi6EJYmRbwglhN9JaopILbh+gCjyWhzKqcBEva1IaFXHgijnMnFBJmEcMUlgAVsONR2AqUmznO4OX6cXvbWeigEBp8L6Xuzx629xg==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:095706cb39c4376c2a3782381693f0cb72986cfd7fabe8cc894cef4d385aece3","output":{"elimination_total":68000,"matched_pairs":1,"mismatched_pairs":1,"mismatches":[{"a":"SUB-1","b":"SUB-3","difference":2000}],"overall":"GAPS_FOUND","trace":"eliminate min(20000,18000)=18000 + matched 50000 = 68000; residual 20000-18000=2000","unmatched_residual":2000}}},
  "compute_proof_ready": "ready"
}
