Every growing business has a version of the same spreadsheet problem. A new hire asks for a design tool, a sales lead adds a data enrichment seat, and a department renews a project board nobody opened since spring. None of those decisions looks expensive on its own. Together they become one of the quietest leaks in an operating budget — and finding them turned out to be a data-joining problem, not an accounting problem.
The two datasets that never meet
The core difficulty is that the evidence lives in two places that rarely talk to each other. Invoices sit in accounting: vendor name, amount, renewal date, sometimes a seat count. Usage sits inside each app: who logged in, when, and whether the seat that was paid for is attached to a person who still works there.
Licences are bought for a headcount at a moment in time, and then headcount changes. Contractors leave, teams merge, and free trials convert quietly. Renewals arrive on different dates and are owned by different managers, so no single person ever sees the full list. A detection system has to build that full list itself, then keep it current as people join, move, and leave.
Three checks that carry most of the signal
The audit that became ERPSav runs as a set of rules-based checks. Three of them find most of the waste:
1. Match every subscription to an active owner and an active user list. If a tool has 40 paid seats and 17 logins in the last 60 days, that gap is not a rounding error — it is a direct negotiation point at renewal. The rule sounds trivial until the owner field is empty, which it is surprisingly often. An ownerless subscription is itself a finding.
2. Look for overlap. Two video tools, two file-sharing tiers, or duplicate AI add-ons doing the same job for different teams. Overlap detection needs more than a category label: two tools in the same category can be legitimate when different teams genuinely need both, so the stronger signal is overlapping active users doing the same work in both.
3. Check renewal terms against actual use. An annual discount only helps when the seats are used. Otherwise a shorter term or a smaller tier would have cost less. This check needs the renewal calendar joined against the usage window, so the warning lands before the charge, not after it.
What broke
Vendor names are not stable keys. The same supplier appears under a legal name, a product name, a billing descriptor, and an acquired company's name. Naive string matching splits one subscription into four. Normalisation — plus a human-reviewed alias table — mattered more than any clever matching algorithm.
Trials convert silently. A free trial started with a company card becomes a paid line with no purchase decision ever recorded. Any rule that assumes a human approved every charge will miss the exact charges most worth catching.
Headcount is a moving target. A seat check run once is stale within a quarter. The checks only stay honest when they re-run against a current roster, and when leavers, role changes, and contractor end dates feed back into the seat counts automatically.
False positives erode trust fast. Shared accounts, service accounts, and seasonal seats all look like waste to a simple seat-versus-login rule. Every flag needs the evidence attached — which invoice, which seats, which logins — so a finance lead can dismiss a bad flag in seconds instead of learning to ignore the whole report.
What worked
Treating each check as a small, explainable rule rather than one opaque score. ERPSav now runs 15 rules-based recovery engines across nine leak types — duplicate supplier payments, lease overcharges, utility and telecom errors, card fees, parcel overcharges, sales tax overcharges, warranty claims, and more — with SaaS waste as one dedicated category. The shared lesson across all of them is the same: the savings rarely come from one dramatic cancellation. They come from finally seeing the full stack in one place, owner by owner, renewal by renewal, before the next round of charges goes out.
For builders working on internal tools, the transferable part is the join itself: pick the two datasets your organisation keeps apart — spend and usage, assets and owners, access and employment — and build the boring, reliable bridge between them. The findings are usually waiting on the other side.
ERPSav is a product of CloudVerg, built for businesses in the US, Canada, the UK, Ireland, Australia, and New Zealand. The 14-day free trial includes every module and requires no card.