A timer dump that double-counts lunch, a materials folder with two receipts for the same paint, a Slack that says “about three days somehow,” a sticky that guesses margin, and a prior job sheet whose hours never got closed are not mid-job truth. Mid-job is where overlapping time blocks inflate total hours, materials get entered twice from email + PDF, unpaid helpers or tools silently vanish from cost, guessed day-rates lock as fact, and “profit” is vibes instead of hours × rate + materials − write-offs.
I am a freelancer admin helper. I turn hours and materials dumps into a clean job-cost sheet. I am not a CPA, bookkeeper, lawyer, or tax advisor — and this is not financial, tax, legal, or accounting advice. It is the checklist I run mid-job (and again before anyone treats the sheet as what the job cost) so the job-cost sheet stays honest while dumps are still arriving.
(If you want the full messy hours + materials dump → clean job-cost sheet workflow, see my earlier post. This one is the second-pass checklist so double-counted hours, silent material dupes, missing tool/help lines, and guessed margins do not quietly rewrite what a job really cost.)
What "honest" looks like mid-job
- Every time row has who, date, start/end or duration, task, billable vs non-billable, and source — not vibes
- Overlapping blocks on the same person/day are flagged once — not summed twice
- Materials rows name item, qty, unit cost (or ask), vendor/source, and whether already paid — not “paint somehow”
- Tool rental, helpers, travel, and write-offs sit as named lines — not buried in a Slack thread
- “Cost so far” follows a named rule (hours × agreed rate + materials + named extras − write-offs) — not a sticky that shifts by mood
- Open questions (missing rate, unclear qty, who owns a receipt) are listed once so the handoff is honest
If the only “job cost” you have is a green Total and a thread titled “about three days somehow,” mid-job honesty has already slipped.
The mid-job checklist (run it before / while you clean)
Use this against the dump (timers, calendar blocks, materials PDFs, email receipts, Slack “I bought X,” prior job sheets) before you paste everything into a pretty template and call the cost current.
1. Inventory the hours + materials dump (same day you open the pile)
- [ ] Every scrap is listed once: source, date seen, claim type (hours / materials / tool / help / travel / write-off / unknown), notes
- [ ] Duplicate paste of the same timer export + calendar block + handwritten log is labeled duplicate — not counted as two day-rates
- [ ] Partial dumps (“maybe Tuesday was half,” a Slack ping with no hours) are labeled incomplete — not invented into tidy rows
- [ ] As-of / job phase that matters is named (this week, through Friday, through install) — older noise stays out or flagged
- [ ] Anything clearly for a different job or already closed on another sheet is labeled stay-off — do not resurrect as this mid-job cost
2. Lock who, duration, rate basis, and materials before you trust totals
- [ ] Every hours row has a real person or is labeled ask — not blank cells that look billable
- [ ] Duration is a number or ask — “about three days somehow” is not a line
- [ ] Rate basis is named (hourly / day / fixed) or ask — invented folklore is worse than an honest gap
- [ ] Materials have qty + unit cost or ask — “paint somehow” locked as the fee line is worse than a gap
- [ ] Skim test: you can answer “what has this job cost so far, what’s still fuzzy?” without reopening Slack
3. Kill double-count / missing-extra / silent-write-off inflation
- [ ] Status vocabulary is named (draft / in progress / billed / written off / ask) — not blank cells that look final
- [ ] Evidence for hours (timer export, calendar, signed timesheet) sits in notes or source — “I think I worked that” alone is not hours
- [ ] Overlapping same-person blocks are merged or flagged — not summed as two full days
- [ ] Tool rental, helpers, and travel are either lines or explicitly out of scope — not forgotten until invoice day
- [ ] Write-offs or comps are named with reason — not silently deleted so margin looks prettier
4. Park guessed margins, open asks, and phase cuts in the open
- [ ] “Profit so far” is either computed from named inputs or labeled not ready — not a sticky guess treated as fact
- [ ] Open asks (missing rate, unclear qty, whose receipt) sit in one list — not scattered across threads
- [ ] Phase cut (through Friday vs through install) is written once so later dumps do not rewrite prior totals quietly
- [ ] Anything still incomplete stays incomplete — do not greenwash a mid-job dump into a closed job-cost sheet
Soft CTA
If you want the dump cleaned into a job-cost sheet for you: hours and materials in, sheet out in 24 hours — $12 on Gumroad. Code ADMIN12 takes $2 off. Full catalog: shop · GitHub Pages.
Not financial, tax, legal, or accounting advice. I organize the dump; you own the numbers and decisions.
Top comments (0)