Cloud, SaaS & IT Spend SaaS Licensing & Renewals ITAM software licence optimisation (ISO/IEC 19770-1)

SaaS Seat Utilization and Shelfware Calculator

Seats bought are not seats used, and the gap is billed annually whether anyone logs in or not. This calculator turns three numbers you can pull from any admin console — seats purchased, seats assigned and seats active in the last 30 days — into a utilisation rate, the annual cost of the shelfware, the seat count you should actually be buying at your chosen headroom, and what right-sizing returns at renewal. It also prices the waste still to come before the contract expires, which is the number that decides whether to act now or wait.

Calculator

This calculator runs in your browser. Enable JavaScript for live results — the inputs, formula and worked example below remain fully readable without it.

Inputs this calculator takes, with typical values
InputWhat to enterExample
Seats purchasedSeats on the contract, which is what you are billed for regardless of use.250
Seats assignedSeats allocated to a named person in the admin console, whether or not they use them.230
Seats active in the windowDistinct users who actually did something in the measurement period, typically the last 30 days.168
Cost per seat per yearYour contracted annual price per seat, net of any discount, not the list price.180 $
Headroom to keepSpare seats to hold above current active users for hiring and onboarding.10 %
Months left on the termTime until the contract can be changed. It prices the waste you are committed to before renewal.7 months

It returns

  • Seat utilisation — Active users divided by seats purchased.
  • Assignment rate — Seats allocated to a named person, divided by seats purchased.
  • Annual shelfware cost
  • Right-sized seat count — Active users plus your headroom, rounded up.
  • Saving at renewal — Negative means the right-sized count is above the seats you hold.
  • Waste over the remaining term
  • Effective cost per active user

The formula

U=AP,W=(PA)c,Sright=A(1+h)

In plain text: utilisation = active / purchased; shelfware = (purchased − active) × cost; right-sized = ⌈active × (1 + headroom)⌉

  • PSeats purchased on the contract (seats)
  • ADistinct users active in the measurement window (seats)
  • cContracted cost per seat per year ($)
  • hHeadroom kept above the active count (decimal)
  • USeat utilisation (decimal)
  • WAnnual shelfware cost ($)

The right-sized count is rounded up because you cannot buy a fraction of a seat, and rounding down would leave an active user unlicensed.

Updated Category SaaS Licensing & Renewals Verified against published test cases Reading time 10 min

Three seat counts, and why they are never the same

Every per-seat contract has three populations and they diverge quietly. Purchased is what the contract bills: a fixed number, agreed in advance, usually at the previous renewal. Assigned is what the admin console has handed to a named person. Active is who actually did something in the last month. Purchased is almost always the largest, and the gap between it and active is shelfware.

The gaps have different causes and different fixes. Purchased minus assigned is a procurement problem: seats bought for growth or a project that never arrived. Assigned minus active is an offboarding problem: leavers whose accounts were never reclaimed, people who tried the tool once, teams that switched to something else. The second gap is the easier win because every seat in it has a named owner you can ask about.

Utilisation puts a single number on it: active divided by purchased. That framing matters because the alternative — active divided by assigned — flatters you by hiding the seats nobody was even given. What you pay for is purchased, so that is the denominator.

The financial translation is the effective cost per active user: total contract value divided by the people who use it. At 67.2% utilisation, a $180 seat costs $267.86 per real user. That is the figure to quote when someone asks whether the tool is worth its price, because it is the price you are actually paying.

From utilisation to a seat count you can negotiate

Utilisation is the simple part: U = A / P. Shelfware follows as (P − A) × c, the idle seats multiplied by what a seat costs. Both are descriptive; neither tells you what to buy.

The number to negotiate with is the right-sized seat count, ⌈A × (1 + h)⌉. It takes the people actually using the tool and adds headroom for hiring and onboarding, then rounds up because a partial seat does not exist and rounding down leaves someone unlicensed. Headroom is a policy choice: 5% for a stable team, 10–15% where hiring is steady, more where a rollout is in progress.

