DEV Community

Brittany Bonds
Brittany Bonds

Posted on

How I turn a messy commission dump into a clean payout tracker

Affiliate CSV exports in three formats, a sales-rep Slack thread with “I think I closed two last week,” a Notion page of half-named deals, and an email that just says “can you make this make sense?” are not a commission system. They are how unpaid lines hide until someone asks why payouts feel short.

Here is the workflow I use when someone dumps messy commission notes, affiliate payouts, or sales-rep commissions on me and wants one clean payout tracker: who earned what, for which period, at what status, and what still needs a check.

What “good enough” looks like

  • Every payout row has a person (or partner), a period, an amount, and a status
  • Sources are named (CSV, email, sheet tab) so you can re-check a weird line
  • Pending vs approved vs paid are separated — nothing looks done that is still waiting
  • Duplicate deals / double-counted affiliates get flagged once, not silently summed twice
  • Open questions sit in a notes column, not buried in chat
  • Totals by person and by period are easy to skim

Intake checklist

  1. The dump (affiliate CSVs, CRM exports, payout emails, Slack notes, prior sheets)
  2. Any existing rate card or commission rules (flat $, %, tiers) — even a rough note helps
  3. Period that matters (this month, last quarter, custom range)
  4. Who the tracker is for (you, a bookkeeper handoff, a sales lead)
  5. What “done” means (clean tracker, optional unpaid list, optional by-person summary)

I am a freelancer admin / spreadsheet helper. I do not give tax advice, and I am not a CPA — this is payout hygiene, not tax, payroll, or employment advice.

The pass order that saves time

  1. Gather sources — list every file, export, and thread; note date range and who sent it.
  2. Normalize columns — map into: period, person/partner, deal or referral ref, amount, currency if mixed, status, source, notes.
  3. Dedupe lightly — same deal ID or same affiliate+date+amount twice → flag; do not invent merges without a rule.
  4. Track status — pending / approved / paid / disputed (or your client’s words); unpaid gets a filter view.
  5. Roll up — by person and by period so “what do we owe?” does not require scrolling raw rows.
  6. Hand back — the payout tracker (+ short unpaid list if useful); no full accounting rebuild unless they asked separately.

Columns that usually work

Column What goes here
Period Month / week / custom range the commission belongs to
Person / partner Sales rep, affiliate, or partner name as they use it
Ref Deal ID, order #, referral code, or “unlabeled”
Amount Commission amount (not the underlying sale, unless they asked for both)
Status Pending / approved / paid / disputed
Source Which CSV, email, or sheet the line came from
Notes Open questions, conflicts, “needs rate confirm”

Common traps

  • Summing overlapping exports and calling it “total owed”
  • Mixing sale amount and commission amount in one unlabeled column
  • Marking everything paid because a dashboard said “processed” once
  • Dropping currency when USD and another currency share a dump
  • Rebuilding a CRM or payroll stack when they asked for a clean tracker by Friday

Soft handoff

When the sheet is done, send the clean payout tracker, a short unpaid / needs-approval list if any, and optional by-person totals only if they asked. That is the whole job: gather → normalize → track period/person/amount/status → hand back. No ERP, no fake “I scaled a sales org” backstory — just practical cleanup.


I do this as a 24-hour DFY service for freelancers and small businesses ($12 for messy commission dump → clean payout tracker). Shop: https://brittanybonds.gumroad.com/l/commissionsheet — code ADMIN12 for $2 off. Full catalog: https://brittanybonds.gumroad.com/ and https://brittany-bonds.github.io/

Top comments (0)