{
  "process_id": "CM-02",
  "policy_version": "synthetic-v1",
  "event_id": "cm-02-example-v1",
  "input": {
    "cutoff": "2026-11-09T14:00:00Z",
    "current_version": "v1-gross-all-channels",
    "candidate_version": "v2-retail-only",
    "candidate_channels": [
      "retail"
    ],
    "approved_expected_delta_cents": -20000000,
    "required_consumers": [
      "desk",
      "fpa"
    ],
    "acknowledged_consumers": [
      "desk",
      "fpa"
    ],
    "loans": [
      {
        "loan_id": "S1",
        "available_at": "2026-11-09T13:00:00Z",
        "status": "locked",
        "channel": "retail",
        "balance_cents": 30000000
      },
      {
        "loan_id": "S2",
        "available_at": "2026-11-09T13:00:00Z",
        "status": "locked",
        "channel": "wholesale",
        "balance_cents": 20000000
      },
      {
        "loan_id": "S3",
        "available_at": "2026-11-09T15:00:00Z",
        "status": "locked",
        "channel": "retail",
        "balance_cents": 10000000
      }
    ]
  },
  "expected": {
    "status": "ready_for_review",
    "old_total_cents": 50000000,
    "candidate_total_cents": 30000000,
    "delta_cents": -20000000,
    "excluded_future_rows": 1,
    "errors": []
  },
  "changes": [
    {
      "name": "Consumer has not accepted the definition",
      "path": [
        "acknowledged_consumers"
      ],
      "value": [
        "desk"
      ],
      "expected": {
        "status": "hold",
        "old_total_cents": 50000000,
        "candidate_total_cents": 30000000,
        "delta_cents": -20000000,
        "excluded_future_rows": 1,
        "errors": [
          "consumer_acknowledgment"
        ]
      }
    },
    {
      "name": "Unexplained candidate change",
      "path": [
        "approved_expected_delta_cents"
      ],
      "value": 0,
      "expected": {
        "status": "hold",
        "old_total_cents": 50000000,
        "candidate_total_cents": 30000000,
        "delta_cents": -20000000,
        "excluded_future_rows": 1,
        "errors": [
          "unexplained_delta"
        ]
      }
    },
    {
      "name": "Identical replay",
      "path": null,
      "value": null,
      "expected": {
        "status": "ready_for_review",
        "old_total_cents": 50000000,
        "candidate_total_cents": 30000000,
        "delta_cents": -20000000,
        "excluded_future_rows": 1,
        "errors": []
      }
    },
    {
      "name": "Boolean balance cannot become cents",
      "path": [
        "loans",
        0,
        "balance_cents"
      ],
      "value": true,
      "expected": {
        "status": "hold",
        "errors": [
          "invalid_input:loan.balance_cents:expected_integer"
        ]
      }
    },
    {
      "name": "Missing candidate version",
      "remove_path": [
        "candidate_version"
      ],
      "expected": {
        "status": "hold",
        "errors": [
          "missing_field:candidate_version"
        ]
      }
    }
  ]
}
