Step-by-step methodology for auditing every Salesforce licence layer, identifying shelfware, and building the evidence base for renewal negotiations. Covers user licences, feature licences, permission set licences, usage-based entitlements, SOQL queries, custom reports, downgrade candidates, and quarterly governance.
Practical Audit Guide

Salesforce License Count How to Audit What You Are Using vs What You Own

The step-by-step methodology for counting every Salesforce licence layer, identifying shelfware, and building the evidence base that transforms your next renewal negotiation.

Updated February 202618 min readFredrik Filipsson
20-30%
Typical Unused Licence Rate in Enterprise Deployments
$175
Per User/Month Enterprise List Price Sitting Idle
90 Days
Recommended Inactivity Threshold for Review
4 Layers
User, Feature, Permission Set, and Usage-Based
Salesforce Knowledge Hub Salesforce Licensing Guide 2026 License Count Audit Guide

This guide is part of our Salesforce Licensing Guide 2026. See also: License Optimization Playbook | Platform License Deep Dive | Compliance and Audit Readiness.

01

Why Counting Salesforce Licences Is Harder Than It Looks

Most enterprise IT leaders assume Salesforce licence management is straightforward: buy seats, assign them, and the platform enforces the cap. That assumption is dangerously incomplete. Salesforce licensing operates across four distinct layers, each tracked separately, each with different cost implications, and each susceptible to different forms of waste.

Organisations routinely discover they are paying for 20-30% more licences than they actually need. At Enterprise Edition list pricing of $175 per user per month, a company with 1,000 seats and a 25% waste rate is burning through $525,000 per year on licences that generate zero business value. That figure climbs further once you factor in Feature Licences, Permission Set Licences, and usage-based products like Marketing Cloud contacts or Data Cloud and Agentforce consumption credits.

02

The Four Licence Layers You Must Audit

LayerWhat It ControlsExamplesFinancial Impact
Layer 1: User Licences (foundation)Baseline product access for every user. Each user record requires exactly one User LicenceSalesforce (full CRM), Salesforce Platform (custom apps only), Identity Only (SSO), Customer/Partner Community70-85% of total contract value. Every seat eliminated or downgraded flows directly to savings
Layer 2: Feature Licences (add-on)Access to specific capabilities not in the base User Licence. Toggled per-user as checkboxesMarketing User, Service Cloud User, Knowledge User, Flow User, CPQ UserFrequently over-assigned during rollouts and never revisited. 30-50% commonly unused
Layer 3: Permission Set Licences (entitlement)Granular entitlements extending functionality beyond User and Feature Licences. Assigned through Permission SetsSales Cloud Einstein, Salesforce CPQ, Pardot, CRM AnalyticsHigh-value add-on products billed per-seat. Single unused CRM Analytics licence = $75-$150/user/month
Layer 4: Usage-Based Entitlements (consumption)Metered resources pooled at org level, not per-seatData storage (GB), file storage (GB), API calls (daily cap), Marketing Cloud contacts, Experience Cloud logins, Agentforce conversationsOverage pricing is punitive. Additional data storage costs approximately $125/month per 500 MB
"Used" Does Not Mean "In Use"

The Company Information page shows assigned licences, not active ones. A licence assigned to a user who has not logged in for six months still appears as "Used." This is the single most common misunderstanding in Salesforce licence audits and why the Setup baseline is necessary but never sufficient on its own.

03

Method 1: The Setup Baseline

Navigate to Setup, then Company Settings, then Company Information. Scroll down to find three critical tables: User Licences, Permission Set Licences, and Feature Licences. Each displays Total Licences (purchased), Used Licences (assigned), and Remaining. Click View All and Download to export as CSV. This creates your Entitlement vs. Assignment matrix, the first of three comparison layers.

04

Method 2: SOQL Queries for Precise Licence Intelligence

SOQL queries give you actionable detail: the ability to cross-reference licence assignments with actual login behaviour, user roles, and last activity dates. Execute in Developer Console, Workbench, or any connected API client.

