A Stripe refund CSV, two PayPal dispute emails, a Venmo “I sent it back” screenshot, a half-filled credit-memo Sheet, and a Slack that says “can you track what we owe clients?” are not mid-period truth. Mid-period is where the same refund lands twice (processor + bank), store credit still looks like cash out, “remaining” means someone typed remaining, orphan credits hide until a client asks why their balance is wrong, and chargeback windows quietly age past the point anyone noticed.
I am a freelancer admin helper. I turn messy refund dumps into a clean credits and refunds tracker. 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-period (and again before anyone treats the sheet as what we still owe) so the credits and refunds tracker stays honest while dumps are still arriving.
(If you want the full messy refund dump → clean credits and refunds tracker workflow, see my earlier post. This one is the second-pass checklist so double-refunds, orphan credits, remaining-balance theater, and chargeback ghosts do not quietly rewrite what you still owe clients.)
What "honest" looks like mid-period
- Every row has a date, client, amount, type (refund / store credit / chargeback / adjustment), and source — not vibes
- Refunded-out vs open credit vs pending vs disputed are separated so cash-looking rows are not theater
- Bank + processor of the same refund are flagged once — not silently summed twice
- Orphan credits (no linked invoice/payment) and unknown clients sit in notes — not dropped to make the sheet pretty
- Period that matters is named (month, quarter, custom) — older noise stays out or flagged
- Open-credit and by-client totals skim without reconstructing six exports
If the only “credits tracker” you have is a green Issued column and a thread titled “all refunded,” mid-period honesty has already slipped.
The mid-period checklist (run it before / while you clean)
Use this against the dump (Stripe/PayPal refund exports, chargeback notices, credit memo drafts, bank lines, screenshots, prior AR or invoice lists) before you paste everything into a pretty template and call the period done.
1. Inventory the refund dump (same day you open the pile)
- [ ] Every scrap is listed once: source, date seen, claim type (full refund / partial / store credit / chargeback / adjustment / unknown), notes
- [ ] Duplicate paste of the same refund across bank + processor + screenshot is labeled duplicate — not counted as two credits out
- [ ] Partial dumps (“maybe $80 back to Dana,” a screenshot with no date) are labeled incomplete — not invented into tidy rows
- [ ] Period that matters is named (this month, this quarter, custom range) — older noise stays out or flagged
- [ ] Anything clearly canceled, superseded, or “nice someday credit” is labeled stay-off-open — do not resurrect as this period’s owe list
2. Separate issued vs open vs pending vs disputed before you trust Remaining
- [ ] Status is issued / applied / pending / disputed / canceled / ask — not mood words or a single Issued checkbox for everything
- [ ] Applied or paid-out rows have a client + original invoice/payment ref a human could skim — “misc” is not a match
- [ ] Ask rows name what is blocking a call (who, which sale, chargeback status) — not “waiting on stuff”
- [ ] Open remaining-credit rows stay filterable so they do not mix with fully paid-out refunds
- [ ] Skim test: you can answer “what open credit do we still owe this period?” without reconstructing six exports
3. Kill double-refund and remaining-balance theater
- [ ] Same date+amount+client from bank and processor is one refund with a duplicate flag — not two lines that inflate “we paid them twice”
- [ ] Remaining credit is a number (or 0) — not only a note that says “still some left”
- [ ] Partial refunds name the original amount and what is still open — “partial” alone is not a balance
- [ ] Courtesy adjustments are typed as adjustments — not silently merged into “refund” totals
- [ ] Store credit that was later refunded as cash is marked so it does not look like two separate owes
4. Park orphans and chargeback windows in the open, not in silence
- [ ] Credits with no linked invoice/payment are labeled orphan with what is missing — not deleted to tidy the sheet
- [ ] Unknown payers / clients sit as ask rows — invented names are worse than honest gaps
- [ ] Chargebacks note window / deadline / status when the dump has it — aging past the window without a flag is a trap
- [ ] Disputed rows stay out of “paid out” until the processor says otherwise
- [ ] Anything you almost guessed (which invoice, which client) stays in notes as guessed — not locked as truth
5. Mid-period skim before you call the tracker “current”
- [ ] By-client open-credit sum matches a quick mental check of known big credits
- [ ] Duplicate suspects and ask rows are countable in under a minute
- [ ] Period label is still correct (you did not accidentally include last quarter’s closed refunds as this period’s open list)
- [ ] Handback note names what is still open vs what is already paid out — not “sheet is done”
- [ ] You could hand this to a bookkeeper without them having to reverse-engineer Slack
What I refuse to do mid-period
- Invent missing invoice links just to clear the orphan filter
- Book journal entries, tax categories, or “how to record this in QuickBooks”
- Call myself a CPA or claim the sheet is audit-ready
- Hide chargebacks and disputes so the open-credit total looks prettier
Honest mid-period tracking is boring on purpose. The point is that when a client asks “what do you still owe me?” you are not reconstructing six exports and a Slack thread.
Soft CTA
If you want the messy dump cleaned for you: I turn a refund dump into a credits and refunds tracker sheet in about 24 hours.
Product: https://brittanybonds.gumroad.com/l/creditssheet
Shop: https://brittanybonds.gumroad.com/
Catalog mirror: https://brittany-bonds.github.io/
Code ADMIN12 for $2 off.
No fake CPA claims — spreadsheet cleanup so your refunds and open credits are easier to reconcile.
Top comments (0)