You don't have a spreadsheet problem yet.
Start without one.
Our other tools ask you to upload a file so they can tell you what is wrong with it. This one asks for nothing. Press the button and you get a working Excel tracker where the two mistakes that actually cost money — finishing work you never invoice, and invoices quietly ageing past 60 days — flag themselves. Nobody has to remember to check.
No upload, no signup, no email. The file is assembled in your browser and saved straight to your downloads.
What you get
Jobs
Every job you complete. The
Invoiced? column watches the invoice register and turns itself into
NOT INVOICED the moment a finished job has no matching invoice number.
Invoices
What you billed, and whether it landed.
Days Outstanding and Status update themselves every time the file
opens — OVER 60 DAYS is not a note someone forgot to write.
Dashboard
Five live totals: money finished but never invoiced, money outstanding, money past 60 days, and a duplicate-job-number count that catches double entry before it reaches a customer.
The formulas, in the open
These are the whole trick. There is nothing else in the file — no macros, no add-in, no link back to us.
Did we ever invoice this job?
=IF($A2="","",IF(COUNTIF(Invoices!$B:$B,$A2)>0,"Yes","NOT INVOICED"))
Looks for this job's number in the invoice register. Absent means finished work nobody billed — the single most common leak we find in real books.
How old is this invoice, really?
=IF(OR($C2="",$E2="Yes"),"",TODAY()-DATEVALUE($C2))
Recalculates on open, so the number is never stale. Paid invoices go blank rather than showing a misleading age.
Money finished but never invoiced
=SUMIF(Jobs!$F:$F,"NOT INVOICED",Jobs!$E:$E)
The number worth putting on a wall. In the sample rows it is not zero, which is the point.
Already have a spreadsheet full of history?
Then the tracker is the wrong end. Run your existing export through the free file check — it will tell you what is already stranded in there. Or see a real report first without uploading a thing.