{
  "item": {
    "item_id": "RI-8854989",
    "period": "2026-08",
    "booking_id": "RS-8854989",
    "duty_id": "D-514989",
    "entity": "ASL Airlines France",
    "legal_entity": "ASL Airlines France SA",
    "crew_name": "J. Delacroix",
    "station": "MRS",
    "property_id": "P-131",
    "hotel": "Best Western Marseille Airport",
    "check_in": "2026-08-02",
    "check_out": "2026-08-06",
    "nights": 4,
    "booking_amount": 1184.82,
    "card_auth": 1209.82,
    "card_settled": 1215.8,
    "folio_amount": 1215.8,
    "variance": 0,
    "variance_pct": 0,
    "variance_category": null,
    "match_state": "matched",
    "exception_type": null,
    "state": "final",
    "resolution": "legitimate",
    "opened_at": "2026-08-06T02:10:00Z",
    "resolved_at": "2026-08-08T11:00:00Z",
    "final_at": "2026-09-05T00:01:00Z",
    "final_due_at": "2026-09-05",
    "age_days": 1,
    "auto_resolved": 1
  },
  "cards": [
    {
      "event_id": "CE-8701",
      "item_id": "RI-8854989",
      "booking_id": "RS-8854989",
      "period": "2026-08",
      "vcc_ref": "VCC-8854989",
      "event_type": "issue",
      "amount": null,
      "currency": "EUR",
      "occurred_at": "2026-07-31T09:00:00Z",
      "valid_from": "2026-08-02",
      "valid_to": "2026-08-09",
      "mcc_lock": "7011 lodging",
      "decline_reason": null,
      "issuer_ref": "CNF-854989",
      "source_ref": "feed-2026-08-8701"
    },
    {
      "event_id": "CE-8702",
      "item_id": "RI-8854989",
      "booking_id": "RS-8854989",
      "period": "2026-08",
      "vcc_ref": "VCC-8854989",
      "event_type": "auth",
      "amount": 1209.82,
      "currency": "EUR",
      "occurred_at": "2026-08-02T14:20:00Z",
      "valid_from": "2026-08-02",
      "valid_to": "2026-08-09",
      "mcc_lock": "7011 lodging",
      "decline_reason": null,
      "issuer_ref": "CNF-854989",
      "source_ref": "feed-2026-08-8702"
    },
    {
      "event_id": "CE-8703",
      "item_id": "RI-8854989",
      "booking_id": "RS-8854989",
      "period": "2026-08",
      "vcc_ref": "VCC-8854989",
      "event_type": "capture",
      "amount": 1215.8,
      "currency": "EUR",
      "occurred_at": "2026-08-06T08:05:00Z",
      "valid_from": "2026-08-02",
      "valid_to": "2026-08-09",
      "mcc_lock": "7011 lodging",
      "decline_reason": null,
      "issuer_ref": "CNF-854989",
      "source_ref": "feed-2026-08-8703"
    },
    {
      "event_id": "CE-8704",
      "item_id": "RI-8854989",
      "booking_id": "RS-8854989",
      "period": "2026-08",
      "vcc_ref": "VCC-8854989",
      "event_type": "settle",
      "amount": 1215.8,
      "currency": "EUR",
      "occurred_at": "2026-08-08T03:00:00Z",
      "valid_from": "2026-08-02",
      "valid_to": "2026-08-09",
      "mcc_lock": "7011 lodging",
      "decline_reason": null,
      "issuer_ref": "CNF-854989",
      "source_ref": "feed-2026-08-8704"
    }
  ],
  "folio": [
    {
      "line_id": "FL-RI-8854989-c0",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-02",
      "line_type": "fee",
      "description": "City / tourist tax",
      "amount": 3.3,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-a0",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-02",
      "line_type": "incidental",
      "description": "Parking",
      "amount": 30.98,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-r0",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-02",
      "line_type": "room",
      "description": "Room charge",
      "amount": 233.14,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-v0",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-02",
      "line_type": "tax",
      "description": "VAT 10%",
      "amount": 23.31,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-c1",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-03",
      "line_type": "fee",
      "description": "City / tourist tax",
      "amount": 3.3,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-r1",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-03",
      "line_type": "room",
      "description": "Room charge",
      "amount": 269.66,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-v1",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-03",
      "line_type": "tax",
      "description": "VAT 10%",
      "amount": 26.97,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-c2",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-04",
      "line_type": "fee",
      "description": "City / tourist tax",
      "amount": 3.3,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-r2",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-04",
      "line_type": "room",
      "description": "Room charge",
      "amount": 270.38,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-v2",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-04",
      "line_type": "tax",
      "description": "VAT 10%",
      "amount": 27.04,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-c3",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-05",
      "line_type": "fee",
      "description": "City / tourist tax",
      "amount": 3.3,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-r3",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-05",
      "line_type": "room",
      "description": "Room charge",
      "amount": 291.93,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    },
    {
      "line_id": "FL-RI-8854989-v3",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "line_date": "2026-08-05",
      "line_type": "tax",
      "description": "VAT 10%",
      "amount": 29.19,
      "disputed": 0,
      "received_at": "2026-08-07T07:00:00Z",
      "source_ref": "folio-8854989",
      "folio_id": "folio-8854989"
    }
  ],
  "events": [
    {
      "event_id": "RE-RI-8854989-1",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "seq": 1,
      "occurred_at": "2026-08-06T02:10:00Z",
      "event": "opened",
      "actor": "match-engine",
      "actor_type": "rule",
      "note": "Stay complete; reconciliation opened"
    },
    {
      "event_id": "RE-RI-8854989-2",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "seq": 2,
      "occurred_at": "2026-08-08T07:00:00Z",
      "event": "evidence_received",
      "actor": "folio-ingest",
      "actor_type": "rule",
      "note": "Folio received from property"
    },
    {
      "event_id": "RE-RI-8854989-3",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "seq": 3,
      "occurred_at": "2026-08-08T07:05:00Z",
      "event": "matched",
      "actor": "match-engine",
      "actor_type": "rule",
      "note": "Booking, card and folio agree within tolerance"
    },
    {
      "event_id": "RE-RI-8854989-4",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "seq": 4,
      "occurred_at": "2026-08-19T11:00:00Z",
      "event": "resolved",
      "actor": "match-engine",
      "actor_type": "rule",
      "note": "Resolution: legitimate"
    },
    {
      "event_id": "RE-RI-8854989-5",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "seq": 5,
      "occurred_at": "2026-09-05T00: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-8854989-5731",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "legal_entity": "ASL Airlines France SA",
      "entry_date": "2026-08-02",
      "entry_type": "pending",
      "amount": 1209.82,
      "balance_effect": -1209.82,
      "description": "Authorization held — Best Western Marseille Airport",
      "posted_from_period": null
    },
    {
      "entry_id": "LE-RI-8854989-5732",
      "item_id": "RI-8854989",
      "period": "2026-08",
      "legal_entity": "ASL Airlines France SA",
      "entry_date": "2026-08-08",
      "entry_type": "posted",
      "amount": 1215.8,
      "balance_effect": 0,
      "description": "Charge posted — Best Western Marseille Airport",
      "posted_from_period": null
    }
  ],
  "nights": [
    {
      "night": "2026-08-02",
      "room_net": 233.14,
      "vat_amount": 23.31,
      "city_tax": 3.3,
      "ancillaries": 30.98,
      "rate_paid": 259.75,
      "hotel": "Best Western Marseille Airport",
      "duty_reason": "overnight",
      "night_status": "occupied",
      "vcc_ref": "VCC-8854989",
      "checkin_time": "01:15",
      "checkout_time": "10:00"
    },
    {
      "night": "2026-08-03",
      "room_net": 269.66,
      "vat_amount": 26.97,
      "city_tax": 3.3,
      "ancillaries": 0,
      "rate_paid": 299.93,
      "hotel": "Best Western Marseille Airport",
      "duty_reason": "overnight",
      "night_status": "occupied",
      "vcc_ref": "VCC-8854989",
      "checkin_time": "01:15",
      "checkout_time": "10:00"
    },
    {
      "night": "2026-08-04",
      "room_net": 270.38,
      "vat_amount": 27.04,
      "city_tax": 3.3,
      "ancillaries": 0,
      "rate_paid": 300.72,
      "hotel": "Best Western Marseille Airport",
      "duty_reason": "overnight",
      "night_status": "occupied",
      "vcc_ref": "VCC-8854989",
      "checkin_time": "01:15",
      "checkout_time": "10:00"
    },
    {
      "night": "2026-08-05",
      "room_net": 291.93,
      "vat_amount": 29.19,
      "city_tax": 3.3,
      "ancillaries": 0,
      "rate_paid": 324.42,
      "hotel": "Best Western Marseille Airport",
      "duty_reason": "standby",
      "night_status": "occupied",
      "vcc_ref": "VCC-8854989",
      "checkin_time": "01:15",
      "checkout_time": "10:00"
    }
  ],
  "booking": {
    "booking_id": "RS-8854989",
    "layover_id": "L-514990",
    "duty_id": "D-514989",
    "crew_id": "FRA-1001",
    "entity_id": "ASL Airlines France",
    "legal_entity": "ASL Airlines France SA",
    "station": "MRS",
    "property_id": "P-131",
    "vendor_id": "VEN-04",
    "contract_id": null,
    "revenue_model": "vendor_commission",
    "channel": "automation",
    "requested_by": "rule:roster-watch",
    "created_at": "2026-07-30T01:15:00Z",
    "check_in": "2026-08-02",
    "check_out": "2026-08-06",
    "nights": 4,
    "room_type": "standard",
    "occupancy": 1,
    "lead_time_hours": 72,
    "confirmation_ref": "CNF-854989",
    "cancellation_deadline": null,
    "status": "completed",
    "period": "2026-08",
    "total_amount": 1231.77
  },
  "duty": {
    "duty_id": "D-514989",
    "crew_id": "FRA-1001",
    "entity_id": "ASL Airlines France",
    "roster_ref": "AIMS/202608/514989",
    "duty_type": "overnight",
    "flight_no": "FPO436",
    "dep_station": "LYS",
    "arr_station": "MRS",
    "duty_start_utc": "2026-08-01T09:40:00Z",
    "duty_end_utc": "2026-08-02T00:22:00Z",
    "duty_hours": 7.02,
    "block_hours": 4.01,
    "source_system": "aims",
    "published_at": "2026-07-21T06:00:00Z",
    "version": 1
  },
  "layover": {
    "layover_id": "L-514990",
    "duty_in": "D-514989",
    "duty_out": "D-514989R",
    "crew_id": "FRA-1001",
    "entity_id": "ASL Airlines France",
    "station": "MRS",
    "rest_starts_utc": "2026-08-02T00:22:00Z",
    "rest_ends_utc": "2026-08-06T06:00:00Z",
    "rest_hours_available": 79.88,
    "sleep_opportunity_hours": 77.65,
    "transfer_in_minutes": 18,
    "transfer_out_minutes": 18,
    "nights": 4,
    "disrupted": 0,
    "period": "2026-08"
  },
  "evaluation": {
    "eval_id": "PE-14990",
    "period": "2026-08",
    "booking_id": "RS-8854989",
    "item_id": "RI-8854989",
    "ruleset": "2026.2",
    "evaluated_at": "2026-07-30T01:12:00Z",
    "channel": "automation",
    "traveller_type": "crew",
    "entity": "ASL Airlines France",
    "station": "MRS",
    "outcome": "soft_breach",
    "breach_count": 3,
    "cost_impact": 109.25,
    "self_served": 0
  },
  "approval": {
    "approval_id": "PA-3081",
    "eval_id": "PE-14990",
    "period": "2026-08",
    "approver": "P. Costa",
    "approver_role": "travel_desk",
    "reason": "Single-night stay, sourcing not economic",
    "approved_at": "2026-07-30T01:13:48Z",
    "second_approver": null
  },
  "breaches": [
    {
      "breach_id": "PB-7739",
      "eval_id": "PE-14990",
      "period": "2026-08",
      "rule_id": "R-PREF",
      "layer": "commercial",
      "severity": "approve",
      "observed": "Booked away from preferred order",
      "limit_value": "preferred order",
      "cost_impact": 28.3,
      "resolved": "approved",
      "name": "Preferred property order",
      "authority": "Routespring",
      "reference": null
    },
    {
      "breach_id": "PB-7740",
      "eval_id": "PE-14990",
      "period": "2026-08",
      "rule_id": "R-SOURCE",
      "layer": "commercial",
      "severity": "warn",
      "observed": "GDS / last-room",
      "limit_value": "contract > bedbank > GDS",
      "cost_impact": 49.97,
      "resolved": "auto_allowed",
      "name": "Inventory order",
      "authority": "Routespring",
      "reference": null
    },
    {
      "breach_id": "PB-7741",
      "eval_id": "PE-14990",
      "period": "2026-08",
      "rule_id": "R-ANC",
      "layer": "commercial",
      "severity": "warn",
      "observed": "30.98 EUR uncovered",
      "limit_value": "breakfast, wifi",
      "cost_impact": 30.98,
      "resolved": "auto_allowed",
      "name": "Covered ancillaries",
      "authority": "ASL",
      "reference": null
    }
  ],
  "changes": [],
  "card": {
    "vcc_ref": "VCC-8854989",
    "booking_id": "RS-8854989",
    "item_id": "RI-8854989",
    "period": "2026-08",
    "issued_at": "2026-07-30T01:15:00Z",
    "issuer": "Routespring card program",
    "limit_amount": 1256.77,
    "currency": "EUR",
    "valid_from": "2026-08-02",
    "valid_to": "2026-08-13",
    "grace_days": 7,
    "mcc_lock": "7011 lodging",
    "merchant_lock": "Best Western Marseille Airport",
    "auth_count": 4,
    "settled_amount": 624.35,
    "status": "settled",
    "closed_at": "2026-08-08T03:00:00Z"
  },
  "folioDoc": {
    "folio_id": "folio-8854989",
    "booking_id": "RS-8854989",
    "item_id": "RI-8854989",
    "property_id": "P-131",
    "period": "2026-08",
    "folio_number": "MRS260802-7396",
    "guest_name": "J. Delacroix",
    "check_in": "2026-08-02",
    "check_out": "2026-08-06",
    "issued_at": "2026-08-06T09:30:00Z",
    "received_at": "2026-08-07T07:00:00Z",
    "received_via": "pms_feed",
    "currency": "EUR",
    "stated_total": 1215.8,
    "line_count": 13,
    "days_to_receive": 1.29,
    "disputed": 0
  }
}