DEV Community

Brittany Bonds
Brittany Bonds

Posted on

The mid-year checklist I use so a tax-ready expense sheet stays honest

The mid-year checklist I use so a tax-ready expense sheet stays honest

A shoebox of receipt photos, three bank CSVs with different headers, a Venmo PDF, and a Slack that says “can you make this tax-ready?” are not mid-year truth. Mid-year is where the same purchase gets counted twice, “business” means someone typed business, categories are theater, missing receipts hide until someone asks why the year-end folder still looks like a junk drawer, and periods blur across months.

I am a freelancer admin helper. I turn messy expense dumps into a clean tax-ready category sheet. I am not a CPA, bookkeeper, lawyer, or tax advisor — and this is not tax, financial, legal, or accounting advice. It is the checklist I run mid-year (and again before anyone treats the sheet as preparer-ready) so the category sheet stays honest while dumps are still arriving.

(If you want the full messy expense dump → clean tax-ready category sheet workflow, see my earlier post. This one is the second-pass checklist so double-counts, zombie personal rows, category theater, and missing-receipt ghosts do not quietly rewrite what is actually there.)

What "honest" looks like mid-year

  • Every row has a date, payee, amount, category, and source — not vibes
  • Personal vs business vs ask are separated so nothing looks deductible that is still unclear
  • Bank + receipt of the same purchase are flagged once — not silently summed twice
  • Missing receipts / vague payees sit in notes — not dropped to make the sheet pretty
  • Period that matters is named (tax year, quarter, custom) — older noise stays out or flagged
  • Category totals skim without reconstructing six folders

If the only “tax-ready” you have is a green Deductible column and a thread titled “all sorted,” mid-year honesty has already slipped.

The mid-year checklist (run it before / while you clean)

Use this against the dump (receipt photos, bank/CSV exports, card statements, Venmo/PayPal PDFs, prior sheets) before you paste everything into a pretty template and call the period done.

1. Inventory the dump (same day you open the pile)

  • [ ] Every scrap is listed once: source, date seen, claim type (business / personal / ask / unknown), notes
  • [ ] Duplicate paste of the same purchase across bank + receipt + Venmo is labeled duplicate — not counted as two spends
  • [ ] Partial claims (“maybe groceries,” a photo with no amount) are labeled incomplete — not invented into tidy rows
  • [ ] Period that matters is named (this tax year, this quarter, custom range) — older noise stays out or flagged
  • [ ] Anything clearly personal, superseded, or “nice someday” is labeled stay-off-business — do not resurrect as this period’s deductible list

2. Separate personal from business before you trust Deductible

  • [ ] Status is business / personal / ask — not mood words or a single Deductible checkbox for everything
  • [ ] Business rows have a payee + category that a human could skim — “misc” is not a category
  • [ ] Ask rows name what is blocking a call — not “waiting on stuff”
  • [ ] Personal rows stay in a separate filter so they do not inflate business totals
  • [ ] Skim test: you can answer “what business spend do we actually have this period?” without reconstructing six folders

3. Lock sources, categories, and periods

  • [ ] Each amount has a source note (which bank CSV, which receipt batch) — orphan amounts without a source are Needs-confirm
  • [ ] Categories match a named list or are marked Needs-confirm — floating labels that look unique are folklore
  • [ ] Periods that were “this year” three years ago are labeled period stale until confirmed
  • [ ] Currency mixes are labeled — do not silently sum USD + “local” into one total
  • [ ] Skim test: sorting by category shows a real spend list, not a museum of May coffee

4. Catch double-count and missing-receipt ghosts

  • [ ] Same date+payee+amount twice → flag double-count — do not invent merges without a rule
  • [ ] Rows marked complete that still need a receipt move back to ask or incomplete
  • [ ] Fake greens (all Deductible, no ask section) get a forced missing-receipt pass before the sheet ships
  • [ ] Threads titled “quick expense note” without a usable amount are labeled artifact thin
  • [ ] Skim test: missing-receipt filter shows real gaps, not theater

5. Honesty tripwires (before you treat the sheet as preparer-ready)

  • [ ] You did not promote vibes to “all tax-ready” because the Deductible column looked empty of red
  • [ ] Personal spends buried in a wall of chat paste are lifted — not left under a business headline
  • [ ] Exports from six weeks ago are labeled window unverified until the period is confirmed — pretty columns do not renew stale dumps
  • [ ] Incomplete sections stay Needs-confirm — not silently promoted to “ready” because the sheet looked sparse
  • [ ] Superseded rows have an archive note so closed work is not deleted into amnesia

6. Hand-back sanity check

  • [ ] Sheet answers: what was spent, when, to whom, which category, which source — without opening the dump
  • [ ] Needs-confirm / Business / Personal / Ask views (or filters) exist so incomplete and personal items are not mixed into this period’s business list
  • [ ] One sentence of scope on the sheet: "tax-ready category sheet — not a tax return, audit pack, or deduction advice"
  • [ ] Non-advice line present: not CPA / tax / accounting advice; confirm with their preparer before treating this as gospel
  • [ ] You would be willing to hand this period’s category totals to a bookkeeper without reconstructing Dana from a sticky note

What I do not do on this pass

I do not file taxes, claim deductions, rewrite their chart of accounts, or give tax/legal advice. Mid-year honesty is about one trustworthy category sheet stakeholders can skim this period — not a tax office in a spreadsheet.

Soft CTA

If you want the messy pile turned into that sheet for you: Expense dump → tax-ready category sheet — usually within 24 hours. Code ADMIN12 takes $2 off. Shop: brittanybonds.gumroad.com · catalog mirror: brittany-bonds.github.io

Top comments (0)