The before-you-share checklist I use so an hours-by-client sheet still matches the time logs
An hours-by-client sheet can look invoice-ready while its story is already wrong: a phantom client row is added for completeness; soft “about 2 hours” is upgraded to a hard decimal; two overlapping timers are double-counted into one green total; a Slack “sounds about right” rewrites the week; superseded logs still ship as this period; or non-billable notes are quietly folded into billable without a label.
Before-you-share is different from a mid-period cleanup. This is the pass I run when the sheet is about to leave my hands and someone else may treat every total as what the logs actually recorded.
I am Brittany Bonds, a freelancer admin helper. I turn messy time logs into clean hours-by-client sheets. I am not a CPA, bookkeeper, lawyer, tax advisor, or payroll advisor, and this is not legal, financial, tax, payroll, or billable-rate advice. It is an administrative proof-checking routine, not a recommendation about what anyone should bill, write off, or invoice.
This complements How I turn messy time logs into an hours-by-client sheet and The mid-hours checklist I use so an hours-by-client sheet stays honest. Those live posts cover the first-pass workflow and the mid-period honesty cleanup. This third pass is the pre-share evidence check — not a rewrite of either.
What “honest enough to share” looks like
- Every client row and hour total maps to a log line, timer export, or a labeled ask — nothing invented for a tidy invoice preview.
- Soft estimates stay soft; hard decimals only appear when a source supports them.
- Overlaps and double-counts stay labeled conflict / recheck — they are not averaged into one green week total.
- Slack guesses and “I think that was Tuesday…” stay labeled guess / ask — not client-confirmed.
- Superseded or out-of-window logs are labeled stale or removed from the share view.
- An emoji reaction or vague “sounds about right” is not treated as a locked hours total unless the sheet states what was confirmed.
If the only share instruction is “send the clean hours sheet,” pre-share honesty has already slipped.
The before-you-send checklist
Use this against the near-final sheet and live evidence: the original time logs, timer CSVs, calendar blocks, Slack/email notes, prior period sheet if any, and the mid-period scratch trail. The goal is not to make every cell complete. The goal is to make uncertainty visible before the sheet becomes someone else’s billing source of truth.
1. Freeze client rows to what was logged
- [ ] Every client (or project) row maps to a log line, screenshot, export, or a labeled ask — no orphan row gets a confident “this is the week” look.
- [ ] Invented clients, template filler, and “bonus” rows that never appeared in the dump stay out or labeled proposed / ask — polish is not permission.
- [ ] Duplicate entries under two phrasings (timer + sticky of the same block) are merged or marked duplicate — one block is not two billable slots because it looked tidy twice.
- [ ] Client naming stays close to the source; a polished synonym may not be the same engagement.
- [ ] Skim test: a reader can point from each row back to a source, or see that it still needs confirmation.
An invented client row is not automatically useless. It is a proposal. The misleading part is leaving it dressed as what was already logged for the period.
2. Keep totals and period strength-honest
- [ ] Soft notes (“about two hours,” “half day”) stay soft — they are not upgraded to hard decimals for neatness.
- [ ] Hard totals keep a source, date range, or named confirmer when available — silence is not consent.
- [ ] Overlapping timers and double-counted blocks stay side by side as conflict / ask — do not average two clocks into one green total.
- [ ] Period language matches the latest source; a polished synonym may not be the same Mon–Sun or billing window.
- [ ] Billable vs non-billable stays labeled when the dump distinguished them — folding one into the other without a note is a rewrite.
- [ ] Skim test: a reader can tell which lines are locked, which are soft, and which still need confirmation.
This is a consistency check, not billing advice. I am recording what the logs disclosed, not deciding what anyone must invoice.
3. Retire stale logs before they travel
- [ ] Walked-back, canceled, or out-of-window entries are labeled stale or removed from the share view — they do not still green a client total.
- [ ] When timer, calendar, and Slack disagree, keep the conflict visible as recheck — do not pick the easier total because it fits the template.
- [ ] Capture or last-checked date exists for material totals — “I cleaned this last week” is not a freshness rule.
- [ ] Raw scratch, rejected options, and unresolved conflicts stay in the evidence trail but out of the clean share view.
- [ ] Skim test: a reader can tell whether each line describes the current logs, an older period, or something still needing confirmation.
A stale log line is historical context. The misleading part is leaving it dressed as this period’s share-ready hours.
4. Challenge the Slack “sounds about right”
- [ ] Replace “they said sounds about right” with the exact hours, clients, or date range that were confirmed, parked, or never named on the sheet.
- [ ] An emoji reaction, “lgtm,” or vague thumbs-up is labeled by what it covered — it does not silently rewrite client totals.
- [ ] If Slack approved a different version than the sheet you are about to send, stop and reconcile — do not ship the prettier draft under the older reaction.
- [ ] Make the share ask specific — confirm this client total, this overlap, this period — instead of asking for another vague thumbs-up.
- [ ] Leave a visible needs confirmation marker where sharing would otherwise create a false record of agreement.
- [ ] Final skim: I can answer “what source supports this line, what still needs confirmation, and what did Slack actually cover?” for every share-ready row.
If a row fails one of these checks, I would rather send a visible needs confirmation label than make the hours sheet look complete by guessing.
Soft CTA
If you have messy time logs and want them organized into an hours-by-client sheet, hourssheet on Gumroad is $12. Code ADMIN12 takes $2 off. Browse the full shop or the catalog mirror on GitHub Pages.
Not a CPA. Not legal, financial, tax, payroll, or billable-rate advice — just an admin checklist for keeping a shared hours-by-client sheet tied to what was actually logged.
Top comments (0)