An expense audit trail from every number back to its document
Written for two readers: the person who has been asked to justify a figure, and the accountant deciding whether a client's records are defensible before signing off on them.
Quick answer: What is an expense audit trail?
An expense audit trail is the documented link between a number in your books and the evidence behind it — not merely possessing receipts, but being able to show which piece of evidence supports which row, and what has happened to that row since it was created. Storage alone is not a trail: a folder of a thousand receipts with nothing tying them to particular figures answers no question a reviewer will actually ask. ExpenseBot is an expense tracking app that keeps that link visible — each row sits in a Google Sheet you own, receipt-less rows that have a supporting document carry a link to it in the report labelled “Document”, and corrections are additive, so an omitted row and a refunded purchase both remain visible rather than disappearing.
✓ 60-day free trial • ✓ No credit card • ✓ Records live in your own Google Drive
An audit trail is not a folder of receipts
Most writing about “keeping records” is really about storage — scan the receipt, put it somewhere, feel organised. Storage is necessary. It is not sufficient, and the difference shows up at exactly the moment it matters, when someone points at a figure and asks where it came from.
A trail has to answer three questions about any row in your books:
- What is the evidence? Which specific document supports this specific number.
- Where did the row come from? How it entered the books — a scanned receipt, a forwarded email, a card statement, a manual entry.
- What has happened to it since? Whether it was corrected, excluded, refunded or recategorised — and whether that change is visible or was silently absorbed.
The third question is the one most systems fail, because the natural way to fix a mistake is to delete it, and a deletion is precisely the thing a trail cannot survive.
What counts as evidence — and the receipt-less row problem
Not every legitimate expense has a receipt, and pretending otherwise is what makes record-keeping advice feel disconnected from real books. A cash payment to a subcontractor has a payment confirmation. A retainer has an invoice. A lease has a contract. A wire has a bank confirmation. None of these is a receipt; all of them are evidence.
Before
A row with a payment proof attached looked identical in the report to a row with no evidence at all. The document existed, but it only surfaced on the Documents & Credits worksheet. An accountant scanning the report could not tell the two apart — so a well-documented expense and an undocumented one drew the same question.
After
The report's Link column shows Document on that row. The reviewer sees at a glance that evidence exists and can open it, without leaving the report or cross-referencing a second worksheet.
How ExpenseBot closes that gap in the report itself
Report rows that have a supporting document but no receipt get that document linked in the report's Link column. Three details matter more than the headline, and they are the ones an accountant should actually care about:
- The label is “Document”, never the receipt's “View”. This is deliberate. An actual receipt and a supporting document stay distinguishable at a glance rather than being merged into one undifferentiated blob of “evidence”. A reviewer can see not just that a row is evidenced but how.
- Receipt hyperlinks always win. Existing formulas and bare URLs in that cell are never overwritten. The feature only fills a cell that has no real link in it, which means it cannot quietly destroy something you put there yourself.
- Rows are matched by their receipt id, not by position. A link attaches to the row it belongs to, and stays correct if the report is sorted or rows shift.
The precise scope, because overstating it would be the easy mistake: this applies to receipt-less rows that have a supporting document. It does not conjure evidence for a row that has none, and it is not a claim that every row in every report carries a link. A row with nothing behind it still shows nothing behind it — which is the correct behaviour, because the alternative would be a record that misleads the person reading it.
Corrections leave a trail instead of erasing one
This is the principle the rest of the page rests on: subtractive edits that erase history are the thing that breaks an audit trail. Every correction path here is additive instead.
Omit, not delete
An omitted row keeps the row and its receipt available for reference while leaving it out of future reports, exports, tax calculations and insights. The evidence of the decision survives the decision — you can show that a row was considered and excluded, which is a materially different statement from a row that was never there. The full cleanup workflow lives on the duplicate expense detection page.
Refunds follow the same logic. Credits and refunds are recorded as negative expense rows on the durable Expenses sheet and are never treated as income — so a reversed purchase shows as a purchase and a reversal, rather than as a purchase that silently vanished. A reviewer following the money sees both halves of what happened. The mechanics are on the refunds and credits tracker page.
Mileage is its own evidentiary standard
Mileage does not work like a receipt-backed purchase, and treating it as one is a common way to end up with a record that does not hold. Tax authorities expect a contemporaneous log — the named references are IRS Publication 463 in the United States and, in Canada, CRA T2125 together with the CRA's current Motor vehicle records guidance. (The older interpretation bulletin IT-521R, Motor Vehicle Expenses Claimed by Self-Employed Individuals, is still widely cited but has been archived by the CRA, so read the current guidance rather than relying on it.) ExpenseBot keeps a separate mileage log for that reason. Read those sources directly for what they require; this page deliberately does not paraphrase them. Mileage tracking is covered separately. Estimates — confirm with your tax professional.
When the document genuinely does not exist
Sometimes there is no receipt and there never was one. That is a real situation with its own body of guidance, and it is not solved by better filing. Our write-up on claiming deductions without receipts covers what is and is not possible there. What matters on this page is the boundary: a tidy, traceable record is not a substitute for evidence a tax authority requires, and no amount of good bookkeeping converts an undocumented expense into a documented one. Estimates — confirm with your tax professional.
What an accountant should check before signing off
A short review pass over a client's ExpenseBot records. Five things, in the order they are quickest to check.
- Every row has a Link cell, or a documented reason it does not. A blank link is a question, not automatically a problem — but it should be a question you have asked.
- Omitted rows are omitted, not deleted. If corrections were made by deleting rows, you are reviewing a record whose history has been removed and you cannot verify what changed.
- Credits appear as negative rows against their purchases. A refund that reduced a figure without leaving its own row is a figure you cannot trace.
- Mileage has a contemporaneous log rather than being reconstructed at year end.
- The sheet is the record you are reviewing — not a side worksheet, not a dashboard view. The Expenses sheet in the client's own Google Drive is the durable record; everything else is a presentation of it.
If you review client books regularly, the accountant workflow and bookkeeper workflow pages cover how clients share records with you, and a monthly books review turns this checklist into something that happens twelve times a year rather than once.
Frequently Asked Questions
What is an expense audit trail?
It is the documented link between a number in your books and the evidence behind it — not just having receipts, but being able to show which receipt or document supports which row, and what has happened to that row since. A folder of receipts is storage. An audit trail is storage plus the connection between each piece of evidence and the figure it justifies.
What happens to a row that has an invoice or payment proof but no receipt?
The supporting document is linked in the report's Link column, labelled "Document" rather than the receipt's "View", so a reviewer can tell it apart from an actual receipt at a glance instead of seeing an apparently unevidenced row. Before this, the document only appeared on the Documents & Credits worksheet, so in the report itself a documented row looked identical to an undocumented one.
Will attaching a document overwrite a receipt link I already have?
No. Receipt hyperlinks always take precedence, and existing formulas or URLs in that cell are never overwritten. The document link only fills a cell that has no real link in it, and rows are matched by their receipt id rather than by position, so the link attaches to the row it belongs to.
Should I delete a row I entered by mistake?
Omit it instead. An omitted row stays in place with its receipt available for reference but is excluded from future reports, exports, tax calculations and insights — so the correction is recorded rather than the history erased. It is also reversible, which a deletion is not.
How do refunds show up in the trail?
As negative expense rows against the original purchase on your Expenses sheet, never as income. You see both the purchase and the reversal rather than a purchase that quietly disappeared, which is what a reviewer needs in order to follow what happened.
Does ExpenseBot make my records audit-proof?
No tool can promise that, and you should be sceptical of any that does. What ExpenseBot does is keep every row traceable to its evidence and keep corrections additive rather than destructive, so you can show a reviewer how each number was arrived at. Whether that record satisfies a particular authority in a particular case is a determination only that authority or your own professional can make. Estimates — confirm with your tax professional.
Is mileage handled the same way?
Mileage has its own standard — tax authorities expect a contemporaneous log rather than receipts. The references are IRS Publication 463 in the United States and, in Canada, CRA T2125 together with the CRA's current Motor vehicle records guidance; the older bulletin IT-521R is still widely cited but has been archived by the CRA. ExpenseBot keeps a separate mileage log for that reason rather than treating a trip like a receipt-backed purchase. Estimates — confirm with your tax professional.
I have been asked to justify a number from two years ago and I cannot find the receipt. What now?
Start by checking whether the row has a supporting document rather than a receipt — an invoice, a payment confirmation, or a contract will be linked in the report's Link column as "Document". If there genuinely never was one, that is a different problem with its own body of guidance, and our write-up of deductions without receipts is the place to read about it. Do not treat a tidy record as a substitute for evidence an authority requires. Estimates — confirm with your tax professional.
See what your own sheet looks like to a reviewer
Connect Gmail, let receipts and documents land in a Google Sheet in your own Drive, then run the checklist above against your own records. If you are an accountant, run it against a client's.
✓ No credit card • ✓ Corrections stay reversible • ✓ Your data stays in your Google Drive
Estimates — confirm with your tax professional.