DEV Community

付小花
付小花

Posted on

Your seat count is in two systems and nobody reconciles them

Every company I have looked at pays for seats that no one opened this month. Not many, usually — two or three out of twenty, sometimes five. The amount per seat is small, so it never becomes a meeting. It becomes a line item that renews eleven times a year.

The reason is structural: the number of seats you pay for lives in a billing system. The number of people who actually use the tool lives in an admin console, an identity provider, or somebody's memory of who left in March. Nothing in the normal course of business forces those two numbers to meet.

Where the gap comes from

Four things, in order of how often I see them:

  • Onboarding over-provisions. A new team of five gets five seats before anyone knows whether all five will use the tool. Two of them end up living in a different product and the seats stay.
  • Offboarding stops at the account. The person leaves, the laptop comes back, the identity provider account is disabled — and the vendor keeps billing the seat, because nothing in the company owns that relationship.
  • Contractor seats get bought on the company card and never appear in the headcount the finance team reconciles against.
  • Annual plans hide the change. On monthly billing, the waste shows up as a smaller next invoice. On annual billing it shows up once a year, at renewal, when it is already too late to do anything but renew or fight.

None of these are dramatic. Each one is one seat. The problem is that they compound quietly across every tool in the stack.

The 30-second version

For each tool, you need four numbers. You almost certainly have all of them already:

  1. seats you pay for
  2. price per seat per month
  3. seats with activity in the last 30 days
  4. billing cycle (monthly or annual)

Then:

waste per month = (seats paid − seats used) × price per seat
waste per year  = waste per month × 12
Enter fullscreen mode Exit fullscreen mode

That is the whole calculation. It is not a dashboard, it does not need an integration, and it does not need your billing inbox.

A worked example

A 22-person team, four tools, all monthly:

Tool Seats paid Seats used $/seat/mo Waste/mo
Design suite 22 14 15 120
Project tracker 22 19 12 36
Analytics 10 7 45 135
Meeting notes 22 11 8 88

That is $379 per month, $4,548 per year, from four lines nobody had compared. The interesting part is not the total — it is the ratio: none of these tools were at 100% usage, and the largest single leak was the analytics tool where each unused seat cost almost six times as much as an unused seat in meeting notes.

The ranking that matters is dollars wasted per tool. Counting idle seats instead puts the wrong tool at the top, because the tool with the most idle seats is rarely the one costing the most.

Three traps that make the number wrong

Tiered pricing. If removing seats moves you to a lower tier, the saving is bigger than idle × price. If it moves you to a higher per-seat price, the saving is smaller. Check the pricing page before you promise yourself a refund.

Annual contracts. An idle seat on an annual plan does not save money this month. It saves money at renewal, and only if someone remembers. Write the renewal date down next to the number.

Bundled seats. Some plans include seats in the platform fee. Those idle seats cost nothing, so keep them out of the total or you will inflate the case and lose the argument with finance.

What I would actually do with the number

Two moves, in this order:

  1. Cut the obvious ones now. The seats belonging to people who left, and the seats nobody has opened in 30 days. This needs no negotiation, only an admin console and a decision.
  2. Put the rest on a renewal calendar. Every tool that is annual, with the waste number and the renewal date side by side. The decision at renewal is different when it is a number instead of a feeling.

The team-level version of this — reading 12 months of billing email and building the full inventory — is what my product does. But the first pass takes thirty seconds and needs nothing from anyone.

If you want the four-column check without doing the arithmetic, I put it here: unused seat calculator. It runs in the browser, no signup, no email, and it will email you the per-tool table if you want to forward it to whoever owns the budget.

One honest note: the calculator is free, it is the only thing on the site that asks for nothing, and I built it because every conversation about SaaS waste starts with the same four numbers.

Top comments (1)

Collapse
 
alexshev profile image
Alex Shev •

Seat counts become risky when neither system is declared authoritative for a particular moment in the lifecycle. A small reconciliation job with a discrepancy queue, ownership, and effective timestamps is usually more valuable than another dashboard showing two conflicting totals.