{
  "tool_id": "art-448-ifrs17-loss-component-tracker",
  "tool_version": "1.0.0",
  "display_name": "IFRS 17 Loss Component Roll-Forward Tracker",
  "mcp_name": "track_ifrs17_loss_component_rollforward",
  "mandate_type": "compliance_mandate",
  "wave": 32,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-448-ifrs17-loss-component-tracker.html",
  "description": "Tracks the IFRS 17 para 50 loss-component roll-forward across periods: opening balance, additional loss recognised on new onerous contracts, reversal from subsequent favourable experience (capped so it never reverses more than the available balance), other adjustments, and release to profit or loss (capped at the pre-release balance). Delta over validate_ifrs17_csm_rollforward (art-178), which resets the loss component to a single period's shortfall and does not track the component's own multi-period roll-forward or its release pattern. IFRS 17 para 50, BC323-BC326. NaN-safe numeric validation on all inputs. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-448-ifrs17-loss-component-tracker.html#manifest",
  "consumes": [
    "art-178-ifrs17-csm-rollforward-validator"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:8e097549d34ca1082509778e8da4137f414ab761783cc9babc55ec076010976e",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json",
    "vc"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GXvBkO5zDHYqVClMsOrhyiohsN48ug9mpQ8zS8a0cEkLjjPrS5k1wqUxrqBEPyOvZdBVTF6QS9SpgvrxkYurNC8aSlwWcvnQBQU/9tHQpLqYcU2vy3MQqqBDkuHZsgbXJ/D8UojvrKWKJEyC54SB5NtZzY2Yny4Xh/vZ6csHIfkJ3gHnwFZlMtOeOAcadS5pSzGt95vUEskEF3D7mlzawxYy2Y473Fe5r8BKqlUL2cJHUAFjetOoKIfR4hNLVXaNHT3+gUFgt2yZXoclb/t3rmNbiNxD7QPzAbrZrcIergsPptsYudW/1jAhz22nSKrgOaJAqCGv8tFtiZbiHeth4A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:8e097549d34ca1082509778e8da4137f414ab761783cc9babc55ec076010976e",
      "output": {
        "additional_lc": 50,
        "closing_lc": 150,
        "fully_reversed": false,
        "lc_valid": true,
        "opening_lc": 100,
        "other_adj": 0,
        "pre_release": 150,
        "release_to_pnl": 0,
        "reversal_lc": 0
      }
    }
  }
}
