How to Audit SaaS Subscriptions Before Renewal (Step-by-Step)
Learn how to audit SaaS subscriptions: build an inventory, check usage and seat counts, and act 60 to 90 days before auto-renewal to cut software spend.

How do you audit SaaS subscriptions before renewal?
Auditing your SaaS subscriptions means pulling a complete inventory from finance, SSO logs, and expense cards, matching it against actual usage data from each vendor's admin console, and flagging every seat that's been inactive for 30 to 90 days before your renewal notice window closes. Done 60 to 90 days before a contract renews, this process routinely recovers 15 to 25% of software spend. Done after the auto-renewal clock has already started, it recovers almost nothing, because the leverage is gone.
That's the method, in two sentences. The rest of this piece is how to run it.
TL;DR
- Vertice's data shows that 65% of enterprise SaaS licenses are either entirely unused or underutilized as of Q2 2026.
- Running the audit 60 to 90 days before a contract renews routinely recovers 15 to 25% of software spend.
- Underutilization is now the bigger and faster-growing problem, rising even as pure shelfware shrinks slightly.
- AI-linked feature repricing has run 20 to 37% against a typical 3 to 9% annual uplift, so renewals are getting more expensive.
- Organizations without centralized SaaS visibility are typically aware of only about 40% of the applications running inside the business.
- Audit data is leverage in the renewal negotiation, letting you rightsize seats, push back on price increases, and request a true-down clause.
How much SaaS spend is actually wasted?
The numbers are not close. Across datasets, roughly half of enterprise SaaS licenses are unused or underutilized. Speakwise puts fully unused licenses at 51% of all enterprise purchases, the highest rate on record. Vertice's platform data shows 65% of all licenses are either entirely unused or underutilized as of Q2 2026, up from 62% a year earlier, with underutilization specifically climbing from 47% to 51% of licenses while fully dead shelfware ticked down from 15% to 14%. Ramp's numbers land in the same range: 53% of applications underutilized or unused, costing organizations roughly $21 million a year.
The reason this persists is scale, not negligence. The average organization now manages 211 SaaS renewals a year, which is close to one renewal decision every business day. Gartner's research finds that organizations without centralized SaaS visibility are typically aware of only about 40% of the applications actually running inside the business, and overspend by at least 25% as a result. CFO Dive reports the average company wasted $18 million on unused licenses in 2023, with large enterprises averaging $127 million. Zylo's 2025 data is the encouraging counterpoint: deliberate audit programs pushed utilization from 47% to 54%, cutting measured waste from $20.9 million to $19.8 million in a single year. The waste is real, but so is the recovery, if you run the process.
Step 1: How do you build a complete inventory of every active subscription?
You cannot audit what you cannot see, and most finance teams do not actually know what they're paying for. Start from three sources, not one:
- Accounts payable and card statements. Pull every recurring charge over the last 12 months, including annual invoices that only hit once a year.
- SSO and identity provider logs. Your identity provider sees every app employees log into with company credentials, including tools finance never approved.
- Expense reports. This is where shadow IT hides: the $40-a-month tool a team lead expensed without going through procurement.
Cross-reference all three. Anything that shows up on a card statement but not in your SSO log is worth a second look, and anything in SSO logs but missing from AP records is a tool someone is paying for personally and getting reimbursed, which usually means nobody owns the vendor relationship.
Step 2: What counts as 'unused' versus 'underutilized'?
Once you have the list, the next question is simple: who's actually using it, and how much? These are two different problems with two different fixes.
Unused means zero logins, zero activity, full stop. This is shelfware: seats purchased, assigned, and never touched.
Underutilized means the seat is active but running far below its paid capacity, a $70-a-month power-user license being used for basic file viewing, for instance. Vertice's data shows this is now the bigger and faster-growing problem, with underutilization rising even as pure shelfware shrinks slightly.
Most teams use a simple inactivity ladder to sort seats:
- 30 days inactive: early warning, flag for monitoring.
- 60 days inactive: review threshold, someone should check with the user or manager.
- 90 days inactive: strong candidate for reclamation or cancellation.
Pull login timestamps directly from each platform rather than trusting a vendor's self-reported usage dashboard, which is often built to make utilization look healthier than it is.
Step 3: How do you audit seat counts tool by tool?
Generic usage reports miss details that live inside each platform's own admin console. Work through your highest-cost tools individually:
- Microsoft 365: admin.microsoft.com → Billing → Licenses. Compare seats purchased against seats assigned, then cross-check assigned seats against last-activity data.
- Google Workspace: admin.google.com → Reports → Users. Sort by last login and export anyone inactive 30 or more days.
- Slack: check the admin analytics panel for members who haven't posted or read a message in the review window; deactivated-but-still-billed accounts are common after offboarding gaps.
- GitHub: review organization member activity against actual commit and PR history, since many seats are assigned at onboarding and never revisited.
- Zoom: pull the meeting-minutes report by user; licensed accounts with near-zero meeting time are easy cancellation candidates.
- Jira: compare active-license counts against users who've touched a ticket in the last quarter, especially after reorgs when teams migrate tools but old seats stay provisioned.
This tool-by-tool pass is tedious, but it's where the real recoverable dollars live. Invoice-level review alone will never show you which individual seat is dead weight.
Step 4: When do auto-renewal notice windows close?
Timing is the part most audits get wrong. The data work doesn't matter if you finish it after your cancellation window closes. Across Vertice's dataset, 89% of SaaS contracts contain an auto-renewal clause. Combine that with notice windows that typically run 30 to 90 days before the renewal date, and a huge share of contracts auto-lock before anyone notices.
The practical rule: start the full audit 60 to 90 days before an annual contract renews, with lighter quarterly checks on month-to-month tools. Starting any later means you're negotiating, if at all, with no leverage and a shrinking clock. This is also where price-increase risk compounds the problem: 79% of IT leaders report hitting a price increase at renewal in the last 12 months, and AI-linked feature repricing has run 20 to 37% against a typical 3 to 9% annual uplift.
Step 5: How do you classify what you find and act on it?
Once you know what's unused, what's underutilized, and when each contract renews, sort every tool into one of four buckets and apply the matching action:
- Completely unused. No logins in 90+ days, no business justification offered. Cancel at the next renewal window, or sooner if the contract allows mid-term termination.
- Underutilized. Active but running well below paid tier capacity. Downgrade to a cheaper plan or consolidate licenses into fewer, better-used seats.
- Redundant or overlapping. Two tools solving the same problem for different teams. Pick one, migrate the other team, and cancel the loser.
- Legacy shelfware. Tools kept "just in case" from a project or team that no longer exists. These are almost always safe to cut outright.
This is also the point where it's worth asking a harder question about a handful of your highest-cost line items: whether renting the tool still makes sense at all, or whether running the workflow yourself on top of cheap AI APIs now beats paying per-seat for something a few hundred lines of code can replicate.
Step 6: How do you bring the audit data into the renewal negotiation?
Audit data is leverage, not just a cleanup list. Walk into renewal conversations with your actual usage numbers, not the vendor's. Three moves consistently work:
- Rightsize the seat count to match active usage, not the number from two years ago that nobody has revisited.
- Push back on price increases by naming the specific utilization gap. A vendor has a harder time justifying a double-digit uplift when you can show 40% of purchased seats are dormant.
- Request a true-down clause that lets you reduce seat counts mid-contract if usage drops, not just a true-up clause that only lets the vendor charge you more.
This is the step most teams skip, and it's the one that converts an internal cost-cutting exercise into an actual negotiating position.
How do you make the audit a quarterly habit, not a fire drill?
A one-time cleanup buys you one good year. The waste comes back because the underlying governance gap never closed: 40% of organizations still track renewal dates manually on a spreadsheet or calendar, which is also where ownership between IT, finance, and procurement tends to blur. Fix the structure, not just the spend:
| How to spot it | Recommended action | Urgency | Savings potential | |
|---|---|---|---|---|
| Completely unusedSeats with zero logins and no owner | No logins in 90+ days, no business justification | Cancel at next renewal, or sooner if contract allows | High | High |
| UnderutilizedActive seats on an oversized plan | Active, but far below paid tier capacity | Downgrade plan or consolidate into fewer seats | Medium | Medium |
| Redundant or overlappingTwo tools solving the same problem | Different teams paying for near-identical tools | Pick one, migrate the other team, cancel the loser | Medium | Medium |
| Legacy shelfwareTools tied to a dead project or team | Kept 'just in case' from a project that no longer exists | Cut outright | High | High |
- Assign a single owner per tool, someone whose name is attached to the renewal date and the usage review.
- Run the full tool-by-tool review quarterly for month-to-month contracts and 60-90 days ahead of any annual renewal.
- Use virtual cards with spend limits and expiration dates on new SaaS purchases so forgotten trials can't silently convert into annual contracts.
Most organizations eventually reach for a centralized system because spreadsheet tracking does not scale past a couple dozen tools, let alone 211 renewals a year. Dedicated SaaS management platforms exist to pull usage and seat data into one place automatically, which helps a quarterly cadence survive contact with a real headcount and a real renewal calendar.
The math is not complicated. Half your licenses are probably doing nothing or close to it. The fix is a repeatable process, not a one-time project, and it has to finish before the auto-renewal clock runs out. Everything else in software budgeting is downstream of getting that one habit right.
Frequently Asked Questions
How often should you audit your SaaS subscriptions?
Run a full audit 60 to 90 days before any annual contract renews, since that matches typical cancellation notice windows, and do lighter quarterly checks on month-to-month tools. Waiting until closer to the renewal date usually means the auto-renewal clause has already locked you in.
What counts as an unused SaaS license?
Most teams flag a seat with 30 days of no activity as an early warning, treat 60 days as a review trigger, and consider 90 days of zero logins a strong candidate for cancellation. Underutilized is different from unused: it means the seat is active but running well below the capacity you're paying for.
Can you get a refund for unused SaaS seats mid-contract?
It depends on the contract. Some vendors offer true-down clauses that let you reduce seat counts and get a prorated credit, but most standard SaaS agreements only include true-up clauses that let the vendor charge more for added seats, not less for removed ones. This is why requesting a true-down clause during renewal negotiation matters.
What percentage of SaaS licenses typically go unused?
Estimates converge around half. Speakwise puts fully unused enterprise licenses at 51%, Vertice shows 65% of all licenses either unused or underutilized as of Q2 2026, and Ramp's data lands at 53% underutilized or unused.
How much money can a SaaS audit typically recover?
First-pass audits commonly surface 15 to 25% of software spend as immediately recoverable, mostly from dormant seats and overlapping tools. Zylo's 2025 data shows deliberate audit-and-reclaim programs lifted utilization from 47% to 54% and cut measured license waste by over a million dollars in a single year for the average organization.
How we source, write, and correct our articles. Editorial standards



