SaaSClerk Blog · SaaS subscription visibility
How Do I Find Unused SaaS Subscriptions That Are Still Being Charged?
Short answer: "unused" and "still billed" are facts held by two different systems, so the list you want is a diff, not a search. Billing evidence lives in receipts and card statements. Usage evidence lives in vault logins, SSO history, and whether anyone still gets product emails. Build both lists, then work the rows that appear only on the money side — those are the subscriptions paying for nobody.
Why the question has no single answer
Search tools that claim to find unused subscriptions usually read one of the two sides and infer the other. Inference is where the false positives come from: a design tool used twice a year by one person is not waste, and a project-management seat nobody logs into is. The only defensible version of "unused" is a usage signal you can point at, on the same row as a billing signal you can point at.
Step one — get the money side first
Start with receipts rather than logins, because the billing side is the only one carrying dates. Twelve months of one mailbox is enough to produce one row per service with the amount, the interval, and the next renewal. A read-only scan does this in one pass; a keyword sweep of the same window produces the same rows in an afternoon.
Then add the rows the mailbox cannot see: charges on a personal card, app-store billing, and trials that converted without a confirmation email. Those only appear on statements, which is why a mailbox-only list quietly understates the total.
Step two — the four usage signals worth the time
- Vault activity. A password manager that shows last-used dates answers the question per service. No entry touched in a quarter is a real signal, not an inference.
- SSO or directory history. Where you have it, a sign-in log is harder to argue with than a vault entry.
- Product emails other than receipts. Mentions, review requests, digest reports, and "your trial ends" notices all imply someone is inside the tool. A service whose only mail in nine months is an invoice is a candidate.
- Seat count against headcount. If the invoice still says the same number of seats as when the plan was bought, and the team has since changed shape, at least one seat is paying for a person who is not there.
Step three — score the diff and act on it
Two columns are enough to turn a list into a decision, and both are already on the row:
| Used last cycle? | Renews within 14 days? | Action |
|---|---|---|
| No | Yes | Cancel now — after the charge the same step becomes a refund request |
| No | No | Queue with the renewal date as the deadline; set a reminder, not an intention |
| Yes, one person | Either | Downgrade seats to the people who signed in, then re-price |
| Unknown | Either | Find the owner first — an unowned renewal is the one that survives every audit |
What a scan does and does not tell you
SaaSClerk reads one mailbox, read-only, for 12 months of billing mail, and returns name, amount, interval, next renewal, and which address received the invoice for each service — plus a flag when the item looks personally purchased rather than centrally managed. It does not see logins, so it never claims a subscription is unused. It gives the money side of the diff and the date that makes the diff actionable, and an email 14 days before anything still active renews.
Related reading
Start with the side you can get in one pass
Run the billing half first: scan one mailbox free at saasclerk.app. Then put the usage signals next to it. The rows with an amount and a renewal date and no person behind them are the answer to the question you started with.