QueryPurposeWhat It Reveals
SELECT MasterLabel, Name, Status, TotalLicenses, UsedLicenses FROM UserLicense ORDER BY UsedLicenses DESCComplete User Licence inventoryEvery licence type sorted by consumption. Watch for rows where UsedLicenses equals TotalLicenses (at capacity, next user triggers purchase)
SELECT MasterLabel, TotalLicenses, UsedLicenses, ExpirationDate FROM PermissionSetLicense WHERE TotalLicenses > 0Permission Set Licence utilisationOver-provisioned add-on entitlements. Compare UsedLicenses against actual feature utilisation (e.g., 200 CRM Analytics assigned but only 45 users opened a dashboard in 90 days = 155 candidates for removal)
SELECT Profile.UserLicense.Name, COUNT(Id) FROM User WHERE IsActive = true AND LastLoginDate < LAST_N_DAYS:90 GROUP BY Profile.UserLicense.NameInactive user identification (the "money query")Every active user who has not logged in within 90 days, grouped by licence type. Typically identifies 15-25% of assigned licences as candidates for deactivation or downgrade
SELECT Name, Username, Profile.UserLicense.Name, CreatedDate FROM User WHERE IsActive = true AND LastLoginDate = nullUsers who have never logged inUsers provisioned during onboarding waves or migrations who never accessed the system. Purest form of shelfware: licences that never delivered any value
The 90-Day Inactivity Query Finds Your Savings

Across hundreds of Salesforce advisory engagements, the 90-day inactivity query typically identifies 15-25% of assigned User Licences as candidates for deactivation or downgrade. For a 1,000-seat Enterprise deployment, that represents $315,000-$525,000 in annual recoverable cost before any licence-type optimisation.

05

Method 3: Custom Reports for Ongoing Governance

SOQL queries are powerful for point-in-time audits but impractical for ongoing governance. For continuous monitoring, build a Custom Report Type using Users as the primary object with Profile lookup fields including User License Name and Total Licenses. Create a Summary Report grouped by User Licence with Active = True filter.

Extend with a Last Login Date bucketing approach: Active (last 30 days), Low activity (31-90 days), Dormant (91-180 days), and Inactive (180+ days or never). The dormant and inactive bands are your immediate optimisation targets. The Lightning Usage App (Setup, then Lightning Usage) provides complementary adoption metrics including daily active users and most-visited pages.

06

Auditing Usage-Based Entitlements: Storage, APIs, and Consumption

EntitlementWhere to CheckWhat to Watch For
Data and file storageSetup, then Data Management, then Storage Usage. Itemises consumption by objectEnterprise Edition: 10 GB base + 20 MB per user. For 500 users = 20 GB total. Configure alerts at 80% and 90% thresholds. Additional storage costs approximately $125/month per 500 MB
API call usageSetup, then Company Information shows "API Requests, Last 24 Hours." REST Limits endpoint (/services/data/v60.0/limits) returns JSON with all metered resourcesExceeding API limits causes Salesforce to reject all API requests until window resets, halting integrations and mobile access. Identify runaway integrations consuming disproportionate calls
Experience Cloud loginsQuery LoginHistory object filtered by user type, aggregate by calendar monthExceeding contracted login count triggers true-up charges at next billing period. No native dashboard exists for this. Must be tracked manually via SOQL
07

Building the Entitlement vs Assignment vs Usage Matrix

The single most valuable output of a Salesforce licence audit is a three-column matrix comparing what you bought, what you assigned, and what is actually being used. This document becomes your negotiation evidence, optimisation roadmap, and ongoing governance tool.

Licence TypePurchased (Contract)Assigned (Setup)Active Last 90 DaysWaste Rate
Salesforce (Enterprise)80078261421.5%
Salesforce Platform2001439851.0%
Service Cloud User (Feature)40038927132.3%
CRM Analytics (PSL)1501484768.7%
Total waste identified$1.2M/yr
Waste Rate Is Calculated Against Purchased Count

The waste rate is calculated against purchased count, not assigned count, because you pay for every purchased licence regardless of assignment. The difference between purchased and assigned represents shelfware never deployed. The difference between assigned and active represents shelfware deployed but not used. Both are recoverable cost.

