The Shelfware Confession Playbook 2026
Seats paid and seats in use drift apart. This play compares each account's seat use every week with customers its size that renewed at the same or higher revenue, checks the records before calling it a gap, and puts one move on the account in your CRM: a seat review with both paths, a reactivation plan, a right-size quote – or no move, with the reason noted.
Compare each account's paid-seat use with similar customers who renewed at the same or higher revenue. An account paying for 50 seats with 28 in use, where those peers run more, is a gap you can see – and a conversation you can lead.
This play runs inside the weekly check and puts one move on the account record: a seat review, a reactivation plan, or a right-size quote. Over-use is the seat upsell play; this is the other direction.
Measure it on active-seat % against peers, unused seats back in use, the renewal rate on under-used accounts, and how right-sized accounts grow over the next 12 months.
How it works12 steps
01SignalCompare each account's seat use with customers its size
Build the benchmark once, refresh it quarterly:
- Comparison customers: same plan tier and seat band (say 25–100 seats), 12+ months as customers, renewed at the same or higher revenue. Aim for 20; with fewer, label it low confidence.
- What an active seat is: default, a user who did a core action (not just logged in) in three of the last four weeks.
- The pattern: the median active-seat % and the low end (the 25th percentile). Until you've measured it, start from 80% as a default. This line will flag some customers who renew, so on later outcomes, count how many renewers and leavers fell below it. Your CS lead approves it.
Each week, compare every account with it: active seats against seats paid, ARR against peers, and activity per seat. Twenty heavy users and thirty idle seats is a different account from fifty light ones. Say an account pays $30,000 for 50 seats, 28 are active (56%), and peers its size run 82%: the 22 idle seats are $13,200 a year – a comparison, not a forecast. (The numbers are illustrative.)
Under about a hundred accounts, do it by hand in a spreadsheet.
02ScoreCheck the records before calling it a gap
- Sustained, not seasonal? Default, below the peers' low end for eight weeks, compared with the same weeks last year. School terms, year-end freezes and first-90-day rollouts aren't gaps.
- Quiet vs never started: split the idle seats; each group gets a different fix.
- Days to renewal: from the contract.
- Cuts, champion & tickets: 90 days of CRM notes and support tickets. A departed champion is the champion-departure play; a layoff is the quiet-cuts play.
03DecisionDecide whether there's a move worth making now
Leave it alone if any of these hold (defaults): seat use is at or above the peers' low end for this segment, the dip is seasonal or a rollout still under way, seats were added in the last 90 days for a planned rollout, the seat count is a contract minimum, or the records sent it to another play. Everything else picks a move.
04ActionLeave it alone, and write down why
Set Recommended move to No move, write the reason in one line, and set Review date to when it could change – after the season, or at the end of the rollout. The leave-it-alone play covers the call in full.
05DecisionPick the move the evidence supports
Apply these in order; the first that fits wins (the 90 days is a default):
- Right-size: the customer has asked about seat count, or a reactivation checkpoint passed with seats still idle. Right-size quote.
- Inside 90d: a seat review this close to renewal reads as a negotiation. Draft a reactivation plan instead, and queue the seat review for the first quarter of the new term.
- Over 90d: everything else. Seat review with both paths.
06ActionDraft the seat review, both paths priced
The seat summary below goes on the record, with two priced paths: a reactivation plan with a 30-day goal, or a quote at the seats they use. Put the smaller number in writing yourself.
07ActionDraft a reactivation plan for the idle seats
The never-started list, the first result for each role, and an in-app message aimed only at those users – not at people already active. Your champion hears how many went quiet, with one question: what changed?
08ActionDraft a clean right-size quote
The new seat count at the standard rate, effective at renewal, with the seat list attached. Show the unit price, total and effective date, including any real change to discounts. Don't invent penalties or use pricing consequences as pressure – that turns an honest offer into a negotiation.
09Human stepYour team decides and runs the move
The AM or CSM reads the evidence and runs it as drafted, changes it, or passes. They own every customer conversation. If the customer picks reactivation, agree a checkpoint with them: if the idle seats haven't moved in 30 days, the right-size quote is next. Before acting, record the success measure (default: [n] idle seats active by the checkpoint, or the quote agreed before renewal) and the review date. Once the reactivation drafts have been right for a few weeks, your team can choose to automate that lane.
10ActionGuide never-started seats to a first result
One message per role in Appcues, targeted on the never-started list: the first-value action, one line, one button. Seats that have never logged in won't see it, so send those users the same line by email.
11ActionIssue the right-size quote
Send it the same week, one email, one document: a Stripe quote PDF, but don't accept the quote in Stripe (that starts a new subscription). The seat change is what changes the bill: schedule it in Stripe for the renewal date and update the renewal deal in the CRM.
12OutcomeReview what changed, then sharpen the benchmark
On the review date, record in Review result: are the seats in use or the right-size agreed (progress), did the renewal close at a count that matches use (the result, at renewal), and what else played a part? If nothing moved, change the move, stop it, or give it time – the eight-week review covers how. Each quarter, compare 12-month expansion for right-sized accounts with under-used accounts left at full count. Your own records settle whether this play pays.
Setup and templates
Sources: active seats and per-seat activity from a saved query in PostHog, Amplitude or Mixpanel; seats paid and price from billing (Stripe) or the CRM; renewal date and notes from the CRM; tickets from support. By hand: a weekly export of each into one spreadsheet, one row per account. Account-level numbers need your analytics tool's account add-on (group analytics in PostHog, Accounts in Amplitude, Group Analytics in Mixpanel) and a group call in your app. Save the query, then subscribe to it (in Amplitude, add it to a dashboard and subscribe to that) so the result lands in your inbox or Slack on the schedule you set.
Company properties in HubSpot (Starter or above; free HubSpot allows 10 custom properties in total), or your CRM's account object:
| Property | Type | Filled by |
|---|---|---|
| Active seats | Number | Weekly check |
| Seats paid | Number | Weekly check |
| Active-seat % | Number | Weekly check |
| Peers' active-seat % | Number | Weekly check |
| Never-started seats | Number | Weekly check |
| Gap value | Number (currency) (idle seats × seat price) | Weekly check |
| Recommended move | Dropdown select: Seat review · Reactivation · Right-size quote · No move | Weekly check |
| Move reason | Single-line text | Weekly check |
| Success measure | Single-line text | Account owner |
| Review date | Date picker | Weekly check, then account owner |
| Review result | Dropdown select: Seats back in use · Right-size agreed · Renewed at matched count · No change yet · Stopped | Account owner |
The automation here uses HubSpot workflows (any Professional hub). On Free or Starter, run the same saved view and create the tasks by hand.
The weekly list is a saved view: Recommended move is known and Review date is this week or overdue. In HubSpot that's two filter groups: Review date is This week, or Review date is before Today. Each move creates a task for the owner, "Seat use: [move]", with the draft in the body.
In Appcues, target the never-started list as a segment on a user property (an uploaded list can't be edited after you create it). In Stripe, the seat change is a subscription schedule: a new phase starting on the renewal date with the new seat count. While the schedule is attached, change the subscription through the schedule, not directly. In Orb, schedule the new seat quantity for the renewal date (API, or the subscription-edit screen if it's enabled for your account); Orb has no quotes, so send the quote from the CRM or a document.
Finance approves the scope and duration of any price commitment before you offer it. Share a named list of users only with a verified recipient authorized to view those users' activity, through an approved access-controlled route.
Seat summary (Seat review): in use: [n] of [seats] seats, [top features] · idle: [n] went quiet, [n] never started · peers your size: [x]% active · to get them started: [first result per role] · path one: [n] seats active by [date] · path two: [new seats] at [price] from [renewal date].
Seat review invite:
Hi [name] – [n] of your [seats] seats are active right now. We'd rather talk about that with you than have it surprise anyone at renewal. Would twenty minutes help? We'll bring two options: getting the rest started, or matching the contract to what you use.
Reactivation message (in-app, never-started users):
[Name], your team uses [product] for [job]. Here's the one thing most [role]s do first – it takes about [minutes] minutes. [Button: Start]
Use this peer claim only if your records support the specific comparison. Otherwise describe this account's activity.
Champion note (went-quiet users):
Hi [name] – some of your team stopped using [product] after [month]. Did something change? If they've moved on, we can take those seats off at renewal.
Right-size note:
Hi [name] – as agreed, here's the quote at [new seats] seats, [price] a seat, from [renewal date]. The seat list is attached. If more of the team starts using [product], you can add seats by [date] at [price] per seat per [billing period]. That rate applies until [renewal date]; after that, [approved pricing rule].
No move: "No move – [reason]. Recheck [date]."
How Accoil fits
Accoil is a customer-success consultancy with our own tooling, and this is a play we run with you, not for you. We build the seat-use benchmark with your team, and you approve it. Every week we check every account in the agreed segment, and the recommended move and its evidence land on the account record in your CRM – we recommend HubSpot – at a pace your team can actually run. Your team makes every call. Nobody from Accoil contacts your customers. After the agreed window we review what changed together, and you keep the playbook, the benchmark and the analysis.
Running it yourself? Swap HubSpot for Salesforce or Pipedrive, Appcues for Candu, and Stripe for Orb. On Salesforce, the field writes need API access (Enterprise and up, or an add-on on Professional). On Pipedrive, automations and date triggers need the Growth plan. The play stays the same.
Thirty minutes with Kate, Simon or Peter on one example segment: what a successful customer looks like, where the gaps are, and whether there's work worth doing this quarter.
Talk to a founder →Keep reading
Pricing Migration Without the Churn Spike 2026
New pricing is a chance to put every customer on the plan that fits how they already work. This play sorts each account by its usage against the new packaging and your successful customers, then runs the move on the CRM record: a wave notice, an upgrade case, a call first – or no move until renewal, with the reason noted.
AI Renewal Agent for the Long Tail 2026
Small renewals go best when they're handled on time, and your team's hours go further on the accounts that need a person. This play checks every renewal below your long-tail line against customers who renewed, then picks a lane: leave it alone, a renewal agent your team set up for standard terms, or the AM – with every step on the CRM record.
Usage Bill-Shock Absorber Playbook 2026
A usage spike can be the best news an account sends you. This play catches it mid-cycle, compares it with how your customers who moved up a plan grew, and puts a drafted move on the account in your CRM before the invoice lands: a plan conversation, a note naming a runaway meter – or no move, with the reason noted.
Every playbook, one download
All 32 workflows as print-ready playbooks — diagrams included. Plus every new workflow as we publish it.