What the books noticed: anomaly alerts
Rules, not models, read the live books every day and raise an alert with its evidence — a near-duplicate bill, an odd manual journal, a cashier's voids, a vendor's price drift, a bad GSTIN, an uncharged room, an unmatched bank line. Nothing posts by itself.
Reports → Anomaly alerts. Once a day, and on demand, a set of rules reads the books and raises an alert for what looks wrong — a row with its evidence, that a person acknowledges, resolves or dismisses. No alert changes a ledger: the rule is that nothing posts without a person.

The rules
- Duplicate bill — two live vendor bills, same vendor and amount, within thirty days, different numbers. (The exact repeat is refused at entry; this catches the near one.)
- Manual journal — a hand-posted journal that is a large round number, or posted in the small hours, or far above the entity's usual.
- Cashier risk — a cashier whose voids or discounts in a day are above the house's threshold.
- Vendor price drift — a purchase line more than a fifth above the average of the last five for the same item and vendor.
- GSTIN invalid — a vendor's or a company's GST number that fails its format or its checksum.
- Revenue leakage — a room occupied on a past day with no room charge posted that day.
- Reconciliation gap — a bank statement line unmatched for over a week.
- Sensitive master changed — a vendor, a chart account or a bank account edited: the books notice when the data behind the money moves.
A rule that fires again on the same thing refreshes the row rather than piling up duplicates; an open alert whose rule stops firing is resolved by the scan as *no longer seen*.
Two suggestions, read-only
Accrual suggestions (Reports): vendors that bill most months and have not this month — what to accrue before the close. And when a vendor bill is entered, the accounts that vendor's last five bills used are offered first.
What it is not
Not a model, and not an action. When a hotel has enough history the same rows can train one; the rules come first, and stay.