One ledger for every report
Why the hotel system's revenue reports read from the general ledger, and why reconciliation runs as a dry run first.
A hotel system has many places that know about money: reservations, the front office, the restaurant and bar, stock, and the accounts. When each report adds up its own numbers, two reports can describe the same night differently, and nobody can say which one is right.
Most of my work on the hotel system has been in that part: accounting, reports and reservations.
The ledger is the source
The general ledger became the single source for revenue reports, with tests. A report is a view of the ledger, not a second calculation, so it cannot drift away from the accounts.
Two smaller decisions follow from the same idea. Journal entries sit under vouchers, and opening balances link to ledger entities, so every figure can be traced back to where it came from.
Reconcile as a dry run first
Reconciliation scripts for debtors, agents and creditors run as a dry run first, followed by a trial balance check. On a system that is already running at hotels, a script that changes balances should show what it would do before it does it.
Cost when stock is issued
Inventory cost is recognised when stock is issued rather than when it is bought. A kitchen buys in bulk and uses it over days, so cost belongs to the day the stock is actually used.