SaaS Seat Reclaim and Rightsizing Playbook

Run a seat reclaim sprint to remove inactive seats, right-size tiers, and lock in recurring savings.

Run the OperationCorePlaybook45 minProcurement and Ops, Finance

Seat reclaim is the fastest, most repeatable SaaS savings motion.

This playbook gives you a beginner-safe way to:

  • identify inactive seats and unnecessary tiers
  • remove seats without breaking workflows
  • ensure billing reflects the new counts
  • prove savings and make it a monthly cadence

What you will produce

  1. A seat reclaim plan (target vendors plus timeline)
  2. A seat roster and inactivity rules
  3. A reclaim execution tracker (who removed what, when)
  4. A right-sizing proposal (tier changes, packaging changes)
  5. A savings proof pack (before vs after)

Before you start (do this first)

You need at least a v1 SaaS inventory and owners. If you do not have one, start with:

Also decide: are you doing a sprint (fast) or installing cadence (ongoing)? You should do both: sprint first, then cadence.


Sprint plan (2 weeks, beginner-safe)

Week 0 (setup, 60 minutes)

  • Pick 2-3 vendors to start (choose big spend or obvious bloat)
  • Confirm business owner and technical owner
  • Freeze new seat provisioning for those tools temporarily (if possible)
  • Define "inactive" and the exceptions process

Week 1 (identify and notify)

  • Export seat roster and activity data (if vendor provides)
  • Flag inactive seats
  • Send "confirm or lose access" notice to users or team owners
  • Start removing clearly inactive seats (low risk roles first)

Week 2 (reclaim, right-size, lock in)

  • Remove remaining inactive seats after the notice window
  • Reduce purchased seats or tiers in the admin or billing system
  • Confirm invoices reflect changes
  • Document savings and install monthly check

Define "inactive" (simple, defensible)

Pick a rule you can explain.

Examples:

  • No login in 60 days
  • No activity in 60 days (if available)
  • Not in the owning team anymore (HR offboarding)

Add exceptions:

  • executives (if needed)
  • service accounts
  • admin accounts
  • seasonal roles

The goal is not to win an argument. The goal is to run a safe, repeatable process.


Step-by-step execution

Step 1: Choose vendors (pick the ROI)

Choose vendors that meet at least one:

  • high annual spend
  • renews in the next 120 days
  • seat-based pricing
  • clear inactivity patterns

Start with 2-3 vendors. You will learn and go faster on the next batch.


Step 2: Build the seat roster (minimum viable)

For each vendor, produce:

  • user email
  • seat type or tier (if applicable)
  • last login date (if available)
  • role (admin vs standard)
  • department or team
  • manager (if available)

If you cannot get last login:

  • use "assigned seats vs known users"
  • ask owners to confirm "who actually needs it"

Step 3: Notify stakeholders (short and clear)

You need permission and a predictable deadline.

Use a short notice window:

  • 5 business days for low-risk tools
  • 10 business days for high-risk tools

Step 4: Run reclaim in two passes

Pass 1 (low risk):

  • users who left the company
  • duplicate accounts
  • obvious non-users
  • contractors whose engagement ended

Pass 2 (confirm or deny):

  • send a list to owners or managers
  • reclaim unless explicitly justified

Step 5: Right-size tiers and packaging

Common opportunities:

  • downgrade power users who do not use advanced features
  • convert full seats to "viewer" seats
  • remove add-ons that were enabled "just in case"
  • switch from monthly to annual only if discounts exceed flexibility cost

Right-sizing is usually easier during renewal. Capture it as a negotiation lever for:


Step 6: Make billing match reality

Seat removal is not savings unless billing changes.

Do these checks:

  • admin console shows reduced purchased seats
  • upcoming invoice reflects new counts
  • if not, open a case with vendor and track until corrected

Step 7: Prove savings (defensible, simple)

Use to compute:

  • monthly savings
  • annualized savings
  • break-even period (if any implementation effort exists)

Capture:

  • before seats paid
  • after seats paid
  • price per seat (or effective blended)
  • effective date of change
  • invoice evidence

Step 8: Install the monthly cadence (this is where the money stays)

Monthly 30-minute cadence:

  1. new seats added (who approved and why)
  2. inactive seats list (reclaim plan)
  3. tier creep (add-ons, upgrades)
  4. renewal timing (inside 120 days)
  5. actions and owners

Templates (copy and paste)

A) User notice email

Copyable template (TEXT)

Subject: Action Required: [Tool Name] Access Review

Hi,

We are reviewing [Tool Name] access to remove unused seats and prevent unnecessary subscription costs.

If you still need access, reply to this message by [DATE] with:
- why you need access
- how often you use it

If we do not hear from you by [DATE], your access may be removed. You can request access again later if needed.

Thanks,
[Name]

B) Exception request (simple)

Copyable template (TEXT)

Exception request for [Tool Name]

User:
Role:
Reason access is required:
Risk if removed:
Approver (business owner):
Approval date:
Review date (90 days from now):

C) Seat reclaim tracker (CSV starter)

Copyable template (CSV)

vendor_name,user_email,seat_type,last_login,team,manager,status,action_date,exception_approved,notes
ExampleCo CRM,user@example.com,full,2025-09-01,Sales,manager@example.com,remove,2026-02-10,false,Inactive 90+ days

D) Monthly audit checklist

  • Export seat roster
  • Flag inactive seats using the chosen rule
  • Send notice for questionable seats
  • Remove confirmed inactive seats
  • Reduce purchased seats or tiers
  • Confirm invoice reflects changes
  • Update SaaS inventory and renewal notes

Common pitfalls (avoid)

  • reclaiming seats but forgetting to reduce purchased quantity
  • removing admin or service accounts accidentally
  • making exceptions permanent (exceptions must be time-bound)
  • not installing a cadence (savings will drift back)

Change log

v1.0 (2026-01): Latest release