08

Identifying Downgrade Candidates: Full CRM vs Platform Licences

One of the highest-impact optimisation levers is identifying users who hold full CRM licences (Salesforce Enterprise at $175/user/month) but whose usage patterns indicate they only need a Salesforce Platform licence at a fraction of the cost.

Downgrade CriterionDetail
Does not create or update core CRM objectsZero Opportunity, Lead, or Campaign record ownership and zero create/edit actions on those objects in the past 180 days. These are the core objects excluded from Platform licences
Usage limited to dashboards and custom objectsPrimary activity is viewing dashboards, working with custom objects, or running reports on non-CRM data
Does not use advanced CRM featuresNo use of Forecasting, Territory Management, or Sales Console features
Platform Licence Downgrade Example

A professional services firm with 1,200 Salesforce Enterprise licences identified 280 users whose sole Salesforce activity was viewing project dashboards and updating custom time-tracking objects. Migrating these users to Platform Starter saved $588,000 annually with zero impact on productivity, as none of the affected users required access to Opportunities, Leads, or Campaigns.

09

Auditing Feature and Permission Set Licence Assignments

Feature Licences and Permission Set Licences are where "set it and forget it" provisioning creates the most insidious waste. These are typically assigned during initial setup based on role templates, then never revisited even when users change roles or stop using the associated functionality.

Licence TypeAudit MethodTypical Waste Rate
Marketing User (Feature)Query how many assigned users have created or modified Campaigns in past 90 days30-50% of assignments not justified by actual usage
Knowledge User (Feature)Query how many have authored or edited Knowledge Articles30-50% typically unused
CPQ User (Feature)Query how many have generated quotes30-50% unused
CRM Analytics (PSL)Query PermissionSetLicense utilisation, cross-reference with dashboard access in past 90 daysUtilisation rates below 35% are common
Sales Cloud Einstein (PSL)Check feature-specific usage reports against assigned PSL countGap between assignment and active usage is typically widest in this category
10

True-Up and True-Forward Compliance Risks

Salesforce contracts, particularly SELAs and larger enterprise agreements, often include True-Up or True-Forward provisions. If usage exceeds contracted quantities at any point, Salesforce adjusts costs upward at the next billing period or renewal. Unlike traditional software audits, Salesforce compliance enforcement is largely automated through platform telemetry.

The Renewal True-Up Trap

Salesforce account executives commonly use True-Up data as a negotiation lever during renewals. If your usage has at any point exceeded contracted levels, even temporarily during a migration, expect Salesforce to cite this as justification for maintaining or increasing licence counts. Your defence is a comprehensive, current-state audit demonstrating your normalised usage, not peak usage. Run your licence audit quarterly and maintain a rolling 12-month record.

11

Establishing Quarterly Licence Governance

Quarterly ActionDetail
Re-run 90-day inactivity queryCompare results against previous quarter. Track trend direction. Are inactive counts growing or shrinking?
Update Entitlement vs Assignment vs Usage matrixRefresh all three columns with current data. Document changes since last quarter
Review new Permission Set and Feature LicencesIdentify any new PSLs or Feature Licences provisioned since last audit. Validate business justification
Check storage and API trendsCompare consumption against contracted entitlements. Identify approaching thresholds
Produce one-page summary for leadershipDocument current utilisation rates, waste identified, and recommended actions for procurement and IT leadership
Integrate with HR offboardingVerify Salesforce user deactivation within 24 hours of employee departure. Check Feature and PSL licences are also unassigned from inactive accounts. Configure SSO deprovisioning rules to automate
12

Using Audit Results to Negotiate Your Next Renewal

Present your Entitlement vs Assignment vs Usage matrix to your Salesforce account executive alongside a specific reduction proposal. If your audit shows 800 purchased Enterprise licences with only 614 active in the past 90 days, propose reducing to 650 (with modest growth buffer). If 280 qualify for Platform downgrades, propose a split: 370 Enterprise plus 280 Platform.

