Give each amenity its own fulfilment grain
Synthetic reservation has two rooms for three nights, six confirmed room-night assignments. The local plan supplies two water bottles per room-night and one arrival pack per reservation. No items have yet been issued. Demand is twelve bottles and one pack, not three-night-only water or two room-based packs.
| Constraint | Required record | Example decision rule |
|---|---|---|
| Room-night unit | Confirmed room assignment × night | 2 rooms × 3 nights = 6 |
| Water rule | 2 bottles per room-night | 6 × 2 = 12 bottles |
| Arrival-pack rule | 1 per reservation ID | Same reservation → 1 pack |
Test different quantities from the same stay
| Case | Input | Expected decision |
|---|---|---|
| Original plan | 6 room-nights / 1 reservation | 12 bottles / 1 pack |
| One room removed for last night | 5 room-nights / same reservation | 10 bottles / 1 pack |
- Read confirmed room-night assignments
- Read each amenity’s unit
- Calculate separate demand
- Record actual issue separately
A cancelled room-night must leave the demand set; it cannot remain merely because the reservation ID is still active.
After the last-night room cancellation, what are demand and issued quantities?
Show the worked answer
Demand is ten bottles and one pack. Issued quantity remains zero for both because this fixture has no issue record.
Include unit and reservation/room-night references in the export so changing one room-night does not accidentally duplicate the arrival pack.