← Builds · Worked example
What you delivered, against what you actually billed
Two systems that should match — what got booked and what got billed — reconciled row by row, so only the ones that disagree show up. Silence means everything matched. This page is a worked example of that build, with the sample workbook to download.
One week at a fictional bay-rental shop: 14 sessions on the schedule, 13 invoices out. Ten matched to the dollar and are not worth your attention. Five did not.
| Row | What happened | Flag | Impact |
|---|---|---|---|
| B-204 | Two hours played, never invoiced | NOT BILLED | −$90 |
| B-212 | One hour played, never invoiced | NOT BILLED | −$45 |
| B-203 | Three hours booked, invoice billed two | HOURS MISMATCH | −$45 |
| B-208 | Right hours, charged $50/hr instead of $45 | AMOUNT MISMATCH | +$15 |
| INV-89 | Invoice against a booking that is not on the schedule | PHANTOM | $90 at risk |
| Delivered but never collected | $165 |
$165 in one week on fourteen sessions. At that rate it is about $8,580 a year — work that was genuinely done and simply never made it onto an invoice. The phantom row is the other direction: someone was charged $90 with no session behind it, which is a refund or a chargeback waiting to happen.
The annualised figure is the weekly gap multiplied by 52, which assumes this week is typical. On invented data it is arithmetic, not a forecast — the point of the number is the order of magnitude, not the digits.
- Bookings — what was scheduled — 14 sessions, with expected value computed as hours × rate.
- Invoices — what was billed — 13 invoices that should line up by booking ID.
- Reconciliation — the match itself: matched rows go green and stay quiet, the rest are flagged by type, and the net gap is headlined. Change either side and it recomputes.
Take the workbook
Free, no email, no signup, no follow-up sequence. It opens in Excel, Numbers or Google Sheets — the formulas are already in it, so you can delete the sample rows and put your own in.
Download the .xlsx ↓Built by this script, which is
public along with everything else on this site. The site does not serve _brand/
itself — GitHub Pages hides underscore directories — so the link goes to the
repository.
What it does not do
- It matches on an exact shared ID. If your two systems have no common key, that is a real problem and this sheet will not paper over it — it will show every row as unmatched, which is the honest answer.
- It surfaces disagreements; it does not decide them. Whether a missed session gets re-billed or written off is a judgement about a customer relationship, and the sheet is not entitled to make it.
- The weekly version that emails you is the retainer, not this file. This file is the reconciliation itself, run by hand whenever you want.
- No AI. Every flag is a comparison you could do by hand — it is just that nobody does it 14 times a week.
Prefer something you can press right now instead of a file to open? The live dashboard demo takes your own export and rebuilds itself on your numbers in the browser, and the free tools run without uploading anything.
Want this one on your own numbers?
Send the chore and I’ll rebuild a real piece of it on your own file, usually within a business day. Free, and yours to keep either way — no contract and no follow-up sequence.