Track Renewals and Notice Periods Without a Spreadsheet (2026)
A 5-step method to track renewal dates and notice periods using tools you already have, with a worked 53-renewal quarter and the point where spreadsheets.
The contract didn't auto-renew. It had a 30-day notice period for the price uplift and the new terms, and the renewal date sat in a custom CRM field nobody had a reason to open. Day 29 passed. Now the uplift can't be enforced for another full term, or the contract lapses and a customer who was happy last month is suddenly “shopping.” At BuildBetter, we hear versions of this story from CS leads and founders constantly, and the cause is rarely carelessness. The date was recorded. It was never scheduled. Storage is not tracking.
This guide gives you a method you can run today with the tools you already have: a billing export, a CRM, a shared calendar and an hour a week. It includes a worked quarter of 53 renewals, the mistakes that cause misses, and the threshold where manual tracking breaks. One clarification about the title: a spreadsheet can hold renewal data, but it cannot be the system. The method below works in a spreadsheet up to a point, and the tooling section says exactly where that point is.
What Renewal Date and Notice Period Tracking Actually Means
Renewal tracking is the practice of recording, for every customer contract, the term end date, whether it auto-renews, and the notice period (the deadline before term end by which a party must act), then scheduling the actions each deadline requires. A date only counts as tracked once an owner and a dated next action are attached to it.
Three dates get confused constantly:
- Term end date: when the current contract period expires, often phrased as the end of the “then-current term.”
- Notice deadline: term end minus the notice period. This is the date that actually matters.
- Billing or invoice date: when money is collected. An annual contract billed monthly has twelve billing dates and one term end.
Auto-renewal (also called an evergreen contract, rollover, or an automatic renewal clause) means the contract renews for another term unless someone gives a notice of non-renewal before the deadline. Manual renewal (fixed-term or affirmative renewal) means nothing happens unless a new order form or amendment is signed, so the default outcome is a lapse. Some contracts convert to month-to-month at expiry, often at list price, so read the expiry clause.
Notice periods cut both ways. The customer's non-renewal notice period is their cancellation deadline, which makes it your last safe window to save the account. The vendor's price-change notice period is your deadline to communicate uplifts or new terms. The two can differ within the same contract: 60 days for the customer to cancel, 45 days for you to raise prices.
| Auto-renewal (evergreen) | Manual renewal | |
|---|---|---|
| Default if nobody acts | Renews for another term | Lapses (or converts to month-to-month) |
| Deadline that matters | Customer cancellation deadline; vendor price-notice deadline | Term end, worked backward from your sales cycle |
| What you must do before it | Send required uplift notices; run save conversations on at-risk accounts | Get a signed order form or amendment |
| What a miss costs | Unenforceable uplift for a term, or a surprise cancellation | Lapsed contract, lost leverage, a customer who starts evaluating alternatives |
Why Renewal Dates Slip: The Concrete Failure Modes
Renewal dates slip because the information needed to act on them lives in three systems that disagree, and nobody is assigned to reconcile them. These are the specific ways it happens:
- The data is split. Billing (Stripe, Salesbricks, an invoicing tool) holds the subscription. The CRM holds the renewal opportunity. The signed PDF holds the notice clause. None of the three agree.
- The notice period lives only in legal language. “Sixty (60) days' written notice prior to the end of the then-current term” sits in section 11.2 of an MSA and never gets copied into a field.
- Order forms override the MSA. A customer negotiated 90-day notice on one order form, but the team assumes the 30-day default.
- Teams track the term end, not the deadline. A reminder 30 days before term end is useless on a contract with 60-day notice.
- Auto-renewals feel safe, so nobody looks. The customer sends a cancellation notice on day 61, and the CSM finds out when the next invoice fails.
- Ownership is unclear. Accounts with no CSM, accounts mid-handoff and accounts owned by a departed rep have nobody watching the date.
- Health and renewal live apart. The calendar says “renewing in 45 days.” Nobody connects it to the support tickets mentioning a competitor evaluation. See how to spot churn signals in customer conversations for how those signals show up in calls and tickets.
- Reminders fire without a next action. A calendar alert that says “Acme renewal” gets snoozed. One that says “Acme: send 7% uplift letter by certified mail before Mar 14; health yellow, champion left” gets done.
Every item on this list is a process gap, not a data gap. The information usually exists somewhere. It just isn't attached to a person and a date.
The Method: A 5-Step Renewal Tracking System You Can Run Today
A working renewal tracking system needs one reconciled contract list, a notice deadline per contract, actions scheduled from that deadline, health attached to each row, and separate views for auto and manual renewals. This works with a spreadsheet, a shared calendar and an hour a week. Each step makes the next one possible.
Step 1: Reconcile contracts into one list
- Export active subscriptions from billing: customer, plan, amount, current period end.
- Export open and closed-won renewal opportunities from the CRM.
- Match them on customer ID or domain.
- Flag every row where billing and CRM disagree on date or amount.
- Resolve each mismatch against the signed contract. The executed order form plus amendments wins every time.
Billing systems usually show the billing period end, not the contract term end. In Stripe, an annual contract billed monthly shows a period end about 30 days out, and multi-year or ramped deals are often modeled with Subscription Schedules, so current_period_end is not a reliable proxy for the renewal date. Also check your API version: in the 2025-03-31 release, Stripe moved period fields from the Subscription object to subscription items, so older export scripts may return different fields. The output of this step is one row per contract, not per customer, because customers with multiple order forms have multiple deadlines.
Step 2: Record the fields that decide outcomes
| Field | Why it matters |
|---|---|
| Contract ID, customer, ARR | Identifies the row and sizes the risk |
| Term start, term end | Base for every calculation |
| Auto-renew (Y/N) | Decides which view the row belongs in |
| Customer notice period (days or months) | Sets the cancellation deadline |
| Vendor price-change notice period | Sets the uplift deadline |
| Computed notice deadline | Term end minus notice; use =EDATE(term_end, -N) for month-based notice |
| Notice method required | Email, written letter, certified mail, portal |
| Price uplift cap | Limits what you can raise |
| Owner | Someone accountable for the next action |
| Source document link | Lets anyone verify the row in 30 seconds |
One rule: if a field cannot be verified from the signed document, mark it unverified rather than guessing. A wrong notice period is worse than a blank one. A blank prompts someone to check; a wrong value creates false confidence.
Step 3: Schedule actions at 90/60/30/15 days from the notice deadline
| Days before notice deadline | Auto-renewal action | Manual-renewal action |
|---|---|---|
| 90 | Review health, confirm decision-maker, decide on any uplift | Review health, confirm decision-maker, decide on pricing and terms |
| 60 | Send uplift or terms notice if required | Start the renewal conversation |
| 30 | Run save conversations on at-risk accounts | Send renewal paperwork |
| 15 | Escalate any unresolved risk to a manager | Escalate anything unsigned to a manager |
Anchoring the 90/60/30 day renewal process to the notice deadline keeps the schedule correct when notice periods differ per contract. On a 60-day-notice contract, your first touchpoint lands about 150 days before term end. That feels early until the first time it saves an account.
Step 4: Attach health and open commitments to every row
Add a health status (green, yellow, red) with a one-line reason and a source, such as “red: 3 tickets about export failures, champion left.” List open commitments in both directions: features you promised, and goals the customer said they would hit. For building the score itself, see how to build a customer health score. A renewal row without a health reason is incomplete, because it gives the reviewer nothing to decide on.
Step 5: Split auto-renewals from renewals that need paperwork
Give them separate tabs or views. Auto-renewals are a risk-watch list: catch silent cancellations and send required price notices on time. Manual renewals are a work queue: get a signature before lapse. One combined list fails because the urgent manual renewal gets buried under 30 auto-renewals that need nothing this week.
Operating cadence
Assign one owner. Run a weekly 30-minute review sorted by notice deadline. Re-reconcile against billing monthly to catch new contracts, upgrades and mid-term amendments.
Copy this checklist. Every contract has: verified term end, auto-renew flag, notice days, computed deadline, owner, health reason, next action with date.
Worked Example: One Quarter, 53 Renewals, and What the 90-Day View Caught
A single reconciliation and 90-day review on one quarter's renewals typically surfaces several misses that would otherwise have been discovered too late. The scenario below is illustrative, not customer data. A B2B SaaS company has 53 contracts with term ends next quarter, totaling about $1.9M ARR. The review runs on the first day of the quarter.
Reconciliation. Four contracts had different end dates in billing and CRM. In three cases the signed order form matched billing. In the fourth, a mid-term amendment had extended the term and neither system reflected it.
The split. 31 auto-renewals and 22 manual renewals.
Manual renewals, sorted by notice deadline:
- 3 were already inside their window. Decision: escalate today, paperwork out the same week.
- 9 fell at 31–60 days. Decision: start the renewal conversation now.
- 10 fell at 61–90 days. Decision: hold for the scheduled touchpoint.
That accounts for all 22 (3 + 9 + 10).
Auto-renewals with planned uplifts. Four carried a 7% uplift that required 45 days' written notice. Three could still be noticed in time, so letters went out that week by the method each contract specified. One was already past its deadline, so the uplift was deferred to next term. That is a known, accepted loss instead of a surprise dispute at invoice time.
Health overlay across all 53. Seven accounts were flagged red or yellow. Two were auto-renewals with 60-day customer cancellation windows, and in both cases the “safe” auto-renewal was the highest-risk renewal on the list. Decision: schedule save conversations before the cancellation deadline, not before term end.
Open commitments. Four accounts had been promised a feature on earlier calls. Two of those features had shipped, so those customers heard about it before the renewal conversation, not during it. The other two got an honest status update.
What would have happened without the 90-day view. The three most likely misses: the manual renewals already inside notice (a lapse, or a rushed negotiation with no leverage), the uplift past its deadline (a dispute when the higher invoice landed), and the two auto-renewals that looked safe (cancellations discovered after the window closed). For running the conversations this review queues up, see how to prepare for a renewal call.
Common Renewal Tracking Mistakes (Including Ones No Tool Fixes)
The most common cause of missed notice periods is setting reminders off the term end instead of the notice deadline. The rest of the list is shorter to fix than to live with:
- Treating the CRM close date as the contract date. Close dates are forecasts, and reps edit them.
- Ignoring the notice method. Some contracts require written notice to a named address, sometimes with a copy to legal. An email may not count unless the contract says so. That cuts both ways: your uplift email may be invalid, and so may the customer's cancellation.
- Trusting the MSA default when an order form overrides it. Read the precedence clause. Some MSAs let the order form control; others require an explicit reference to override.
- Confusing months with days. “Three months' notice” is not 90 days.
- Leaving unowned accounts off the review. Long-tail accounts renew too, often with nobody watching.
- Running the review without a health reason. Reminders produce no decision.
- Never re-reconciling. Upgrades, co-terming and amendments change dates mid-term without anyone noticing.
Some mistakes software will not fix. Bad source contracts with missing or ambiguous notice clauses. Verbal side agreements nobody wrote down. Legal review of non-standard terms, including termination for convenience provisions. The judgment call on whether to enforce an uplift on a strategic account. No renewal tool, BuildBetter included, reads a clause that was never written or replaces the decision a human has to make.
The cost of getting this wrong is real, if hard to measure precisely. Contract-management research from World Commerce & Contracting (formerly IACCM) has long estimated that poor contract management costs organizations around 9% of annual revenue. It's an older, cross-industry figure, so treat it as directional, but unenforced uplifts and missed renewals are exactly the kind of leakage it describes.
When You Need Tooling (and What to Use)
A spreadsheet works for renewal tracking under roughly 30 renewals a quarter when one person owns it end to end. Past that, manual tracking breaks in predictable ways. Watch for these signals:
- More than about 30 renewals a quarter
- More than one person edits the list
- Billing spans multiple systems
- Notice periods vary by contract
- Health lives in a different tool from the renewal list
- Reconciliation takes longer than the review itself
Tooling should replace reconciliation (Step 1), scheduling (Step 3) and health attachment (Step 4). The judgment stays human.
| Option | Best for | Replaces | Main limit |
|---|---|---|---|
| BuildBetter Success | CS teams past 30 renewals/quarter that need health and commitments on every renewal | Steps 1, 3, 4 and 5 | Notice clauses that exist only in PDFs still need recording |
| Contract repositories / CLM | Legal and procurement storing clauses | Clause storage and search | No customer health or renewal workflow |
| DIY: CRM rules + exports + calendar | Small teams with one owner | Step 3 reminders | Breaks with multiple owners |
1. BuildBetter Success — Best for renewal tracking with health and commitments attached
BuildBetter Success maps directly onto the method above. Contracts gives one view of every subscription across Salesbricks and Stripe: renewal dates, payment status, MRR/ARR and contract values. Lifecycle surfaces renewals on a 90/60/30/15-day schedule with the notice period attached and tracks auto-renewals separately, matching Steps 3 and 5. Health scores (0–100) break into cited risk factors, such as “−5 Payment failed (Stripe),” drawn from calls, emails, Slack and tickets. Accounts near renewal rise to the top with protected ARR, days to renewal and risk level.
Commitment tracking flags when a customer's stated goal from a call doesn't show up in product usage. Scoring runs on every account whether or not a CSM owns it, and unowned accounts land in a queue. Releases drafts “you asked, we shipped” emails before renewal, and Re-engage scores closed-lost accounts for winback. Pricing is published, with unlimited seats and usage-based credits. The limit: Contracts syncs subscriptions from billing, so notice clauses that exist only in signed PDFs still need to be recorded.
2. Contract repositories and CLM tools
Tools in this category, such as ContractSafe or Juro, help when the core problem is storing and retrieving clauses from signed documents across legal and procurement. They suit companies with many non-standard contracts. They generally sit outside the CS workflow, so health and renewal actions still live elsewhere.
3. A do-it-yourself build
CRM workflow rules plus scheduled billing exports plus calendar automation is viable for small teams. It breaks at the same points as the spreadsheet once there are multiple owners or multiple billing systems.
FAQ: Renewal Dates and Notice Periods
What is a notice period in a renewal contract?
A notice period is the number of days (or months) before the term end by which a party must give notice to cancel, not renew, or change terms. Missing it usually means an auto-renewing contract renews for another term, or the vendor loses the right to apply a price change until the following term.
How do I calculate a notice deadline?
Subtract the notice period from the term end date. For day-based notice, deadline = term end − notice days. For month-based notice, use the same day of the month N months earlier (=EDATE(term_end, -N) in a spreadsheet). Confirm whether the contract means calendar or business days, and whether notice must be received or only sent by the deadline.
When should you start working a renewal?
Start 90 days before the notice deadline, not before the term end. Act again at 60, 30 and 15 days. On a 60-day-notice contract, the first touchpoint lands about 150 days before term end.
What is the difference between an auto-renewal and a manual renewal?
An auto-renewal (evergreen) continues into a new term unless someone gives notice in time, so the default is renewal. A manual renewal expires unless a new order form or amendment is signed, so the default is lapse. Some contracts convert to month-to-month at expiry instead.
Should auto-renewals and manual renewals be tracked separately?
Yes. Auto-renewals are a risk-watch list, where the job is to catch silent cancellations and send price notices on time. Manual renewals are a work queue that lapses unless someone gets a signature.
Can a spreadsheet track renewals?
Yes, for roughly 30 or fewer renewals a quarter with a single owner. Beyond that, reconciliation and missed handoffs make it unreliable.
What fields does a renewal tracker need?
At minimum: term end date, auto-renew flag, notice period, computed notice deadline, required notice method, ARR, owner, health status with reason, and next action with a date.
Why do healthy-looking accounts still churn at renewal?
Usage data can look strong while calls and tickets show the customer evaluating alternatives. Renewal reviews should include what customers say, not just what they click.
Sources and Further Reading
- Wikipedia, Contract management
- Wikipedia, Churn rate
- Stripe Docs, How subscriptions work
- World Commerce & Contracting (formerly IACCM), contract value leakage research
- BuildBetter, How to build a customer health score
- BuildBetter, How to spot churn signals in customer conversations
- BuildBetter, How to prepare for a renewal call
Make Churn Optional
The method above works by hand until it doesn't. When reconciliation eats your week and health lives in a different tab from the renewal date, BuildBetter puts contracts, notice periods, health reasons and customer commitments in one view, so every renewal arrives with a decision attached instead of a surprise.
Make churn optional. Book a demo and see your next quarter's renewals sorted by notice deadline.