Saving at renewal is (P − right-sized) × c, and it can be negative. If your utilisation is high, adding headroom pushes the right-sized count above what you hold and the calculator says so plainly — the correct action there is to budget for more seats, not to celebrate a saving. Any tool that reports only positive savings is hiding half its answers.

Waste over the remaining term, shelfware × months ÷ 12, is the money already committed. It is not recoverable through negotiation in most contracts, and it is the argument for reclaiming seats early rather than waiting: seats you free now can absorb new hires instead of triggering a mid-term purchase.

Worked example: 250 seats, 168 people using them

You hold 250 seats at $180 a year. The admin console shows 230 assigned and 168 distinct users active in the last 30 days. You want 10% headroom, and the contract has 7 months left.

  1. Utilisation. 168 ÷ 250 = 67.2%.
  2. Assignment rate. 230 ÷ 250 = 92.0%, so 20 seats were never handed to anyone at all.
  3. Idle seats. 250 − 168 = 82 seats paid for and unused, of which 62 are assigned to a named person and 20 are unassigned.
  4. Annual shelfware. 82 × $180 = $14,760 a year.
  5. Right-sized count. 168 × 1.10 = 184.8, rounded up to 185 seats.
  6. Saving at renewal. (250 − 185) × $180 = 65 × $180 = $11,700 a year.
  7. Waste over the remaining term. $14,760 × 7 ÷ 12 = $8,610 already committed before you can change anything.
  8. Effective cost per active user. 250 × $180 ÷ 168 = $45,000 ÷ 168 = $267.86 against a $180 list seat.

Two conclusions come straight out. The renewal saving is $11,700, not the $14,760 of shelfware, because 10% headroom keeps 17 spare seats deliberately. And the $8,610 of remaining-term waste is not recoverable by negotiation, which is the case for reclaiming the 62 assigned-but-inactive seats now and using them for the next two quarters of hiring rather than buying more.

What utilisation is good, and what to do at each level

Above 90% the contract is well sized and the risk has flipped: you may be one hiring wave from an overage charge, which is usually priced above your negotiated rate. Check the headroom output rather than the saving, and consider buying a small block at renewal while you still have leverage.

Between 75% and 90% is normal and healthy for a tool with routine turnover. Reclaim assigned-but-inactive seats, but there is no case for a difficult renewal conversation. Between 60% and 75% is where the money is: a fifth to a third of the contract is idle, the saving is material, and the vendor knows the usage data as well as you do.

Below 60% the question stops being how many seats to buy and becomes whether to keep the tool. An effective cost per active user well above the list price usually means either a failed rollout or a product that lost to an alternative already in the estate. That is a consolidation question rather than a licence-count question.

Whichever band you are in, measure over a sensible window. Thirty days is the standard, but a tool used monthly at close, quarterly for planning, or annually for compliance will look dead at 30 days and be entirely legitimate. Match the window to the workflow, and say which window you used whenever you quote a utilisation figure.

Shelfware and right-sizing at each utilisation level

Per 100 seats at $180 a seat with 10% headroom. Active seats are the utilisation percentage applied to 100; right-sized is that count multiplied by 1.10 and rounded up; the last column is 100 minus the right-sized count.
UtilisationActive seatsAnnual shelfwareRight-sized seatsSeats returned at renewal
100%100$0110−10
95%95$900105−5
90%90$1,800991
80%80$3,6008812
70%70$5,4007723
60%60$7,2006634
50%50$9,0005545
40%40$10,8004456

The negative values in the last column are real answers: at 95% utilisation with 10% headroom you need to buy five more seats, not return any. The break-even sits just under 91% utilisation, where the right-sized count first drops below the seats held.

Mistakes that make a utilisation number wrong

  • Counting logins instead of distinct users. One person logging in forty times is one active seat. Take a distinct-user count from the admin report, not an event count.
  • Using a 30-day window for a monthly-cadence tool. Financial close, board reporting and compliance tools are used a few days a year and are not shelfware. Match the window to the workflow.
  • Measuring assigned rather than purchased as the denominator. It hides seats that were bought and never handed out, which is often the largest single block.
  • Forgetting that some licences are contractually named. Where a seat is tied to an individual rather than a concurrent slot, reclaiming and reassigning may need a contract change, not just an admin action.
  • Right-sizing to zero headroom. A contract with no spare seats generates emergency purchases at list price, which usually costs more than the seats you handed back.
  • Assuming the saving is recoverable mid-term. Most agreements permit growth but not reduction until renewal, so the remaining-term waste is committed spend, not a target.

