DEV Community

Brittany Bonds
Brittany Bonds

Posted on

The mid-payout checklist I use so a commission tracker stays honest

Three affiliate CSVs, a Slack thread that starts with “I think I closed two,” a Notion page of half-named deals, and an email that just says “can you make this make sense?” are not mid-period truth. Mid-payout is where the same deal gets counted twice, “paid” means someone typed paid, periods blur across months, rates float without a source, and disputed lines hide until someone asks why the total feels short.

I am a freelancer admin helper. I turn messy commission dumps into a clean payout tracker. I am not a CPA, payroll provider, lawyer, or tax advisor — and this is not financial, tax, legal, payroll, or employment advice. It is the checklist I run mid-payout (and again before anyone treats the sheet as the owed truth) so the tracker stays honest while dumps are still arriving.

(If you want the full messy commission dump → clean payout tracker workflow, see my earlier post. This one is the second-pass checklist so double-counts, zombie paid rows, period theater, and disputed ghosts do not quietly rewrite what is actually owed.)

What "honest" looks like mid-payout

  • Every row has a person/partner, a period, an amount, and a status — not vibes
  • Pending vs approved vs paid vs disputed are separated so nothing looks done that is still waiting
  • Duplicate deals / double-counted affiliates are flagged once — not silently summed twice
  • Rates or rules that drove the amount are named or marked Needs-confirm
  • Open questions sit in notes — not buried in chat paste
  • Totals by person and by period skim without reconstructing the dump

If the only “tracker” you have is a green Paid column and a thread titled “all settled,” mid-payout honesty has already slipped.

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

Use this against the dump (affiliate CSVs, CRM exports, payout emails, Slack notes, 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 (pending / approved / paid / disputed / unknown), notes
  • [ ] Duplicate paste of the same deal across CSV + Slack + Notion is labeled duplicate — not counted as two payouts
  • [ ] Partial claims (“maybe two last week,” a screenshot with no amount) are labeled incomplete — not invented into tidy rows
  • [ ] Period that matters is named (this month, last quarter, custom range) — older noise stays out or flagged
  • [ ] Anything clearly superseded, voided, or “nice someday” is labeled stay-off-owed — do not resurrect as this period’s unpaid list

2. Separate status from vibes before you trust Paid

  • [ ] Status is pending / approved / paid / disputed — not mood words or a single Paid checkbox for everything
  • [ ] Paid rows have a proof line (payout batch ID, bank date, remittance email) — “paid” in a chat is not paid
  • [ ] Pending rows name what is blocking approval — not “waiting on stuff”
  • [ ] Disputed rows name who / what / since when — anonymous disputes are Needs-confirm
  • [ ] Skim test: you can answer “what do we actually owe this period?” without reconstructing six threads

3. Lock rates, refs, and periods

  • [ ] Each amount has a rate rule or source note — orphan percentages without a card are Needs-confirm
  • [ ] Deal / referral refs are filled or explicitly unlabeled — blank refs that look unique are folklore
  • [ ] Periods that were “this month” three months ago are labeled period stale until confirmed
  • [ ] Currency mixes are labeled — do not silently sum USD + “local” into one total
  • [ ] Skim test: sorting by person shows a real owed list, not a museum of May closes

4. Catch double-count and zombie paid

  • [ ] Same deal ID or same affiliate+date+amount twice → flag double-count — do not invent merges without a rule
  • [ ] Rows marked paid that still need a remittance or bank confirm move back to approved or pending
  • [ ] Fake greens (all Paid, no disputed section) get a forced dispute/pending pass before the sheet ships
  • [ ] Threads titled “quick payout note” without a usable amount are labeled artifact thin
  • [ ] Skim test: unpaid filter shows real money, not theater

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

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

6. Hand-back sanity check

  • [ ] Tracker answers: who is owed, for which period, how much, what status — without opening the dump
  • [ ] Needs-confirm / Pending / Paid / Disputed views (or filters) exist so incomplete and dead items are not mixed into this period’s unpaid list
  • [ ] One sentence of scope on the sheet: "payout tracker — not a full payroll run, tax filing, or employment classification pack"
  • [ ] Non-advice line present: not CPA / tax / payroll / employment advice; confirm payouts with humans before treating this as gospel
  • [ ] You would be willing to run this period’s unpaid list from this sheet without reconstructing Dana from a sticky note

What I do not do on this pass

I do not rebuild their CRM, rewrite commission policy, classify workers, file taxes, or give payroll/legal advice. Mid-payout honesty is about one trustworthy payout tracker stakeholders can skim this period — not a finance office in a spreadsheet.

Soft CTA

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

Top comments (0)