Today's run
The Monday routine: Pam built this week's report and insights at 07:44, in Claude Code, with her rules and checks. A scheduled job (code, not AI) put this note here at 13:10. Nobody pressed a button. Fictional data from an OPERA Cloud test hotel.
Checks: report format passed, insights format passed.
Next 7 nights
| Night | Occupancy on the books | Rooms available | Below 63.0% |
|---|---|---|---|
| 2027-10-18 | 60.4% | 490 | Yes |
| 2027-10-19 | 66.0% | 421 | |
| 2027-10-20 | 64.8% | 436 | |
| 2027-10-21 | 63.4% | 453 | |
| 2027-10-22 | 63.5% | 451 | |
| 2027-10-23 | 62.7% | 461 | Yes |
| 2027-10-24 | 85.0% | 186 |
Below the line: 2027-10-18, 2027-10-23. These nights go to the rates routine.
Insights
- The next 7 days average 66.6% occupancy on the books. The last 7 days averaged 57.3%. That is up 9.3 points. Most of the gain is Sunday 2027-10-24 at 85.0%. The other six days sit between 60.4% and 66.0%. The 85.0% day uses a derived availability number (see the data note insight). Look at: Read the gain as one strong Sunday, not a strong week. Confirm the Sunday number before you act on it. Evidence: outputs/report.json: last_7_days (occupancy_avg 0.5727, next_7_days_occupancy_avg 0.6656, change_vs_last_7_days 0.0929); outputs/report.json: row 2027-10-24 (hotel-001.json, occupancy[13]; derived from inventory)
- Two dates are below the 63% threshold: Monday 2027-10-18 at 60.4% and Saturday 2027-10-23 at 62.7%. Group business does not help these dates. On 2027-10-18 the group grid shows 2 rooms allocated and 0 picked up. On 2027-10-23 it shows no group rooms. Today is already the business date, so 2027-10-18 has little room to move. Look at: Saturday 2027-10-23: 461 rooms are still available. Check open rate restrictions and late-booking channels for that night. Evidence: outputs/report.json: row 2027-10-18 (hotel-001.json, occupancy[7]; availability[0]); outputs/report.json: row 2027-10-23 (hotel-001.json, occupancy[12]; availability[5])
- Group pickup is 0 of 2 allocated rooms on 2027-10-18 and 0 of 2 on 2027-10-19. No other date has group rooms in the grid. One block (BLOCK-001) holds these rooms and nothing is picked up. The group grid covers only 1 of the 25 blocks listed in the export, so the real group picture is wider than this. Look at: Ask sales whether BLOCK-001 should release its rooms. Ask why the export has a grid for only 1 of 25 blocks before trusting any group number. Evidence: outputs/report.json: row 2027-10-18 (hotel-001.json, occupancy[7]; availability[0]); outputs/report.json: row 2027-10-19 (hotel-001.json, occupancy[8]; availability[1]); outputs/normalized/groups.csv: rows BLOCK-001 2027-10-18 and 2027-10-19; outputs/report.json: warnings[1]
- 45 rooms have open maintenance records ahead of the busiest date, Sunday 2027-10-24 at 85.0% with 186 rooms available. Every maintenance record in the export is still unresolved. Many were created in 2026, more than a year before the business date. Some rooms have dozens of open records. The export has no end dates, so the same 45 rooms count against every date. Look at: Ask engineering which of the 45 rooms are truly out of order on 2027-10-24, and close the old records that are already fixed. Evidence: outputs/report.json: row 2027-10-24 (hotel-001.json, occupancy[13]; derived from inventory); outputs/normalized/maintenance.csv: all rows (status UnResolved, created from 2026-04-22 to 2027-10-13); outputs/report.json: warnings[2]
- Data note: the 2027-10-24 numbers are less certain than the other dates. The export has no hotel-level availability row for 2027-10-24. The script derived rooms available (186) from the inventory and the occupancy. The other six dates come from a real availability row. Look at: Check 2027-10-24 in OPERA before quoting the 85.0% or the 9.3 point gain to anyone. Evidence: outputs/report.json: warnings[0]; outputs/report.json: row 2027-10-24 (hotel-001.json, occupancy[13]; derived from inventory)