Faster night close, fewer 11pm phone calls
European hotel group · 40 properties
TL;DR
A 40-property hotel group was running nightly close-out on a chain of Excel exports, three macros, and a WhatsApp group. We replaced the chain with an event-sourced operator dashboard that ingests PMS events in real time and surfaces variances before they become escalations. Night close dropped from 38 minutes to 9. Reconciliation error rate dropped from 4.2% to 0.3%. The operator-team NPS for the closing flow jumped 28 points in the first six weeks after launch.
Night close 38 → 9 min; reconciliation errors 4.2% → 0.3%.
01
The problem
Forty properties, four PMS vendors, one Excel template, and one operations director on call until midnight every night. Variances surfaced too late — the morning after a wrong rate-plan push, not the evening of. The team didn't need more dashboards; they needed the variance to surface before the property manager could ship a wrong number.
02
The approach
We treated close-out as an event-sourcing problem, not a reporting one. The dashboard ingests PMS events on a queue, derives the night's view incrementally, and emits a variance event the moment one appears. The operator team sees a single timeline with explicit anomaly markers, no spreadsheets. We shipped weekly, paired with their head of ops on every release.
Screens
What changed
Night close (median)
9 minfrom 38 min
Reconciliation errors
0.3%from 4.2%
Ops-team NPS (flow)
+28in 6 weeks
Stack
- Next.js 15
- TypeScript
- Convex
- Resend
- Cloudflare
Team
- Andrea Ventura
- Fabio Cerami
Next case