Your Booking System and Your Accounts Disagree. Which One Is Wrong?
Two numbers, both confident
Your booking system says you took 67,900 this year. Your accounts say 64,210. Neither is obviously wrong, both were produced by software that does not make arithmetic errors, and the difference is 3,690 that you cannot explain.
This is the single most common accounting complaint we hear from hosts, and it is almost never a bug. It is four ordinary things happening at once:
- Draft invoices. Raised in the booking system, not yet approved, therefore deliberately not in the books. Real income, not yet accounted income.
- Bookings with no invoice at all. A cash payment, a manual entry, a booking created before you connected your ledger. In one system, absent from the other.
- Invoices that drifted. The booking changed after the invoice was approved — a date moved, a guest was added, a discount applied — and nothing went back to fix the approved invoice.
- Timing. A December check-in invoiced in January belongs to different months depending on which system you ask.
None of these is an error. All four produce a difference. And if you cannot separate them, the only honest thing you can say at year-end is “roughly”.
Month by month, side by side
Ten months agree to the cent. Two do not, and those two are the entire job.
March, −2,250. Three approved invoices, one booking that was extended after approval. August, −1,440. A cancellation credited in the ledger that the booking system still counts as income.
That is a twenty-minute afternoon, not a week of ticking. The value is not that the software found the difference — a spreadsheet finds the difference. It is that the difference is attached to the bookings that caused it, so you can open them.
| Airflow | Your accounts | Difference | |
|---|---|---|---|
| Approved and matching | 64,210 | 64,210 | — |
| March discrepancy | 6,400 | 4,150 | −2,250 |
| August discrepancy | 8,800 | 7,360 | −1,440 |
| Year total | 67,900 | 64,210 | −3,690 |
Example figures from a demo account, not a real customer.
Three decisions that make this trustworthy
Approved only, by default. A draft invoice is not in your books, and a comparison that counts it is comparing your ledger against something your ledger has correctly never heard of. Drafts are shown separately, counted separately, and never silently folded into the total.
The comparison uses no exchange rate. Both sides are already in your accounting currency — the invoice total is what Airflow actually put on the invoice, and the ledger figure comes back in the same currency — so the difference is a native subtraction. A foreign-currency booking cannot manufacture a discrepancy out of a rate that moved between the two reads. Converted figures are shown beside them for reference and are never the thing being subtracted.
Bookings with no invoice are called out, not averaged away. If eleven bookings have no invoice, they are in neither figure, and the page says so in words. There is no invoiced amount to compare, and pretending otherwise would make the reconciliation look better and be worth less.
What “out of sync” actually means
There is a specific warning for invoices that no longer match their booking. It does not mean the invoice is wrong — it means the booking changed after the invoice was approved, and somebody now has to decide which version is true.
Software should not make that call. An extended stay might need a supplementary invoice; a corrected guest count might need nothing at all; a cancellation needs a credit note and a conversation. So the page counts them, names them, links to them, and stops.
What these reports need. Every chart here is built from bookings Airflow can see. A channel it cannot read is a channel missing from the picture, and a report with a hole in it is worse than no report — so the pages say what they are missing rather than quietly averaging it away. The profit and reconciliation views need a connected ledger; without one you get income, not profit.
See it on your own numbers
Everything above is one demo account. The version that matters is the one built from your bookings, and it takes about twenty minutes to get there:
- Create an account — start free; a card is needed at sign-up.
- Import your history. Paste your Airbnb or Booking.com iCal link, or upload a CSV export. Past bookings come in too, which is what makes the first chart worth looking at on day one rather than in six months.
- Connect your accounting, if you keep books in Xero. That is what turns the income charts into profit charts, and it is what makes the reconciliation view work at all.
- Open Stats. Property tab for one place, Overview for the portfolio.
Related: Import Airbnb Booking History into Xero, What Happens to Your Invoice When a Guest Cancels, and Multi-Currency Airbnb Income in Xero.