{
  "tool_id": "art-156-emir-counterparty-pairing-reconciler",
  "kernel_id": "art-156-emir-counterparty-pairing-reconciler",
  "display_name": "EMIR Counterparty Pairing Reconciler",
  "tool_version": "1.0.0",
  "mandate_type": "compliance_mandate",
  "purpose": "Pair two counterparties EMIR Refit reports by UTI and reconcile the caller-supplied matching-field set (up to 148 fields per the 2026 escalation) within a configurable per-field numeric tolerance. Identifies reconciliation breaks so a firm catches the pairing failure before the Trade Repository rejects it. Feeds lifecycle event validator (art-157).",
  "control_description": "Pair two counterparties EMIR Refit reports by UTI and reconcile the caller-supplied matching-field set (up to 148 fields per the 2026 escalation) within a configurable per-field numeric tolerance. Identifies reconciliation breaks so a firm catches the pairing failure before the Trade Repository rejects it. Feeds lifecycle event validator (art-157).",
  "declared_inputs": [],
  "declared_outputs": [
    "art-157-emir-lifecycle-event-validator"
  ],
  "kernel_digest": "sha256:03b4980aa42560c88badc630eebbfa577f65e31bd7721baff8325d2c5439f693",
  "trust_label": "independently verified: zkVM execution proof (risc0/groth16-bn254)",
  "data_vintage": "2026-07-10",
  "last_validated": "2026-07-10",
  "conformance_fixtures_vendored": true,
  "compute_proof_ready": "ready",
  "wave": 28,
  "source_url": "https://ainumbers.co/chaingraph/art-156-emir-counterparty-pairing-reconciler.html",
  "generated_at": "2026-08-15T11:12:17.704Z"
}
