How to find unbilled time you forgot about
· 6 min read
Unbilled time hides in three places: working days that never made it into a log, client work that leaked past the agreed scope, and evenings that felt like finishing up. To find it, build a list of every day you worked over the last quarter from whatever records exist (daily receipts, file dates, sent mail) and line it up against the invoices for the same period. The days with no matching invoice line are the money.
Where unbilled time hides
Forgotten time is rarely a whole project. It is fragments: a Thursday afternoon on a client fix that felt too minor to log, the week a job dragged on past its fixed fee, a run of 8 pm sessions that were “just getting it finished.” None of these feels like lost income at the time. Each feels like being professional.
The reason they stay hidden is that invoices are written from memory and memory is built from the big blocks. The fragments are exactly what memory drops. So the search has to be driven by evidence of days worked, not by recollection of jobs done.
Line up every working day against the invoices
This takes about an hour for a quarter, and most of that is the first time.
- Choose the period. The last three months is the right size: recent enough that you can still bill some of it, long enough to show a pattern.
- Build the list of working days. If you have daily receipts, this is already done; a month roll from Punchcard lists every day with its total, and the CSV export gives you the same thing in a spreadsheet. If you do not, open each client’s project folder in Finder, list view, sorted by Date Modified, and note every date on which files changed. Then search Mail for each client and add every date with a sent message. Merge into one dated list with a rough weight per day (full, half, light, or the receipt total).
- Open the invoices for the same period. For each one, write down what period and which work it covered. Fixed fees cover a scope, not dates, so note the scope.
- Go down the list of days and mark each one. Covered by an invoice, or not. For fixed-fee work, mark the days as covered only if they fall inside the scope you quoted; a day spent on a third revision round when you quoted two is not covered.
- Total the unmarked days. Use the weights or receipt totals. This is the unbilled time. It is usually larger than expected, and seeing the list of dates is what makes it real.
Three patterns that show up every time
Do this once and you will recognize the same shapes the next time.
The day with no owner. A working day, medium weight, no invoice covers it, and you cannot immediately remember what it was. Open the folder modified that day and it comes back: the quick fix for a client who messaged directly, handled in an afternoon, never logged. These are the easiest to bill because the evidence is clean and the client remembers asking.
The job that ran past its fee. A fixed-fee project with working days continuing two weeks after the scope was delivered. Each of those days was a request that felt too minor to push back on. Together they are often the biggest single item in the search.
The evening shift. Days where the receipt total is three hours higher than the working day you remember, because the day ended at 9:40 pm. Late receipts make these impossible to miss: when a day runs past the set closing time, the print is headed SORRY WE MISSED YOU with the real total on it. The post on a sorry we missed you day is about what those prints mean; in this search, they are the ones to look at first.
Deciding what to do with each item
Not all of it should be invoiced, and knowing which is which is the skill.
Bill it now if the work was asked for, is less than a couple of months old, and the client would recognize the description. A short line on the next invoice: “Additional fix requested 14 July, 2.5 hours.” Most clients pay these without comment, because they remember asking.
Bill it next time if it was scope creep on a fixed fee that has already been paid and closed. Reopening a paid job rarely goes well. Instead, use the finding to write the next quote for that client with a named overage rate, and refer to the pattern when you do: “Last time the third round took an extra week; this quote includes two rounds and an hourly rate for more.”
Let it go, and write it down if it was your own choice: the reading you did to get up to speed, the extra polish nobody asked for, the evening you spent because you wanted to. This is not billable and never was. But it belongs in your effective-rate calculation, because it was an hour of your working life. The time audit before raising your rates shows where to put it.
Whichever you decide, write the total somewhere. A single number for “unbilled last quarter” is the most persuasive argument for changing how you work that you will ever see, and it is persuasive mainly to you.
Stop the leak from here on
The search above is forensic work, and the reason it was necessary is that nothing recorded the days as they happened. The fix is to have a record that does not depend on remembering to keep it.
A daily receipt does this. Punchcard notices which app is in front during the day, with no timer to start, and prints the day at your closing time: each app with its time, a total, a stamp. The next time you do this search, step 2 is already done, and it includes every evening. The month roll lays out thirty days of totals in one print, so an unowned day stands out as a number with nothing next to it.
It does not do the rest. Punchcard has no clients, projects, rates or invoicing, and it cannot tell you that the 2 hours 30 minutes on the 14th belonged to a particular client. That stays a one-line note per day in your own file, and the search still needs steps 3 and 4. What changes is that the list of days is complete, timestamped and honest, which is the part memory was failing at. Keep the exports; export your time data to CSV and keep it forever explains how and why.
Questions
How far back is it reasonable to bill?
Within the current quarter, or the last invoice cycle, is generally fine with a clear description. Beyond that, weigh the relationship: a good client will usually accept an honest “I found this was never invoiced,” and a client who balks at a three-month-old line is telling you something about the account.
What if I have no records at all for the period?
Then file dates and sent mail are the record, and they are better than you expect. Finder’s Date Modified is accurate to the minute, and a sent message is proof you were working on that client that day. Start a daily record today so you never have to do this version again.
Can Punchcard flag unbilled time automatically?
No. It does not know what billing is. It records which apps were in front and for how long, prints a receipt per day, and exports CSV. The matching against invoices is yours. What it gives you is a complete and unedited list of working days, which is the thing that was missing.
Should I tell the client I am doing this?
Not as a process. Simply add the line with a date and a plain description. If a client asks why it was not on the earlier invoice, say it was missed and you have fixed your record keeping. That is the truth and it is enough.