Every lawyer who has ever kept time knows the feeling of reconstructing Tuesday on Friday afternoon.
You know you worked. You can see the drafts, the sent mail, the filings. What you cannot reliably recover is how long each of them took, and so you estimate, and the estimate is conservative, because writing down a number you cannot defend feels worse than writing down a smaller one. Multiply that by every Friday of a career.
The profession’s answer to this has always been moral: keep better time, be more disciplined, enter it contemporaneously. That advice is correct and it has never worked for anybody, because it misdiagnoses the problem. Unbilled time is not a character defect. It is a capture failure. The work happened in a place your billing system could not see, and no amount of resolve changes where the work happened.
The fix is to look where the work actually was.
Where the record already exists
Here is the thing that changes the arithmetic: modern practice leaves a far more complete trail than the timesheet does.
Documents have modification timestamps. Email has send times. Filings have submission times. And if you use AI assistants for substantive work, those conversations are recorded with timestamps on every exchange — a minute-by-minute record of when you were working and, more usefully, on what.
That is not a timesheet. It is something better in one respect and worse in another. Better, because it is contemporaneous and complete and does not depend on memory. Worse, because it records activity, not billable work, and the distance between those two words is where all the professional judgment lives.
So the exercise is reconstruction, not extraction. You are building a defensible estimate from evidence, which is a different thing from reading a number off a meter.
Reconstructing an honest number
The method we use is simple enough to describe in a paragraph and the details are where it either stays honest or stops being so.
Consecutive activity counts as working time; a gap longer than a threshold does not. Set the idle threshold at something like ten minutes. If you were exchanging messages about a motion at 9:04, 9:11, and 9:19, that is a fifteen-minute working block. If the next activity on that matter is at 11:40, the intervening two hours are not work, they are two hours, and they do not count.
Three things make this defensible rather than self-serving:
The threshold is conservative and fixed in advance. Choosing it after seeing the results is how you talk yourself into a number. Pick it once, write it down, apply it everywhere.
It does not count thinking time, and that is the right error to make. You genuinely were working on that problem in the shower. It is also completely unverifiable, and a reconstruction method that includes unverifiable time is not a reconstruction method. Undercounting is the correct direction to be wrong in a bill.
Attribution has to refuse to guess. Every reconstructed block has to be attached to a matter, and this is where the whole thing lives or dies. Our first version inferred the matter from anything a session had touched — and confidently billed a website migration to a litigation file, because that session had once read a document in that client’s folder. It moved that matter’s time from twenty hours to thirty-two. Reading is not working. The rule now is that attribution keys only on where work was actually produced, and a session that cannot be confidently attributed is reported as unattributed rather than assigned to the nearest plausible file.
That last point is not a technical nicety. A wrong matter attribution is a bill to a client for work performed for somebody else. That is not a software defect; it is a fee dispute, and potentially a complaint.
Net it against what is already there
A reconstruction that ignores what you already entered is worse than useless, because it double-counts.
So the last step is subtraction: pull the time already posted for that matter and that day, subtract it from the reconstructed total, and report the difference. What you want to see is not “you worked 6.2 hours.” It is “you worked 6.2 hours and 4.1 are entered.”
One known limitation worth stating plainly, because anybody building this will hit it: matching by matter and day means that time worked on Tuesday but entered under Thursday will not net out, and shows up as an apparent gap. That is a false positive, and false positives in this direction are tolerable — they surface for review and get dismissed in a second. The reverse error, silently netting away real unbilled work, would defeat the purpose.
Rounding is not a detail
Here is the operational thing that costs firms real money and almost nobody thinks about.
Practice management systems round. Most round up to the tenth of an hour. That is the unit in which time is actually billed, regardless of the unit in which you recorded it.
Which means: if you approve an entry of 0.13 hours, the client is billed 0.2. If you approve 0.27, the client is billed 0.3. Your approved total and your billed total are different numbers, and the difference is invisible until an invoice does not reconcile against the ledger.
Two rules follow.
Stage every entry on a tenth-of-an-hour multiple. If the reconstruction says 0.13, the entry is 0.1 or 0.2 — a decision made deliberately by the person approving it, not by the rounding behavior of software downstream. Then approved equals billed, always, and reconciliation is arithmetic instead of archaeology.
Verify that the total equals hours times rate before the invoice goes out. Every time. It is a two-second check that catches rounding drift, a rate that did not update, and the entry that got approved twice.
And on rates: pull the rate from the executed engagement agreement for that matter. Not from what you usually charge, not from what the last matter for that client was. Firms accumulate carrier programs, negotiated rates, legacy arrangements and flat fees, and the assumed rate is wrong often enough that assuming it is not worth the time it saves. The agreement is a file on a disk. Open it.
The rule that never bends
Nothing posts automatically. Ever.
The system surfaces reconstructed, unbilled time. It presents a table. A human reads it, adjusts it, approves it, and enters it. There is no configuration in which a bill to a client is generated by software from inferred activity, and I would say that even if the inference were perfect, which it is not.
The reason is that a time entry is not a data record. It is an assertion to a client — and, if a bill is ever disputed, to a court — that specific work was done, took this long, and was reasonable and necessary. That assertion belongs to a lawyer. It is the same principle as signing a pleading: the tool prepares, the lawyer certifies.
The corollary is that the output must never look like an entry. Ours produces a table you copy into the billing system after review, deliberately, because a one-click “post all” button is a button that will eventually get clicked on a bad day without being read.
Batch the approvals
A practical note that took me too long to learn.
When there are twenty draft entries to review, the wrong interface is twenty prompts. Twenty individual approvals is a click-through exercise — by the sixth one, nobody is reading. That is worse than no review at all, because it produces a record showing everything was approved.
Present the full table at once: matter, date, description, hours, rate, total. One reading, one decision. Corrections are made inline. That way the review is an actual review, and the person doing it is in a single frame of mind for the whole thing, which is when discrepancies get noticed.
Contingency files still get entries
A counterintuitive one that turns out to matter enormously.
On a contingency matter there is no hourly bill, so the instinct is to skip time capture entirely. Do not. Enter the time, marked non-billable.
Three reasons. You cannot evaluate a case type you do not measure — whether a category of contingency work is worth taking is a question about hours per dollar recovered, and if you never recorded the hours you can never answer it. Fee petitions and lodestar cross-checks require contemporaneous records, and reconstructing two years of work after a favorable judgment is both painful and far less persuasive than records kept as you went. A contingency matter that consumed nine hundred hours is a fact about your practice that should inform what you take next, and it is invisible if it was never recorded.
The same applies to pro bono and reduced-fee work — which, given what this section is ultimately about, is exactly the work you most want to be able to measure.
What the ethics rules say about AI and fees
Worth being explicit, because this is the part of AI-assisted practice that lawyers get wrong in the direction that gets them in trouble.
The ABA’s Formal Opinion 512, issued July 29, 2024, addresses fees directly under Model Rule 1.5. Two points stand out:
- You may not bill a client for time spent learning a technology for general use in your practice. Learning your tools is overhead. (If a client specifically requests the use of a particular tool in their matter, the opinion treats learning that tool differently.)
- If the work took less time, you bill less time. A task that used to take two hours and now takes twenty minutes is a twenty-minute entry. The efficiency belongs to the client, not to the timesheet.
That second point deserves a moment, because it is the whole economic argument of this section in miniature. If AI-assisted work simply meant billing the same hours for less effort, none of this would reduce the cost of legal services and none of it would help anybody who cannot currently afford a lawyer. The gain has to show up as a lower bill or as a case you could not otherwise have taken. Otherwise it is not efficiency, it is margin.
Sources
- ABA Standing Committee on Ethics and Professional Responsibility, Formal Opinion 512 (July 29, 2024)
- Minn. R. Prof. Conduct 1.5 (fees)
General commentary on practice management and billing operations. Not legal advice, not ethics advice, and not accounting advice. Formal Opinion 512 is advisory and not binding in any jurisdiction. No client matter or invoice is described in this article.