Salesforce complexity — measured, then reduced

Salesforce license optimization, on evidence that survives the renewal

A seven-step method for CIOs, platform owners and procurement: start from the contract, measure real usage per business process, and carry a number into the renewal that nobody can shorten.

Salesforce license optimization fails in the same place every time: the number reaches the renewal meeting and gets shortened. A login report counts anyone who opened a dashboard as active; a “users minus logins” subtraction produces a figure so large that no CIO can defend it. The method below produces a smaller number that holds, because every seat in it is qualified, owned and dated.

It works with or without a tool. Each step names the Salesforce data it needs; where Stood Flows automates a step, the page says so.

1. Start from the contract, not the user list

Optimization is a contract question before it is a user question. List every line of the Salesforce agreement — the SELA (Salesforce Enterprise License Agreement) or the order forms — with its quantity, rate, term and the org that consumes it. Two findings usually come out before any user is examined:

  • Lines nobody can map to an org. A legacy org, a Marketing Cloud account, a Data 360 tenant, a Heroku account. Each unmapped line is a question with a price attached: who consumes this, and would anyone notice if it left the next order form?
  • The renewal date and the reduction rules. Most agreements only allow reductions at renewal, which sets the deadline for everything below.

2. Read usage as a cascade, one license type at a time

For each license type, count five populations on one scale:

LevelQuestionSalesforce source
ProvisionedWhat does the contract pay for?Order forms; UserLicense, PermissionSetLicense
AssignedHow many seats carry a user?Active users per license
Logged inWho accessed it in the window?User.LastLoginDate, LoginHistory
OperatedWho performed any recorded operation?Event log files
WroteWho changed a business record?Event log files (database save events)

Each level carries its own window, stated on the figure — a 30-day login window and a two-week event-log window are different claims. In the demonstration estate used on this site, the flagship org reads 2,817 provisioned, 2,482 assigned, 1,936 logged in over 30 days, 622 with any operation and 437 writing to a business object in two weeks (illustrative figures).

3. Qualify releasable seats rung by rung

The gap between the top and the bottom of the cascade is not the opportunity. Releasable seats are qualified one rung at a time, each with its own threshold, owner and remedy:

  • No login in 90 days, exempt profiles excluded (executives, auditors, break-glass and integration users). Use the longer threshold on purpose: the number carried into a renewal should be the one nobody can shorten.
  • Read-only consumers — people who log in and write nothing. The usual advice is a cheaper license type; the stronger move is often to serve them through the corporate BI tools the company already runs.
  • Non-business activations — accounts with recorded operations that never touch a business object: system noise and integrations that should run on integration licensing rather than a full user seat.

In the demonstration estate these rungs add up to 34% of provisioned seats — a figure that survives a room, unlike the raw gap.

4. Size the buffer, do not spend it

Unassigned entitlement — the buffer — is not waste. At renewal it is the only lever a customer holds: a buffer of zero at term end means no credible case to reduce the next commitment. Size and time it per org against the contract cycle. Portfolio averages hide the outliers: in the demonstration estate the portfolio buffer is 18%, but one business unit holds 56% while the flagship org holds 12%, thin going into a renewal.

5. Check the window against the calendar

A two-week write window measures two weeks. Quarterly billing runs, seasonal teams and annual audits all read as silent in the wrong fortnight. Before a seat is qualified, set the window against engagement history — monthly login tiers and the same month a year earlier — so that “inactive now” is checked against “inactive usually”.

6. Add consumption credits to the picture

Agentforce and Data 360 bill by consumption. Treat credit lines like seat lines: entitlement against burn rate, attributed to the business processes that spend them, reviewed monthly rather than discovered at true-up.

7. Decide per business process, act through your own change process

A seat belongs to a person who works in a business process, and a business process has an owner and a budget. Attach each qualified rung to the processes its users work in, and the decision lands with someone who can take it. Deactivation then runs through your normal change process, after the dependency checks — record ownership, approvals, scheduled jobs, integrations. Freezing a user is a safe interim step, but it does not release the license.

Repeat the cascade monthly. One snapshot proves little; a baseline and two deltas show whether the position is moving before the renewal arrives.

Where Stood Flows fits

Stood Flows runs steps 1 to 6 on your own machine, read-only: the cascade from event log files, the qualified rungs, a deactivation-policy simulation per org, cohorts and seasonality, the SELA reconciled line by line, and consumption credits against the contract — each figure traceable to the org it came from. It never deactivates anyone; step 7 stays yours. The usage and cost page shows the views, the methodology shows the arithmetic, and pricing starts from €950 per analysed org per month. The documentation details the Licensing view, DML from event log files and SELA contracts.

Figures on this page are illustrative, drawn from a synthetic demonstration estate — not customer results or benchmarks.

Questions people ask

How do I find unused Salesforce licenses?

Compare four populations for each license type: provisioned on the contract, assigned to a user, logged in over a window, and actually writing to business objects. The gaps between them are candidates, not answers — qualify each one (no login in 90 days with exempt profiles excluded, read-only consumers, integration accounts) before anyone acts on it.

Is a user who logs in an active user?

Not for licensing purposes. A login shows access, not work. The stricter measure is DML — inserts, updates and deletes recorded in event log files — which shows who actually worked in a business process. Logins remain useful for seasonality: they tell you whether a quiet period is normal.

Does freezing a Salesforce user free the license?

No. Freezing blocks the login but the user keeps the license. Only deactivation releases it, and deactivation has dependencies to check first — record ownership, approval steps, scheduled jobs and integrations running as that user.

Can we reduce Salesforce licenses in the middle of a contract?

Usually not: most Salesforce agreements let you add quantities during the term and reduce them only at renewal. Check your own order forms. This is why the work needs to start well before the renewal window, with numbers measured over a window long enough to defend.

What is a good Salesforce license buffer?

There is no universal percentage. Unassigned entitlement is a negotiating position: too much is money standing still, too little leaves no case to reduce the next commitment. Size it per org against hiring plans, seasonal teams and the renewal date, rather than against a portfolio average.

Do I need Event Monitoring to optimize Salesforce licenses?

Not for the first steps. License inventory, assignment and last-login dates come from standard objects. Measuring writes per user needs event log files, and how many event types and how much history you get is licensed on the Salesforce side (Event Monitoring, typically through Shield).

How do Agentforce and Data 360 credits change license optimization?

Seats are no longer the whole bill. Consumption lines need the same treatment: burn rate against entitlement, attributed to the business processes that spend it, reviewed before true-up rather than after.

Measure, then simplify

Find what to remove. Price it. Prove it fell.

Book a demo and we walk the analysis on a real five-org estate. Or take a Quickstart — a couple of hours with one of our experts, walking the first steps on one of your own orgs. From there, a first scoped project sets the baseline and the rhythm.