Negotiate downgrade rights (10-15% annual reduction without penalty) and swap rights (exchange one licence type for another of equal or lesser value). Initiate your audit at least 4-6 months before your renewal date. Salesforce's fiscal year ends January 31, and sales teams are most receptive in Q4 (November-January). For detailed strategies, see our Salesforce Renewal War Room Checklist.

Multi-Org Environments Compound Audit Complexity

Organisations with multiple Salesforce orgs must execute the same methodology in every org separately, then consolidate into an enterprise-wide view. If two orgs each have 500 licences at 60% utilisation, consolidating into a single org of 600 licences eliminates 400 seats. Multi-org audits should also identify cross-org user duplication, AppExchange applications licenced separately in each org, and sandbox storage duplication. See our org consolidation analysis guide.

13

Frequently Asked Questions

Setup, then Company Settings, then Company Information. Scroll to User Licences, Permission Set Licences, and Feature Licences tables. Each shows Total, Used, and Remaining. Click View All and Download to export as CSV for offline analysis.

SELECT Profile.UserLicense.Name, COUNT(Id) FROM User WHERE IsActive = true AND LastLoginDate < LAST_N_DAYS:90 GROUP BY Profile.UserLicense.Name. This groups all active users who have not logged in within 90 days by User Licence type, immediately revealing where unused licences are concentrated.

Every 90 days as a minimum. Quarterly audits catch seasonal fluctuations, offboarding gaps, and provisioning drift. Increase to monthly in the 6 months before a contract renewal to build the strongest negotiation evidence base.

Yes, for User Licences. Setting IsActive to false frees the licence and decreases the "Used" count. However, Feature Licences and Permission Set Licences assigned to the deactivated user may or may not be automatically released depending on type. Always verify manually.

"Used" means assigned; "Active" means actually logging in. A user can hold a licence (counted as Used) without ever logging in. Your audit must distinguish between these two states. The gap between them is your primary optimisation opportunity.

Yes. Salesforce retains contractual audit rights in its Master Subscription Agreement. While less audit-aggressive than Oracle or SAP, it uses True-Up and True-Forward provisions to enforce compliance, particularly at renewal. See our Audit Readiness Playbook.

Setup, then Company Information shows "API Requests, Last 24 Hours" with current and maximum. For trend analysis, use the API Usage Last 7 Days report in Classic, or call the REST Limits endpoint programmatically for real-time monitoring.

90 days is the industry standard starting point. Users inactive 90+ days should be flagged for review. Users inactive 180+ days should be deactivated unless there is documented business justification. Users who have never logged in should be deactivated immediately unless they are integration or system accounts.

Get an Independent Salesforce Licence Audit

Redress Compliance conducts comprehensive Salesforce licence audits for enterprise organisations, delivering documented utilisation analysis, shelfware identification, and renewal negotiation strategies. No Salesforce partnership. No referral fees. Fixed-fee engagement.

Salesforce Advisory Services

Related Resources

FF

Fredrik Filipsson

Co-Founder, Redress Compliance

Has led hundreds of enterprise software licensing audits across Salesforce, Oracle, Microsoft, SAP, and IBM, helping organisations identify millions in recoverable licence waste through rigorous audit methodologies. Redress Compliance has no Salesforce partnership, reseller arrangement, or commercial relationship of any kind.

← Back to Salesforce Knowledge Hub

Identify and Eliminate Salesforce Licence Waste

Independent Salesforce licence auditing. Shelfware identification. Renewal negotiation evidence. 100% vendor-independent, fixed-fee engagement.

Salesforce Advisory Services Book a Consultation
Always-On Advisory

🛡️ Vendor Shield — Subscription Advisory

Continuous, always-on advisory coverage across Oracle, Microsoft, SAP, Salesforce, IBM, Broadcom, and more. One subscription. Every vendor. Always prepared, never outmanoeuvred.

Learn About Vendor Shield Multi-vendor protection
Licensing Intelligence

Stay Ahead of Vendor Moves

Monthly licensing intelligence, audit alerts, and negotiation tactics from our advisory team. Trusted by 1,000+ enterprise leaders.

Subscribe Free No spam. Unsubscribe anytime.
Explore All Vendor Hubs