Why hotels care
Night auditors live this vignette every peak season (ops/harden/vignettes/base-15-night-audit-due-out-balance.md):
One due-out still has an open balance. Night auditor must not blindly close the day and invent a ghost checkout — and must not spend 40 minutes hunting the folio.
If audit "succeeds" while money is still on the house, occupancy and revenue flash reports lie until morning chaos.
Current state (code anchors)
NightAuditService — idempotent runs (Bug 4), posts room charges, marks due-outs
- Staff notifications on
audit.completed (errors / net revenue)
- Harden vignette base-15 defines BLOCKER vs FRICTION
- Folio balance APIs exist; preflight exception list for "due-out + balance > 0" is the gap to confirm/implement
What we need
GET (or audit dry-run) preflight exceptions before/with night audit: due-outs with non-zero balance, other locked exceptions already in product
- Night-audit UI lists them with deep links to folio / front-desk departure
- Policy switch (property setting) after operator input:
warn (default): audit may proceed, exceptions recorded on the run
block: refuse complete until acknowledged / resolved
- Do not invent "ghost checkout" — never auto-checkout to make audit green
- Tests + wire into
ops/harden checklist
Open questions (night auditors / GMs)
Acceptance criteria
How to contribute
Night auditors and people who have closed hotels in Opera/Mews/Apaleo: please comment on warn vs block. Engineers: start with read-only preflight + UI.
Search keywords: night audit, due out, open balance, day close, folio, hotel audit exceptions, front office
Why hotels care
Night auditors live this vignette every peak season (
ops/harden/vignettes/base-15-night-audit-due-out-balance.md):If audit "succeeds" while money is still on the house, occupancy and revenue flash reports lie until morning chaos.
Current state (code anchors)
NightAuditService— idempotent runs (Bug 4), posts room charges, marks due-outsaudit.completed(errors / net revenue)What we need
GET(or audit dry-run) preflight exceptions before/with night audit: due-outs with non-zero balance, other locked exceptions already in productwarn(default): audit may proceed, exceptions recorded on the runblock: refuse complete until acknowledged / resolvedops/hardenchecklistOpen questions (night auditors / GMs)
Acceptance criteria
How to contribute
Night auditors and people who have closed hotels in Opera/Mews/Apaleo: please comment on warn vs block. Engineers: start with read-only preflight + UI.
Search keywords: night audit, due out, open balance, day close, folio, hotel audit exceptions, front office