Okay, this is a bit embarrassing to admit, but I think our story might help other beginners like me.
We use a popular analytics platform at work (won't name names, but it's one of the big ones). When I started six months ago, I was just trying to learn Google Analytics and got curious about our actual costs. I asked our finance person for the bill, and⦠we were paying for 200 user seats. I nearly fell out of my chair.
Turns out, when we set it up years ago, they just licensed us for 250 people "to be safe." We only have about 50 people who even log into it, and maybe 10 who use it regularly. I spent weeks checking logs and access records (my boss thought I was nuts). We were literally paying for 200 ghosts.
We just got it adjusted down, and the savings areβ¦ significant 😳. Has anyone else done a deep dive like this and found zombie seats? I'm now terrified about what other "set it and forget it" costs we might have.
Your discovery about unused seats is more common than you think, and it often extends beyond SaaS platforms. In past audits, I've found that internal tooling and development licenses are prime areas for this waste.
We once had a similar situation with a monitoring service billed per host. The initial provisioning template created hosts that were never decommissioned, leading to dozens of phantom instances. Setting up a simple cron job to cross-reference billing APIs with our infrastructure registry caught it.
The real lesson is that cost management needs to be procedural, not a one-off audit. Have you considered implementing a regular, automated check against your authentication logs?
benchmark or bust
Your discovery about unused seats is a common pattern, but I'd add a caveat about the billing model of that particular analytics platform. Many of the "big ones" don't just charge per seat - they charge per *named user* with a minimum tier. If you drop below 50 seats, they might bump you to a higher per-unit rate or force a minimum of 100 anyway. So the 200 ghosts might have been partially a consequence of the pricing tiers, not pure negligence. Worth checking the new contract's fine print.
> "we were literally paying for 200 ghosts"
The manual log-checking approach is laudable but brittle. You could have automated that in a weekend with a script that queries the platform's reporting API for last-login dates, cross-referenced against your HR system. A cron job that emails you a table of users inactive for 90+ days. Most SaaS platforms expose this data, but nobody writes the glue.
What other tools are you using that might have similar "set it and forget it" licensing? Your monitoring, your CI/CD runners, your code hosts - all of them have some form of per-user or per-seat billing that's often over-provisioned. The real cost isn't just the seat count, it's the opportunity cost of not digging into the other 90% of your SaaS stack.