Where the numbers come from

Seats purchased comes from the order form, not the console — consoles sometimes display an entitlement that includes free or sandbox seats. Seats assigned comes from the admin user list. Active seats comes from the vendor's own usage report where one exists, and from your identity provider's sign-in logs where it does not; single sign-on logs are the most reliable cross-vendor source because they are yours rather than the vendor's. Where a tool exposes an API, pull all three monthly and keep the series — utilisation on the day of a renewal negotiation is far less persuasive than twelve months of it.

Turning the number into a renewal outcome

Take utilisation into the renewal early. Most vendors require 30 to 90 days' notice to change seat counts, and a right-sizing request made inside that window simply does not apply. Diary the notice date rather than the renewal date, and bring the twelve-month utilisation trend rather than a single reading.

Expect the counter-offer to be a discount rather than a seat reduction, because vendors defend seat count above price. A discount on 250 seats can beat list price on 185 seats or it can be worse — compare the two on total contract value, and check what the uplift terms do to each over the next three years before agreeing.

Where utilisation is low because the tool overlaps another one, the licence conversation is the wrong conversation. Price the alternative properly with the consolidation calculator, and include implementation and retraining in the total cost of ownership before switching, since a cheaper licence attached to a costly migration is not a saving. Where usage is genuinely growing, model both pricing shapes with the per-seat versus usage calculator — a tool you are outgrowing on seats may be cheaper on consumption.

Frequently asked questions

What is a good SaaS seat utilisation rate?

Above 90% is well sized, 75–90% is normal with routine turnover, and below 60% means a material share of the contract is idle and the renewal deserves a difficult conversation. There is no universal target because tools differ in cadence — a monthly-use tool measured over 30 days looks far worse than it is. Compare against your own trend and against the effective cost per active user rather than an industry figure.

What counts as an active seat?

One distinct user who performed a meaningful action in the measurement window — not a login count, and ideally not a passive event such as receiving a notification. Take the figure from the vendor's usage report or from your identity provider's sign-in logs. Whichever source you use, keep it consistent month to month, because the metric is only useful as a series.

How much headroom should I keep?

Enough to cover hiring and onboarding until the next point at which you can add seats cheaply. Five percent suits a stable team, 10–15% suits steady hiring, and more is justified during an active rollout. The cost of too little headroom is an emergency purchase at list price, which usually exceeds the saving from the seats you handed back.

Can I reduce seats in the middle of a contract term?

Usually not. Most SaaS agreements let you add seats at any time and only allow reductions at renewal, which is why this calculator prices the remaining-term waste separately. Read the termination and adjustment clauses; some enterprise agreements include a true-down right or a flex band, and a few permit reductions at an anniversary rather than only at renewal.

Should I use assigned or purchased seats as the denominator?

Purchased, because that is what you are billed for. Using assigned seats hides every seat that was bought and never handed out, which in many contracts is the single largest block of waste. Report both figures — the assignment rate is a useful second number — but headline utilisation against what you pay for.

Why is my effective cost per user so much higher than the seat price?

Because the whole contract is divided among the people who actually use it. At 67.2% utilisation a $180 seat costs $267.86 per active user, since you are paying for roughly three seats for every two people. The ratio is exactly one divided by utilisation, so it climbs steeply below 50%.

Does reclaiming inactive seats save money immediately?

No, unless your contract bills on active use. Reclaiming a seat mid-term frees capacity rather than cash: the value is that the next new hire consumes a seat you already own instead of triggering an additional purchase. The cash saving arrives at renewal, when the seat count on the order form drops.

How do I handle tools with mixed licence types?

Run the calculation once per licence tier rather than blending them. A contract with 50 full seats and 200 viewer seats has two different prices and two different utilisation profiles, and blending them hides the case where the expensive tier is the idle one. The tier-by-tier view is also what a vendor will negotiate against.

References