How to track SaaS renewals (without losing track in a month)
The first SaaS renewal you miss is a learning moment. Someone charges your card for $4,800 for a tool you'd already stopped using. You cancel, they offer a pro-rated refund of $600, you accept. Net cost of one forgotten sub: a few hours of your week and $4,200 of cash you didn't plan to spend.
This happens to small teams for a reason. The people closest to the renewal date (whoever owns the tool day-to-day) are rarely the people with a card on file. The person with the card (usually the founder or a finance lead) doesn't know the tool's cycle. Between them is a spreadsheet nobody maintains, or no spreadsheet at all.
The fix is a working process, not a platform. You can run it with Google Sheets and a calendar, and 15 minutes once a quarter. Here's what to do.
Step 01 — List every subscription
Open a new Google Sheet. One row per subscription. Don't overthink categories yet: if you pay for something monthly or annually, it goes in the sheet. That includes the ones you inherited when you joined, the ones Bob set up before he left, and the domain registrations you forgot about.
Expect to find 20–40% more subs than you remembered. Small teams consistently underestimate their SaaS list by that margin. The usual hiding spots: domain registrations (acme.com, acme.studio, acme.app), developer tools a single engineer pays for (Linear, Raycast Pro, an IDE add-on or two), and personal-but-reimbursed subs a founder pays from a company card and forgot to declare.
How to find them: pull the last 12 months of card transactions from your bank or card issuer. Tag every recurring charge you don't immediately recognize. You'll spot the 4 subscriptions nobody was tracking.
Step 02 — Capture five fields per subscription
One row per subscription. Five columns:
- Vendor. The company name, not the product name. "Atlassian" not "Jira Cloud."
- Plan and cycle. "Team · monthly" or "Business · yearly". Matters for renewal math.
- Cost. In whatever currency they charge you. Don't convert — you want the number that hits your card.
- Renewal date. The date of the next charge. For monthly subs, the day of the month is enough.
- Owner. A real human at your company. Not "IT." Not "the team." A person who would feel bad if the tool got canceled surprisingly.
The owner field is the one people skip. It's also the one that makes the whole system work. When a renewal alert fires 30 days out, someone has to decide whether to renew, negotiate, or cut. Decisions don't happen without an owner. A shared "whoever sees it first" column produces a pile of unopened renewal reminders.
If you can't name an owner for a subscription, that's usually your answer about whether to keep it.
Step 03 — Pick a four-window alert schedule
For annual subscriptions: send reminders at 30 days, 15 days, 7 days, and 1 day before renewal.
Each window does a different job. The 30-day alert gives you time to negotiate a renewal discount or find a replacement. The 15-day alert is a reality check: did the team actually use this tool last month? The 7-day alert covers cancellation logistics — most vendors require 7–14 days of notice, so later than this is too late to cancel cleanly. The 1-day alert is the last line of defense against a surprise charge hitting your card.
For monthly subs, one reminder three days out is plenty. The four-window schedule is overkill for something renewing every 30 days; reserve it for annuals where a missed cancel costs you 12 months of spend.
Step 04 — Put the alerts on a real calendar
For each annual subscription, create four events in Google Calendar at the four windows. Title: "Review {vendor} renewal — $X on {date}". Invite the owner. Set email reminders.
This part is tedious. Budget 45 seconds per subscription. For 20 annuals, that's 15 minutes. Do it in one sitting, not "when I have time" — because you won't have time, and the cost of skipping this step is a charge you didn't plan for.
If you prefer Apple Reminders, Notion, Linear, or whatever cadence tool your team already uses, use that. The medium doesn't matter. What matters is that the alert actually fires at the owner, not at a shared inbox nobody checks.
Step 05 — Block a quarterly review
Sixty minutes, once a quarter. Put it on everyone's calendar before you skip the first one.
What to review:
- Every subscription that renewed this quarter. Was it worth keeping?
- Every alert that fired and nobody actioned. Why?
- Every new subscription someone added. Does it overlap with something you already have?
- The top five subscriptions by cost. Can any be downgraded?
The quarterly review exists because spreadsheets decay. Without a forcing function, the sheet is out of date in eight weeks. The review is the forcing function.
If 60 minutes feels long, cut it to 30 and do it every six weeks. More frequent and shorter beats quarterly and skipped.
Step 06 — Flag duplicates
Add a sixth column to your sheet: Category. Engineering, Design, Productivity, Comms, Infrastructure, Finance, Marketing, Ops. Pick 8–10 categories and keep them consistent across all entries.
Sort by category. Two subscriptions in the same category is normal (Slack for the team, Discord for the community — same category, different jobs). Two in the same category that do the same job is a duplicate. The common offenders:
- Two Notion workspaces on different billing emails.
- Zoom Business plus Google Meet paid tier.
- Grammarly plus ChatGPT Plus plus a team-level writing tool.
- Two separate Linear or Jira instances because a subsidiary set up its own.
- Legacy accounts from a tool you migrated away from, still billing.
Duplicates are consistently the largest source of unnecessary spend in a small-team SaaS stack. Consolidating them is usually the single biggest win in any quarterly review.
Step 07 — Know when to graduate
A spreadsheet works for tracking about 10–15 active subscriptions. At 20+, the maintenance starts to outrun the value: you spend 30 minutes updating the sheet every time a sub gets added or changed, that 30 minutes competes with everything else on your week, and "update the sub tracker" is the first thing to fall off when the week gets busy.
The tell: you find yourself saying "I should update the sheet" three or four times before you actually do. That's the signal.
From there, you can replace the spreadsheet with a dedicated tracker, a SaaS management platform, or a procurement consultant — and they solve very different problems.
- Dedicated trackers like CostLens keep the manual-entry mental model of a spreadsheet and add the automation the sheet was missing: renewal alerts, duplicate detection, budget ceilings, team access. Lightest weight. $12/mo flat in our case.
- SaaS management platforms like Cledara and Substly add auto-discovery from card feeds or Gmail, virtual cards for SaaS purchases, and approval workflows. More automation, more setup, starts around £100/mo.
- Procurement consultants like Vendr and Sastrify negotiate contracts on your behalf. Budget in the five figures a year. Worth it for a finance team buying six-figure annual contracts; overkill if your total SaaS spend is under $50k.
There's a fuller comparison here if you want to see which shape matches your situation.
Template — the columns laid out
If you want to copy-paste straight into a Google Sheet, here are the columns:
Vendor | Plan | Cost | Cycle | Renewal date | Owner | Category | Notes
Sample rows:
Figma | Organization | $45 | monthly (25th) | 2026-05-25 | Anna | Design | 24 seats
Notion | Team | $192 | yearly | 2027-01-15 | James | Productivity | duplicate of Notion Plus?
Slack | Pro | $248.75 | monthly (6th) | 2026-05-06 | Priya | Comms | negotiate annual at next renewal
AWS | Business | $1,240 | monthly (1st) | 2026-05-01 | Tom | Infrastructure| reserved instances?
acme.studio | Domain | $38 | yearly | 2026-05-08 | Anna | Infrastructure| renew 2y at a time
No formulas required. Add columns if your team wants to track usage, contract terms, or last-review dates. Don't stack columns you won't actually fill — a five-column sheet that's current beats a fifteen-column sheet that's stale.
Closing
The important thing isn't which tool or format you use. It's that every renewal decision has an owner and a forcing function. A spreadsheet and a calendar do that job for a small team for maybe eighteen months. After that, the maintenance overhead starts to bite and a dedicated tracker pays for itself in the first renewal it saves.
Don't over-engineer this before you've missed a renewal. Overkill is a bigger risk than under-investing here. Start with the five-column sheet and the four-window alert schedule, and graduate when the sheet actually breaks — not before.