DEV Community

Brittany Bonds
Brittany Bonds

Posted on

The mid-rate checklist I use so a rate card stays honest

The mid-rate checklist I use so a rate card stays honest

A folder of past invoices with three different day-rates for the same service, a sticky that says “usually $X,” a Slack promise that never hit a PDF, a retainer that buried hours inside a flat fee, and a cousin’s “market rate” screenshot are not mid-rate truth. Mid-rate is where conflicting invoice lines get averaged into folklore, one-off rush premiums lock as your forever price, unpaid comps silently vanish from the evidence, and a pretty one-pager pretends the dump agreed with itself.

I am a freelancer admin helper. I turn past-invoice dumps into a clean rate-card one-pager. I am not a CPA, bookkeeper, lawyer, or tax advisor — and this is not financial, tax, legal, pricing, or accounting advice. It is the checklist I run mid-build (and again before anyone treats the card as what you charge) so the rate card stays honest while invoice PDFs are still arriving.

(If you want the full messy past-invoices → rate-card one-pager workflow, see my earlier post. This one is the second-pass checklist so conflicting rates, silent comps, rush premiums treated as base, and guessed “usual” numbers do not quietly rewrite what you actually charged.)

What "honest" looks like mid-rate

  • Every evidence row names client/job (or anonymized label), date, service line, unit (hour / day / project / retainer), amount, and source PDF — not vibes
  • Same service with two different rates is flagged once as conflict — not averaged into a fake “usual”
  • Rush, weekend, or travel premiums are labeled premium — not folded into base rate
  • Comps, discounts, and write-offs sit as named exceptions — not deleted so the card looks prettier
  • “Standard rate” follows a named rule (most recent N invoices, median, mode, or ask) — not a sticky that shifts by mood
  • Open questions (missing PDF, unclear unit, retainer vs hourly mix) are listed once so the handoff is honest

If the only “rate card” you have is a green number and a thread titled “I usually charge somehow,” mid-rate honesty has already slipped.

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

Use this against the dump (invoice PDFs, Stripe exports, retainer agreements, email quotes, Slack rate promises) before you paste everything into a pretty template and call the card current.

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

  • [ ] Every scrap is listed once: source, date seen, claim type (hourly / day / project / retainer / premium / comp / unknown), notes
  • [ ] Duplicate paste of the same invoice PDF + Stripe line + email forward is labeled duplicate — not counted as two price points
  • [ ] Partial dumps (“about $150 somehow,” a Slack ping with no unit) are labeled incomplete — not invented into tidy rows
  • [ ] As-of window that matters is named (last 12 months, last 10 invoices, this product line) — older noise stays out or flagged
  • [ ] Anything clearly for a different service or already superseded is labeled stay-off — do not resurrect as this mid-rate base

2. Lock service, unit, amount, and source before you trust “standard”

  • [ ] Every row has a real service label or is labeled ask — not blank cells that look billable
  • [ ] Unit is named (hour / day / project / retainer) or ask — “somehow” is not a line
  • [ ] Amount is a number or ask — invented folklore is worse than an honest gap
  • [ ] Source PDF or export sits in notes — “I think I charged that” alone is not a rate
  • [ ] Skim test: you can answer “what have I actually charged for X, what’s still fuzzy?” without reopening Gmail

3. Kill conflict / premium-as-base / silent-comp inflation

  • [ ] Status vocabulary is named (draft / evidence / conflict / exception / ask) — not blank cells that look final
  • [ ] Same service + different amounts are merged under a named rule or left as conflict — not secretly averaged
  • [ ] Rush / weekend / travel lines are either premiums or explicitly out of base — not forever rates
  • [ ] Comps and discounts are either exception rows or explicitly out of the card — not forgotten until a prospect asks
  • [ ] Retainer bundles that hide hourly math are labeled bundled — not reverse-engineered into a fake hourly without saying so

4. Park guessed “usual,” open asks, and window cuts in the open

  • [ ] “Standard rate” is either computed from named evidence or labeled not ready — not a sticky guess treated as fact
  • [ ] Open asks (missing PDF, unclear unit, which product line) sit in one list — not scattered across threads
  • [ ] Window cut (last year vs all-time) is written once so later invoices do not rewrite prior standards quietly
  • [ ] Anything still incomplete stays incomplete — do not greenwash a mid-rate dump into a closed rate card

Soft CTA

If you want the dump cleaned into a rate-card one-pager for you: past invoices in, card out in 24 hours — $12 on Gumroad. Code ADMIN12 takes $2 off. Full catalog: shop · GitHub Pages.

Not financial, tax, legal, pricing, or accounting advice. I organize the dump; you own the numbers and decisions.

Order of work

Top comments (0)