DEV Community

Brittany Bonds
Brittany Bonds

Posted on

How I turn a subscription dump into a recurring-costs sheet

SaaS bills hide in inboxes, card statements, and forgotten trial emails. What freelancers actually need is one sheet: what renews, when, and for how much.

Here is the workflow I use when someone dumps a pile of subscription screenshots, CSV exports, or card-statement lines and wants a usable recurring-costs sheet back in about a day.

What "good enough" looks like

  • One row per active subscription (no duplicates across Visa / Amex / PayPal)
  • Amount normalized to monthly and annual so apples match
  • Next renewal date called out
  • Owner / login email noted when it matters
  • Cancelled or free trials flagged, not mixed into the burn rate
  • Nothing invented — only what the dump supports

Intake checklist

  1. The dump (card statement CSV, Stripe/PayPal export, screenshots, forwarded receipts)
  2. Which cards/accounts are in scope
  3. Currency (and whether to convert)
  4. Whether this is personal, business, or mixed
  5. Anything that must stay out (other people's tools, personal entertainment)

The pass order that saves time

  1. List every charge that looks recurring — ignore one-offs.
  2. Dedupe across sources — same Notion charge on two cards is one row.
  3. Normalize cadence — monthly, annual, quarterly → comparable monthly burn.
  4. Capture renewal — next bill date or "unknown — check statement".
  5. Tag keep / review / cancel — based on what the client already said, not my opinions.
  6. Spot-check — three lines you can point back to a receipt or statement row.

Columns that work

Column What goes here
Service Vendor / product name
Plan Tier or seats if known
Amount As billed
Cadence Monthly / annual / other
Monthly equiv Normalized burn
Next renewal Date or unknown
Payment method Card last4 / PayPal / invoice
Owner email Login that holds the seat
Status Active / trial / cancel queued
Source Statement row or receipt crumb

Common traps

  • Counting annual charges as monthly without dividing
  • Double-counting the same tool across two cards
  • Leaving trials in the "active burn" total
  • Guessing plan names when the dump only shows a dollar amount
  • Mixing one-time App Store purchases into recurring burn

Soft handoff

When the sheet is done, send:

  • The recurring-costs sheet
  • A one-line monthly burn total (active only)
  • A short "review / cancel candidates" section if the client asked for it
  • Pointers back to the statement rows or receipts you used

That is the whole job. No finance stack required.


I do this as a 24-hour DFY service for freelancers and small businesses ($12 for subscription dump → recurring-costs sheet). Shop: https://brittanybonds.gumroad.com/l/recurringsheet — code ADMIN12 for $2 off. Full catalog: https://brittanybonds.gumroad.com/ and https://brittany-bonds.github.io/

Top comments (0)