The mid-category checklist I use so a bank CSV category sheet stays honest
A bank CSV with “AMZN MKTP” three ways, a transfer that looks like income, a row with no date, a split purchase glued into one line, a personal grocery sitting next to ads spend, a sticky that says “software somehow,” and a file that opens as mojibake are not mid-category truth. Mid-category is where duplicate merchants inflate totals, transfers masquerade as expenses, missing dates ghost the month, split txs hide real categories, personal vs business bleed rewrites the sheet, category folklore locks guesses as fact, and CSV encoding mess quietly drops rows before anyone notices.
I am a freelancer admin helper. I turn a bank or CSV export into a clean monthly category sheet. I am not a CPA, bookkeeper, tax advisor, or auditor — and this is not financial, tax, legal, or accounting advice. It is the checklist I run mid-categorization (and again before anyone treats the sheet as month-closed truth) so the category sheet stays honest while dumps are still arriving.
(If you want the full bank/CSV export → monthly category sheet workflow, see my earlier post. This one is the second-pass checklist so duplicate merchants, transfer-as-expense, missing dates, split txs, personal bleed, and category folklore do not quietly rewrite the month.)
What "honest" looks like mid-category
- Every row has date, payee, amount, type (income / expense / transfer), category, personal/business flag, source_row, and notes — not vibes
- Duplicate merchant spellings are normalized once (or labeled) — not three totals for the same Amazon month
- Transfers and card payments that double-count are stay-off or labeled transfer — not left looking like spend
- Split or pending/posted pairs are labeled — not counted twice toward the category total
- Open questions (missing date, encoding garble, TBD category, personal bleed) are listed once so the handoff is honest
If the only “category sheet” you have is a sticky titled “software somehow,” mid-category honesty has already slipped.
The mid-category checklist (run it before / while you clean)
Use this against the dump (bank CSV, QFX/OFX export, screenshot tables, email forwards, multi-account zips) before you paste everything into a pretty green “month categorized” grid and call the sheet ready.
1. Inventory the bank/CSV dump (same day you open the file)
- [ ] Every scrap is listed once: source, date seen, claim type (expense / income / transfer / unknown / duplicate / incomplete), notes
- [ ] Duplicate exports of the same period (re-download + email forward) are labeled duplicate — not counted twice toward category totals
- [ ] Partial dumps (header-only CSVs, truncated months, “software somehow”) are labeled incomplete — not invented into tidy categories
- [ ] As-of date range that matters is named — older months stay out or flagged
- [ ] Anything clearly personal, already reimbursed, or belonging to a different account is labeled stay-off — do not resurrect as this mid-category chase list
2. Lock date, payee, and amount before you trust the category total
- [ ] Every “include” row has a real date or is labeled ask — not ghost rows with blank days
- [ ] Payee is normalized once (or ask) — “AMZN MKTP,” “Amazon.com,” and “AMAZON DIGITAL” are not three unrelated merchants
- [ ] Amount is a number with consistent sign (or ask) — not “about forty” or flipped refunds left as positive spend
- [ ] CSV encoding is readable (UTF-8 / bank default / ask) — mojibake payees are not locked as new vendors
- [ ] Skim test: you can answer “what moved, where, and which rows are still fuzzy?” without reopening the raw export
3. Kill transfer-as-expense, split-tx fog, and personal bleed
- [ ] Internal transfers and card payments that double-count are labeled transfer / stay-off — not categorized as spend
- [ ] Pending vs posted pairs for the same tx are labeled duplicate or match? — not two category hits
- [ ] Split purchases (one bank line, two real categories) stay ask or noted — not forced into one folklore bucket
- [ ] Personal vs business flag is explicit — blank is not “probably business”
- [ ] Everything showing “expense” when the dump looks like a transfer, refund, or personal charge is labeled recheck until the type is honest
4. Park guessed categories, folklore buckets, and Slack “somehow” lines in the open
- [ ] Missing required fields sit as ask with what is missing — not invented to tidy the category total
- [ ] “TBD,” “software somehow,” and “misc” without a mapping stay ask — not locked as this month’s closed category
- [ ] Anything you almost guessed (which Amazon spelling wins, whether the transfer was payroll, whether the meal was client-facing) stays in notes as guessed — not locked as truth
- [ ] Slack / sticky reminders that contradict the CSV are labeled conflict — not silently preferred
- [ ] Category vocabulary is named and stable for the period — mid-sheet flips are labeled recheck
5. Mid-category skim before you call the sheet “month closed”
- [ ] Include / transfer / personal / duplicate / ask counts match a quick mental check of known open items
- [ ] Ask rows and duplicate-merchant suspects are countable in under a minute
- [ ] Category totals never invent missing amounts or dates — blanks stay ask
- [ ] You can hand the sheet to someone else without a 10-minute bank-portal tour
- [ ] Soft CTA only if useful: this is cleanup so dates, payees, and categories are easier to see — not advice on deductibility, tax timing, or bookkeeping-of-record
Soft CTA
If you want a bank or CSV export turned into a clean monthly category sheet: https://brittanybonds.gumroad.com/l/ujamx
Shop: https://brittanybonds.gumroad.com/
Catalog mirror: https://brittany-bonds.github.io/
Code ADMIN12 for $2 off.
No fake CPA or tax claims — spreadsheet cleanup so your bank dump is easier to categorize and hand off.
Top comments (0)