{
  "item": {
    "item_id": "RI-8854218",
    "period": "2026-08",
    "booking_id": "RS-8854218",
    "duty_id": "D-514218",
    "entity": "ASL Airlines Belgium",
    "legal_entity": "ASL Airlines Belgium NV",
    "crew_name": "R. Dubois",
    "station": "JNB",
    "property_id": "P-124",
    "hotel": "Protea OR Tambo",
    "check_in": "2026-08-13",
    "check_out": "2026-08-17",
    "nights": 4,
    "booking_amount": 1084.18,
    "card_auth": 1109.18,
    "card_settled": null,
    "folio_amount": null,
    "variance": 0,
    "variance_pct": 0,
    "variance_category": null,
    "match_state": "unmatched",
    "exception_type": "card_never_charged",
    "state": "final",
    "resolution": "disputed_recovered",
    "opened_at": "2026-08-17T02:10:00Z",
    "resolved_at": "2026-08-21T11:00:00Z",
    "final_at": "2026-09-16T00:01:00Z",
    "final_due_at": "2026-09-16",
    "age_days": 11,
    "auto_resolved": 0
  },
  "cards": [
    {
      "event_id": "CE-5616",
      "item_id": "RI-8854218",
      "booking_id": "RS-8854218",
      "period": "2026-08",
      "vcc_ref": "VCC-8854218",
      "event_type": "issue",
      "amount": null,
      "currency": "EUR",
      "occurred_at": "2026-08-11T09:00:00Z",
      "valid_from": "2026-08-13",
      "valid_to": "2026-08-20",
      "mcc_lock": "7011 lodging",
      "decline_reason": null,
      "issuer_ref": "CNF-854218",
      "source_ref": "feed-2026-08-5616"
    },
    {
      "event_id": "CE-5617",
      "item_id": "RI-8854218",
      "booking_id": "RS-8854218",
      "period": "2026-08",
      "vcc_ref": "VCC-8854218",
      "event_type": "auth",
      "amount": 1109.18,
      "currency": "EUR",
      "occurred_at": "2026-08-13T14:20:00Z",
      "valid_from": "2026-08-13",
      "valid_to": "2026-08-20",
      "mcc_lock": "7011 lodging",
      "decline_reason": null,
      "issuer_ref": "CNF-854218",
      "source_ref": "feed-2026-08-5617"
    },
    {
      "event_id": "CE-5618",
      "item_id": "RI-8854218",
      "booking_id": "RS-8854218",
      "period": "2026-08",
      "vcc_ref": "VCC-8854218",
      "event_type": "expire",
      "amount": null,
      "currency": "EUR",
      "occurred_at": "2026-08-20T00:00:00Z",
      "valid_from": "2026-08-13",
      "valid_to": "2026-08-20",
      "mcc_lock": "7011 lodging",
      "decline_reason": null,
      "issuer_ref": "CNF-854218",
      "source_ref": "feed-2026-08-5618"
    }
  ],
  "folio": [],
  "events": [
    {
      "event_id": "RE-RI-8854218-1",
      "item_id": "RI-8854218",
      "period": "2026-08",
      "seq": 1,
      "occurred_at": "2026-08-17T02:10:00Z",
      "event": "opened",
      "actor": "match-engine",
      "actor_type": "rule",
      "note": "Stay complete; reconciliation opened"
    },
    {
      "event_id": "RE-RI-8854218-2",
      "item_id": "RI-8854218",
      "period": "2026-08",
      "seq": 2,
      "occurred_at": "2026-08-19T07:05:00Z",
      "event": "variance_detected",
      "actor": "match-engine",
      "actor_type": "rule",
      "note": "card never charged"
    },
    {
      "event_id": "RE-RI-8854218-3",
      "item_id": "RI-8854218",
      "period": "2026-08",
      "seq": 3,
      "occurred_at": "2026-08-21T14:00:00Z",
      "event": "disputed",
      "actor": "R. Menon",
      "actor_type": "human",
      "note": "Raised with the issuing bank"
    },
    {
      "event_id": "RE-RI-8854218-4",
      "item_id": "RI-8854218",
      "period": "2026-08",
      "seq": 4,
      "occurred_at": "2026-08-29T16:30:00Z",
      "event": "credit_received",
      "actor": "issuer-feed",
      "actor_type": "rule",
      "note": "Credit received"
    },
    {
      "event_id": "RE-RI-8854218-5",
      "item_id": "RI-8854218",
      "period": "2026-08",
      "seq": 5,
      "occurred_at": "2026-08-25T11:00:00Z",
      "event": "resolved",
      "actor": "P. Costa",
      "actor_type": "human",
      "note": "Resolution: disputed_recovered"
    },
    {
      "event_id": "RE-RI-8854218-6",
      "item_id": "RI-8854218",
      "period": "2026-08",
      "seq": 6,
      "occurred_at": "2026-09-16T00:01:00Z",
      "event": "finalised",
      "actor": "close-engine",
      "actor_type": "rule",
      "note": "30 days from last known checkout elapsed; entry immutable"
    }
  ],
  "ledger": [
    {
      "entry_id": "LE-RI-8854218-3716",
      "item_id": "RI-8854218",
      "period": "2026-08",
      "legal_entity": "ASL Airlines Belgium NV",
      "entry_date": "2026-08-13",
      "entry_type": "pending",
      "amount": 1109.18,
      "balance_effect": -1109.18,
      "description": "Authorization held — Protea OR Tambo",
      "posted_from_period": null
    },
    {
      "entry_id": "LE-RI-8854218-3717",
      "item_id": "RI-8854218",
      "period": "2026-08",
      "legal_entity": "ASL Airlines Belgium NV",
      "entry_date": "2026-08-20",
      "entry_type": "voided",
      "amount": 1109.18,
      "balance_effect": 1109.18,
      "description": "Authorization expired unused",
      "posted_from_period": null
    }
  ],
  "nights": [
    {
      "night": "2026-08-13",
      "room_net": 261.49,
      "vat_amount": 39.22,
      "city_tax": 0,
      "ancillaries": 22.56,
      "rate_paid": 300.71,
      "hotel": "Protea OR Tambo",
      "duty_reason": "irops",
      "night_status": "occupied",
      "vcc_ref": "VCC-8854218",
      "checkin_time": "05:40",
      "checkout_time": "10:00"
    },
    {
      "night": "2026-08-14",
      "room_net": 241.09,
      "vat_amount": 36.16,
      "city_tax": 0,
      "ancillaries": 25.13,
      "rate_paid": 277.25,
      "hotel": "Protea OR Tambo",
      "duty_reason": "irops",
      "night_status": "occupied",
      "vcc_ref": "VCC-8854218",
      "checkin_time": "05:40",
      "checkout_time": "10:00"
    },
    {
      "night": "2026-08-15",
      "room_net": 214.43,
      "vat_amount": 32.16,
      "city_tax": 0,
      "ancillaries": 0,
      "rate_paid": 246.59,
      "hotel": "Protea OR Tambo",
      "duty_reason": "irops",
      "night_status": "occupied",
      "vcc_ref": "VCC-8854218",
      "checkin_time": "05:40",
      "checkout_time": "10:00"
    },
    {
      "night": "2026-08-16",
      "room_net": 225.77,
      "vat_amount": 33.86,
      "city_tax": 0,
      "ancillaries": 26.82,
      "rate_paid": 259.63,
      "hotel": "Protea OR Tambo",
      "duty_reason": "irops",
      "night_status": "occupied",
      "vcc_ref": "VCC-8854218",
      "checkin_time": "05:40",
      "checkout_time": "10:00"
    }
  ],
  "booking": {
    "booking_id": "RS-8854218",
    "layover_id": "L-514219",
    "duty_id": "D-514218",
    "crew_id": "BEL-1044",
    "entity_id": "ASL Airlines Belgium",
    "legal_entity": "ASL Airlines Belgium NV",
    "station": "JNB",
    "property_id": "P-124",
    "vendor_id": "VEN-03",
    "contract_id": null,
    "revenue_model": "vendor_commission",
    "channel": "automation",
    "requested_by": "rule:roster-watch",
    "created_at": "2026-08-13T04:10:00Z",
    "check_in": "2026-08-13",
    "check_out": "2026-08-17",
    "nights": 4,
    "room_type": "standard",
    "occupancy": 1,
    "lead_time_hours": 0,
    "confirmation_ref": "CNF-854218",
    "cancellation_deadline": null,
    "status": "completed",
    "period": "2026-08",
    "total_amount": 1174.66
  },
  "duty": {
    "duty_id": "D-514218",
    "crew_id": "BEL-1044",
    "entity_id": "ASL Airlines Belgium",
    "roster_ref": "AIMS/202608/514218",
    "duty_type": "irops",
    "flight_no": "TAY166",
    "dep_station": "BRU",
    "arr_station": "JNB",
    "duty_start_utc": "2026-08-12T15:30:00Z",
    "duty_end_utc": "2026-08-13T04:19:00Z",
    "duty_hours": 10.17,
    "block_hours": 6.59,
    "source_system": "aims",
    "published_at": "2026-08-05T06:00:00Z",
    "version": 1
  },
  "layover": {
    "layover_id": "L-514219",
    "duty_in": "D-514218",
    "duty_out": "D-514218R",
    "crew_id": "BEL-1044",
    "entity_id": "ASL Airlines Belgium",
    "station": "JNB",
    "rest_starts_utc": "2026-08-13T04:19:00Z",
    "rest_ends_utc": "2026-08-17T06:00:00Z",
    "rest_hours_available": 83.61,
    "sleep_opportunity_hours": 80.3,
    "transfer_in_minutes": 46,
    "transfer_out_minutes": 52,
    "nights": 4,
    "disrupted": 1,
    "period": "2026-08"
  },
  "evaluation": {
    "eval_id": "PE-14219",
    "period": "2026-08",
    "booking_id": "RS-8854218",
    "item_id": "RI-8854218",
    "ruleset": "2026.2",
    "evaluated_at": "2026-08-13T04:07:00Z",
    "channel": "automation",
    "traveller_type": "crew",
    "entity": "ASL Airlines Belgium",
    "station": "JNB",
    "outcome": "soft_breach",
    "breach_count": 1,
    "cost_impact": 37.44,
    "self_served": 0
  },
  "approval": null,
  "breaches": [
    {
      "breach_id": "PB-7400",
      "eval_id": "PE-14219",
      "period": "2026-08",
      "rule_id": "R-SOURCE",
      "layer": "commercial",
      "severity": "warn",
      "observed": "GDS / last-room",
      "limit_value": "contract > bedbank > GDS",
      "cost_impact": 37.44,
      "resolved": "auto_allowed",
      "name": "Inventory order",
      "authority": "Routespring",
      "reference": null
    }
  ],
  "changes": [
    {
      "change_id": "BC-1710",
      "booking_id": "RS-8854218",
      "period": "2026-08",
      "occurred_at": "2026-08-13T06:12:00Z",
      "change_type": "modify_in_place",
      "source": "aims",
      "trigger": "irops",
      "modify_attempted": 1,
      "failed_reason": null,
      "hours_before_checkin": 92.4,
      "cutoff_hours": 24,
      "cost": 13.05,
      "room_lost": 0,
      "resolved_by": "automation",
      "resolved_at": null,
      "sla_breached": 0
    }
  ],
  "card": {
    "vcc_ref": "VCC-8854218",
    "booking_id": "RS-8854218",
    "item_id": "RI-8854218",
    "period": "2026-08",
    "issued_at": "2026-08-13T04:10:00Z",
    "issuer": "Routespring card program",
    "limit_amount": 1199.66,
    "currency": "EUR",
    "valid_from": "2026-08-13",
    "valid_to": "2026-08-24",
    "grace_days": 7,
    "mcc_lock": "7011 lodging",
    "merchant_lock": "Protea OR Tambo",
    "auth_count": 4,
    "settled_amount": 1158.69,
    "status": "settled",
    "closed_at": "2026-08-19T03:00:00Z"
  },
  "folioDoc": null
}