Guide

Reconstruct a client timesheet from work history

Forgot to track a week? Work history can rebuild a draft: what you worked on, when, and the evidence behind it. Recorded activity isn’t billable time, so review the draft, fix overlaps and gaps, and apply your client’s rules before it goes on an invoice.

An invoice line has to survive a question from the client: “what was the six hours on Tuesday?” A reconstructed timesheet is only useful if every entry can answer that from a source. The method below builds a draft you can check, then turns it into something you can send.

Pick one client and one date window

Start with a single client and fixed dates, in your timezone. Mixing clients makes it easy to put a call or a document under the wrong account. If two clients share a project or a repository, decide up front how you split it.

Ask for a draft with the gaps visible

Review my work for [client or project] from [start date] to [end date] in [timezone]. Make a table of date, activity, active time, source and anything uncertain. Don’t fill gaps, don’t round, and don’t mark anything billable.

A draft with visible gaps is more trustworthy than one that conveniently adds up to eight hours a day. If the assistant gives you round numbers without sources, ask for the source of each row.

Fictional practice data: the client, entries and corrections below are invented to show the review. They are not output from a tested Cachejay session.

Fictional draft timesheet for one client
DateActivityActive timeSourceUncertain
Mon Oct 12Checkout redesign in Figma2.4 hScreen activity, Acme file—
Mon Oct 12Call with Acme’s product lead0.8 hCall transcriptDoc open during the call
Mon Oct 12Spec doc edits0.5 hScreen activityOverlaps the call
Tue Oct 13acme-storefront repository3.1 hAgent session, editor—
Wed Oct 14(no record)——Client workshop on site, away from the Mac

Check overlapping and missing work

A document open during a call is not two periods of work. In the example, the spec edits happened during the call, so Monday has 0.8 hours of call, not 1.3. Pick the actual task for each overlapping period instead of adding both.

Missing records need the opposite check. Thinking time, travel, phone calls away from the Mac and on-site work leave no trace. Wednesday’s workshop is real work with no captured record; add it from your calendar or notes, and mark it as your own entry.

Also look for activity that isn’t the client’s: a personal tab, another client’s email, admin you don’t bill. Activity under a client’s project is a lead, not a conclusion.

Apply the client’s rules after the review

Only now apply the agreement: what’s in scope, the rounding increment, minimums, whether calls or travel are billable, and any cap. Those terms come from your contract, not the assistant’s guess. Do the arithmetic yourself or check it.

Fictional reviewed timesheet after corrections
DateReviewed hoursBilled (rounded to 0.25 h)Why
Mon Oct 123.23.25Design and call; spec edits counted once
Tue Oct 133.13.0Repository work
Wed Oct 144.04.0Workshop, added from your calendar

Keep the review notes. If the client asks, you can show how each figure was reached.

Write descriptions without changing the hours

Rewrite these reviewed entries as short, client-facing descriptions. Keep the hours exactly as given. Don’t add work, round, or mention other clients or private material.

Read the result once more against your table. Assistants sometimes “helpfully” merge or rebalance entries. The client sees descriptions; the sources stay with you.

Where Cachejay fits

Cachejay counts active time on your Mac by project, and stops when the screen sleeps, locks or sits idle. It also keeps call transcripts and project notes, which is where the “what was it for” comes from. See time tracking and the freelancer workflow.

To get the draft, ask Claude Code or Codex connected on your Mac for your time by project over the window. For a spreadsheet, choose Export Timesheet › Last 7 Days… or Last 30 Days… in the menu bar: it saves a CSV of date, project and hours. For another window, the Cachejay engine prints the same CSV:

/Applications/Cachejay.app/Contents/MacOS/cachejay-engine time --days 14 --csv

Hours come from captured activity, so gaps from exclusions, pauses and offline work are expected. Captured text and notes sync to your account by default; check the privacy controls before capturing client work.

Try it on a week you remember well. The goal is a timesheet you can defend line by line, not one that only looks complete.

Stop explaining your day to ChatGPT

Install it, connect the apps you use, and get on with your work. Free for 14 days, no card.