A subscription tracker template is a spreadsheet that lists every recurring software bill with its cost, billing cycle and renewal date. Its formulas work out monthly, annual and lifetime cost, so unwanted auto-renewals and surprise charges are caught early.
It is a single list of every recurring charge the business pays for software and online services. Each subscription gets one row with its owner, status, billing cycle and next renewal, and the sheet converts every cost to the same monthly and annual basis.
IT, finance and procurement teams use it to see what they pay for, who owns each tool and which renewals are coming. Its main job is to give someone enough warning to cancel, downsize or renegotiate before the notice date passes and the contract rolls over.
Most companies start one after finding a tool they forgot they were paying for. A tracker kept up to date also feeds the software budget and shows where two teams are paying for the same kind of tool.
Monthly, annual and lifetime cost for each subscription, whatever its billing cycle.
Days left until the cancel-by date, coloured by conditional formatting as the date gets close.
What the tool does, such as sales, data or collaboration, so overlaps stand out.
Active, trial or cancelled, so only live spend counts in the totals.
Monthly, quarterly, annual or a custom term, entered in months so the maths works for all of them.
Calendar alerts before a free trial converts or a notice period closes.
Ready to use in Excel and Google Sheets. Fill it in, save it, reuse it.
Pull recurring charges from the AP ledger, expense reports, card statements and SSO logs.
Add one row per subscription with owner, status, cycle, cost and renewal date.
The countdown and colour rules flag anything inside its notice window.
The owner chooses to renew, downsize, renegotiate or cancel before the cancel-by date.
Each quarter, check usage, remove cancelled tools and look for overlaps.
Start with six columns: Subscription, Owner, Cost per cycle, Cycle, Renewal date, Notice days. Add status, category and the countdown once every subscription is listed.
The cancel-by date matters more than the renewal date, because once the notice period starts the contract usually rolls over. Enter trials with the price they convert to, so the totals show what you will pay if nobody acts. The sample is dated 7 October 2026.
| Subscription | Category | Status | Cycle | Monthly | Annual | Cancel by | Flag |
|---|---|---|---|---|---|---|---|
| Brightline Software CRM | Sales | Active | 12 | 9,000.00 | 108,000.00 | 02 Dec 2026 | Review |
| Orbit Analytics BI | Data | Active | 12 | 2,000.00 | 24,000.00 | 16 Oct 2026 | Act now |
| Pinecrest Chat | Collaboration | Active | 3 | 2,400.00 | 28,800.00 | 01 Dec 2026 | Review |
| Kestrel Data warehouse | Data | Trial | 1 | 1,500.00 | 18,000.00 | 21 Oct 2026 | Act now |
| Fieldnote Surveys | Marketing | Active | 1 | 450.00 | 5,400.00 | 01 Nov 2026 | Review |
| Lumen Forms | Marketing | Cancelled | 12 | 0.00 | 0.00 | ||
| Total | 15,350.00 | 184,200.00 |
Illustrative data, not real vendors or prices. Cycle is in months; the trial shows the price it converts to.
Works in Excel and Google Sheets. Headers in row 1, data from row 2, formulas copied down.
| Col | Header | Entry or formula | What it does |
|---|---|---|---|
| A | Subscription | Text | Product and plan name |
| B | Category | Drop-down: Sales, Data, Collaboration, Marketing, HR, Finance, IT | Shows overlapping tools |
| C | Owner | Text | The person who decides at renewal |
| D | Status | Drop-down: Active, Trial, Cancelled | Only live spend counts |
| E | Billing cycle (months) | 1, 3, 12 or any custom term | How often you are billed |
| F | Cost per cycle | Currency | The amount on each bill |
| G | Monthly cost | =IF(D2='Cancelled', | Puts every cycle on the same basis |
| H | Annual cost | =G2*12 | Yearly run rate |
| I | First paid date | Date | When paid billing started |
| J | End date | Date, blank if still active | When billing stopped |
| K | Lifetime spend | =IFERROR(F2*(INT(DATEDIF(I2, | Total billed so far, paid in advance |
| L | Renewal date | Date (trial end for trials) | When the next term starts |
| M | Notice (days) | Number | From the contract or terms of service |
| N | Cancel by | =L2-M2 | Last day to give notice |
| O | Days left | =IF(D2='Cancelled', | The renewal countdown |
| P | Flag | =IF(D2='Cancelled', | Drives the colour rules |
Put these at the top of the tab or on a summary sheet.
| Total | Formula |
|---|---|
| Monthly spend | =SUM(G:G) |
| Annual spend | =SUM(H:H) |
| Active subscriptions | =COUNTIF(D:D, |
| Trials ending within 14 days | =COUNTIFS(D:D, |
| Annual spend on data tools | =SUMIF(B:B, |
The tracker tells you what you pay; the inventory tells you what you get for it. Compare licences bought with users active in the last 30 days, and record what data each app holds so security reviews start from facts. Apps found on expense reports but missing from SSO are the ones to check first.
| App | Owner | Licences | Active users | Utilisation | SSO | Data held | Status |
|---|---|---|---|---|---|---|---|
| Brightline Software CRM | Sales ops | 120 | 96 | 80.0% | Yes | Customer records | Approved |
| Orbit Analytics BI | Data team | 40 | 38 | 95.0% | Yes | Financial data | Approved |
| Pinecrest Chat | IT | 300 | 262 | 87.3% | Yes | Internal messages | Approved |
| Fieldnote Surveys | Marketing | 5 | 2 | 40.0% | No | Customer emails | Review |
| Sketchpad Pro | Design | 3 | 3 | 100.0% | No | Unknown | Unapproved |
Illustrative data. Active users means a login in the last 30 days.
| Measure | Formula |
|---|---|
| Utilisation | =D2/C2 |
| Unused licences | =C2-D2 |
| Unused cost per year | =(C2-D2)*CostPerLicence |
| Apps not behind SSO | =COUNTIF(F:F, |
Hardware does not renew like a subscription, but it ages on a schedule you can plan for. Tag every device, record who holds it, and set a useful life by type so the sheet flags what needs replacing next quarter. The same list is your starting point when someone leaves and their kit must come back.
| Asset tag | Type | Assigned to | Purchased | Cost | Warranty end | Refresh due | Alert |
|---|---|---|---|---|---|---|---|
| LT-0412 | Laptop | J. Patel | 14 Mar 2023 | 1,400.00 | 14 Mar 2026 | 14 Mar 2026 | Refresh due |
| LT-0588 | Laptop | A. Moreno | 02 Feb 2025 | 1,450.00 | 02 Feb 2028 | 02 Feb 2028 | OK |
| MN-0130 | Monitor | Spare | 10 Jun 2024 | 220.00 | 10 Jun 2027 | 10 Jun 2027 | OK |
| SW-0007 | Network switch | Server room | 20 Sep 2022 | 3,800.00 | 20 Sep 2025 | 20 Sep 2027 | Out of warranty |
| PH-0219 | Phone | L. Chen | 05 Jan 2024 | 800.00 | 05 Jan 2026 | 05 Jan 2026 | Refresh due |
| Total | 7,670.00 |
Illustrative data at 7 October 2026. Useful life: laptops and monitors 36 months, switches 60, phones 24.
| Col | Header | Entry or formula | What it does |
|---|---|---|---|
| A | Asset tag | Text, e.g. LT-0412 | The label stuck on the device |
| B | Type | Drop-down: Laptop, Monitor, Phone, Network, Server | Sets the useful life |
| C | Serial number | Text | For warranty claims and audits |
| D | Assigned to | Text | Person or location holding it |
| E | Purchase date | Date | Start of warranty and life |
| F | Cost | Currency | Purchase price |
| G | Warranty end | Date | From the invoice or vendor portal |
| H | Useful life (months) | Number, e.g. 36 | Your refresh policy for this type |
| I | Refresh due | =EDATE(E2, | When to replace it |
| J | Age (years) | =DATEDIF(E2, | Whole years in service |
| K | Status | Drop-down: In use, Spare, Retired | Retired assets drop out of alerts |
| L | Alert | =IF(K2='Retired', | What needs action |
A countdown nobody looks at does not prevent anything, so pair it with colour and calendar reminders. Set the first reminder 30 days before the cancel-by date for annual contracts and three days before a trial ends. The rules below use columns D, O and P of the tracker.
| Rule | Custom formula | Format |
|---|---|---|
| Notice deadline missed | =$O2<0 | Dark red fill, white text |
| Act within 14 days | =$P2='Act now' | Red fill |
| Review within 60 days | =$P2='Review' | Amber fill |
| Trial in progress | =$D2='Trial' | Blue text |
In Excel: Home, Conditional Formatting, New Rule, Use a formula. In Google Sheets: Format, Conditional formatting, Custom formula is.
| View | Formula |
|---|---|
| First reminder date | =N2-30 |
| Trial reminder date | =IF(D2='Trial', |
| Renewals in the next 90 days | =COUNTIFS(L:L, |
| Annual value renewing in 90 days | =SUMIFS(H:H, |
In the sample, four subscriptions worth 76,200.00 a year renew in the next 90 days. Read more on how auto-renewing SaaS contracts catch teams out.
A tracker decays as people sign up for tools and forget to tell anyone. A quarterly audit pulls every source of recurring charges back into one list and asks each owner to justify what they keep. The download adds an owner and a due date to every check.
Renewals slip when nobody owns the date. Spendflo tracks every renewal and who decides it.
See how it worksThe contract renews for a new term unless someone gives notice in time.
How many days before renewal you must cancel or change the plan.
How often you are invoiced: monthly, quarterly, annually or a custom term.
Active users divided by licences bought, the quickest measure of waste.
A charge for seats or usage above what was contracted, often billed at renewal.
Aligning add-on purchases to the main contract's end date so everything renews once.
| Option | Formula | Annual cost |
|---|---|---|
| Pinecrest Chat today: 300 seats at 8.00 a month, billed quarterly | =300*8*12 | 28,800.00 |
| Annual plan, 300 seats at 7.00 a month | =300*7*12 | 25,200.00 |
| Annual plan, right-sized to 270 seats | =270*7*12 | 22,680.00 |
Illustrative prices. 262 seats are active, so 270 leaves room for a few hires.
Switching to annual billing alone saves 3,600.00 a year. Right-sizing first saves 6,120.00, because the 30 seats nobody uses are not locked in for another twelve months.
The owner gets the reminder and makes the renewal call.
Notice periods of 30 to 90 days mean the real deadline is well before renewal.
The totals then show what you will pay if nobody cancels in time.
Active users show whether a tool is worth its price at renewal.
Keep the vendor's confirmation so a renewed invoice can be disputed.
Small monthly tools add up and are the ones most often forgotten.
Many vendors send none, or send them after the notice period has started.
Adding monthly and annual amounts together gives a meaningless number.
Keep them with an end date so lifetime spend and history stay accurate.
Pull twelve months of vendor payments from AP, expenses and card statements, and keep anything that repeats.
Merge duplicate charges for the same tool and add the owner, category and status.
Enter the renewal date and notice period from each contract or terms of service.
Apply the colour rules and add calendar reminders for every cancel-by date.
Orbit Analytics BI renews on 15 Dec 2026 with 60 days' notice, so the tracker shows Act now and a cancel-by date of 16 Oct. Two of 40 seats are idle. The owner gives notice to drop to 38 seats at 600.00 each, cutting the renewal from 24,000.00 to 22,800.00. Figures are illustrative.
Every part on this page, in Excel and Google Sheets, with the examples filled in.
Use the tracker tab and calendar reminders. Most spend sits on a handful of cards, so the first export usually finds a forgotten tool.
Add the software inventory with usage and SSO, and give each department head their own rows to keep current.
Add the IT asset inventory and record data held per app, so audits and security reviews start from one list.
Best for finance and IT working from one master file.
Best when many owners keep their rows current.
Best for IT teams managing devices.
Price renewals with benchmarks from $3.7B in software spend processed, at 30% average savings.
See pricing benchmarksA good subscription tracker template shows what every tool costs, who owns it and the last day to change it. Once the list is complete, the savings come from deciding before each cancel-by date instead of after it.
Monthly, annual and lifetime cost with a renewal countdown.
Open the tracker →2Licences, active users and SSO status for every app.
Open the software inventory →3Colour rules, reminders and the value renewing in 90 days.
Open renewal reminders →Quick answers to what people ask most about the subscription tracker template.
Yes, you can download a free subscription tracker template from this page in Excel or Google Sheets. It calculates monthly, annual and lifetime cost and counts down to each cancel-by date.
List every recurring charge from your AP ledger, expense reports and card statements in one sheet, with an owner and a cancel-by date for each. Download the template to get the countdown, colour rules and a quarterly audit checklist ready-made.
It is the pattern where a subscription is easy to start but renews automatically, so charges continue long after anyone gets value from it. Download the tracker to record every notice period and get flagged before the deadline passes.
You can download one free on this page, as the software inventory tab of the subscription tracker workbook. It records licences, active users, utilisation, SSO status and the data each app holds.
Asset tag, type, serial number, who holds it, purchase date, cost, warranty end and a refresh date for every device. Download the template to get the IT asset inventory tab with refresh and warranty alerts built in.
Software buying
Purchase orders
Contracts
Vendor management
Sourcing and RFx
Budgets and business cases
Procurement
Accounts payable
Purchasing
Supply chain
Spendflo tracks renewals with an owner for each, shows benchmark prices for software, and runs intake so duplicate tools are caught before they are bought.
Enter your work email and we'll unlock every format.
Didn't start, or need another format? Pick one below.
Google Sheets: upload the file to Google Drive, then open it with Google Sheets.