The occupancy report says the hotel ran at 80% last month. The bank balance says it was a thin month. Both can be true at the same time. Somewhere between the restaurant, the store room and the petty-cash tin, money left the building without a record. This post shows where hotel money leaks, the daily routine that catches it, and what your software should record for you.
Revenue is not profit until every cost is written down
Revenue is what guests paid you. Profit is what stays after every cost, including the costs nobody wrote down. Your accountant can only work with what reached the books. A cost with no record doesn't disappear. It turns up later as cash that doesn't match, or stock that isn't on the shelf.
That is how a busy hotel can still have a poor year. Full rooms hide small losses. A ₹600 dinner here and a ₹1,500 repair there feel too small to chase on a busy day. Added up over a year, they are real money, as the example further down shows.
Five places hotel money leaks every week
Most leaks are not theft. They are gaps, like the one between the restaurant and the desk, or between the drawer and the books. Here are five common ones, and what closes each gap.
The dinner that never reached the folio
Room 204 orders dinner at 10 pm. The KOT (kitchen order ticket) goes to the kitchen and the food goes up. The bill stays on the restaurant counter. At 7 am the guest pays for the room and leaves, and nobody asks about dinner.
The fix is one bill for the whole stay. In ZimmerStack, a room-service order sits on the guest's folio, the running bill for the stay, from the moment the KOT fires. Once it's charged to the room, nobody can quietly edit it, and the desk collects it with the stay. Checkout won't close the last room of a booking while a food bill on it is unpaid. The desk can also raise a restaurant order from the guest's booking sheet, so the kitchen and the folio both get it.
Discounts and voids nobody approved
A friend of the manager gets 20% off. A KOT is voided after the food already went out. Each one looks like a small favour. The fix is to decide ahead of time who may do what, and to make every exception carry a reason.
ZimmerStack keeps these decisions on one permissions page. Removing food from a bill, reopening a closed bill, cancelling a payment and changing a tariff are each set by staff role. For each one you choose: allowed, the staff member's own passcode, a manager's PIN, your approval, or hidden. You can also make cancellations and restaurant exceptions require a reason from a list you set. Reports then show every deleted item, discount and void, with the name of the person behind it.
Cash that nobody counts against the system
Most desks count the drawer. Fewer compare the count with what the system says should be there. A count with nothing to compare against catches nothing. Count at every shift change, write down the difference, and ask about any gap the same day, while people still remember.
In the ZimmerStack PMS, the daybook shows the day's opening balance, every payment in and every voucher out, and the closing balance. That closing figure is the number your count should match.
Purchases without bills
The plumber is paid ₹1,500 from the drawer. There is no bill, only a slip that says "plumber". Next month there are three slips like it. Without bills, you can't tell a real repair from a padded one.
Make the rule plain: no bill, no payment from the drawer. In ZimmerStack, staff enter each expense as a voucher in the daybook, with its type and amount. You can set a voucher type to require a photo of the bill before it saves. The owner's admin app can also alert your phone each time someone raises a voucher.
Stock that walks
Say the kitchen bought 20 kg of chicken this week, and the dishes it sold should have used 12 kg. Some of the other 8 kg is waste, and some waste is normal. What matters is knowing the size of the gap, every week.
Compare stock used with what your sales say the kitchen should have used. A gap that grows month after month needs a look. ZimmerStack's Stores workspace keeps your item list, your store rooms, purchases and goods received, and a stock ledger. Every movement is its own line, and a mistake is fixed with a reversal, never an eraser.
What small leaks add up to
Worked example
A 20-room hotel with a restaurant
The numbers below are made up for illustration. Each line is a leak most owners will recognise, so put your own figure in each row.
| Leak | In this example | Per month |
|---|---|---|
| Room-service bills never charged to the room | 12 bills × ₹600 | ₹7,200 |
| Discounts nobody approved | 20 bills × ₹150 | ₹3,000 |
| Cash short, never explained | 10 days × ₹500 | ₹5,000 |
| Repairs and purchases with no bill | 4 × ₹2,000 | ₹8,000 |
| Kitchen stock unaccounted for | at cost | ₹10,000 |
| Total | ₹33,200 |
In this example, the hotel loses ₹33,200 a month, or ₹3,98,400 a year. No single day looked bad enough to chase.
₹33,200
leaking every month in this example
₹3,98,400
the same small leaks over one year
A daily routine that catches leaks
Leaks happen daily, so the checks must be daily too. A short routine done every day beats a big audit once a year.
- Let the day close. The night audit should close the day itself, before first light, and lock the day's totals. Each morning, read what yesterday closed at.
- Count the cash at every shift change. Count against the system's figure, not against the last count. Write down every difference, even ₹50.
- Enter expenses on the day they happen. Each one gets a type, an amount, a name and a bill.
- Read the exceptions. Check voids, deleted items, discounts and unpaid closed bills. Ask about anything you don't recognise that same day.
- Review the week. Once a week, compare expenses and stock with the week before, and look at what changed.
Month-end should be a download for your accountant
Your accountant needs GST-correct invoices, registers that match your closed days, and every expense in the right ledger. If they get a bag of paper instead, you pay them to re-type your month. Our guide to GST for Indian hotels covers the slabs and the registers.
ZimmerStack produces GST invoices and GST reports for both rooms and the restaurant. Expense vouchers post to ledgers mapped to your chart of accounts, and the month exports for Tally. A bank reconciliation report shows whether the books match the bank statement. Your accountant imports the month instead of rebuilding it.
Every rupee that leaves the hotel should leave a bill and a name behind it.
What your software should do without being asked
Whatever system you use, hold it to this list.
- Put every restaurant bill charged to a room on that guest's folio, from the moment the KOT fires.
- Refuse to close a stay while a bill on it is unpaid, unless someone with the right to override does it.
- Ask for a reason, and the right person, before a void, a discount or a bill correction.
- Lock each day's totals when the day closes, so yesterday can't quietly change.
- Keep a name and a time on every edit, payment and expense.
- Export clean books for your accountant.
If your current setup can't do most of this, your leaks are being managed by memory. The restaurant POS page shows how a KOT travels to the folio. For questions to put to any vendor, see how to choose a hotel PMS.
See the owner's viewSee how expense vouchers, approvals, ledgers and the money reports sit together in the owner's admin app.See the admin appWhat to do this week
- Pick one fixed moment for the cash count at each shift change, and start writing down the difference.
- Make one rule for expenses: no bill, no payment from the drawer. Tell everyone who handles cash.
- Pull last month's room-service bills and check each one against a guest folio.
- Write down who may give a discount, and how much, then check last week's discounts against it.
- Count your five biggest kitchen items this Monday and next Monday, and work out stock used.