财务
Running the night audit
Closing the property's day and rolling the business date. A day can only be closed once, and an interrupted run leaves nothing half-done.
最后更新
Who this is for: Accountant and Owner — requires
backoffice.nightaudit.run. Where: Accounting → Night Audit
The night audit closes the property's business day. It takes the day's figures from the ledger, records them as a run, and rolls the business date forward by one.
It is per property, not per organisation: the screen works on the property you have selected, and each property closes on its own schedule.
重要
A day can only ever be closed once. No sequence of clicks, retries or interrupted requests can post a day's figures twice or advance the date twice past it. This is the fact to have before you read anything else on this page — and the one thing it does not mean is on the button, so read what a second press does before you make a habit of pressing twice.
What the business date is#
The business date is the day the property is operationally in, which is not the same as the day the clock is in. A charge posted at 02:00 belongs to the night that is still being worked, and the business date is what says so.
It decides two things:
- Every folio-sourced ledger entry is dated with it — so a day's postings group under the day the audit later closes, rather than scattering across midnight.
- The arrivals and departures lists key off it — see check a guest in. Rolling the date is what turns tomorrow's arrivals into today's.
The card at the top of the screen shows the current one. That is the day a run will close.
Run the night audit#
- Check the Current business date is the day you mean to close.
- Select Run night audit.
The date on the card advances by one, and a row appears at the top of Recent runs for the day just closed, carrying its Room, Tax, Revenue and Payments totals.
That is the whole procedure. There is no confirmation step, which is why step 1 is a step.
What a second press does#
The button always closes whatever the card currently says. So once a run has succeeded and the card has moved on, pressing it again does not re-close the day you just closed — it closes the next one.
That is not a bug and it is not dangerous, but it is not "nothing" either: you would be closing a day the property has not finished working. Read the card, then press.
What the guarantee protects is the other kind of repetition — the same day being closed twice, which is what a retried request, a double-submitted form or a reconnecting client would otherwise cause. Two mechanisms, independently:
- Recording the run. One run row per property per date, enforced at the database. A second attempt on the same date writes nothing and reads the existing row back — it is marked re-run in the list when that happens.
- Rolling the date. The advance only fires when the stored date still equals the day being closed. Once it has moved, the same instruction matches nothing.
There is also nothing to duplicate even in principle, because the audit posts no journal entries. Room and tax charges were already posted by the folio when they were charged; the audit reads the day out of the journal and stores the totals. A close is a summary, not a posting.
If a run is interrupted#
A power cut, a dropped connection, a browser closed mid-request — the anxious cases.
The whole run is one database transaction. It either completes or leaves nothing behind. There is no state in which the day is half-closed: you will not find a run recorded against a date that did not advance, or a date that advanced with no run behind it.
So the recovery is always the same, and it starts by looking rather than pressing:
- Reload the screen.
- Read Current business date.
- It has advanced — the run completed. The row is in Recent runs. Nothing to do, and pressing the button now would close another day.
- It is unchanged — the run did not happen at all. Select Run night audit.
注意
A day that never gets closed is not corrupt — it is just long. The property keeps working in it, ledger entries keep being dated with it, and arrivals and departures keep keying off it, which is usually how somebody notices before the accountant does.
Read the recent runs#
Each row is one closed day, newest first:
| Column | What it is |
|---|---|
| Date | The business date that was closed |
| Room | Room revenue booked to 4000 that day |
| Tax | Tax booked to 2100 that day |
| Revenue | Room plus other revenue — the day's earnings |
| Payments | Net cash into 1000 — the day's takings |
Revenue and Payments are different numbers, and they should be. Revenue is what the hotel earned that day; payments is what it collected, whatever it was for. A guest on a five-night stay earns revenue nightly and pays once; an OTA remittance is cash with no revenue behind it at all, because that revenue was earned weeks ago. If the two ever match exactly, that is the coincidence, not the rule.
These stored totals are the daily report — see daily and period reports.
What's next#
- Daily and period reports — reconciling a run's figures back to the journal
- The ledger — what the audit reads, and what dates it by the business date
- Check a guest in — the list on the other side of the roll