Costanalyst
Blog / Guides 8 min read

Effective License Position: How to Calculate an ELP for SaaS and On-Premises Licenses

August 2026 · Costanalyst

Spend Console
Sample data
Connected AWS GCP Azure SaaS
Find savings in
Identified

projected this month if unattended

Spend by team

Budget forecast

Projected EoQ $124k
With savings
Read-only · Sample data

An effective license position (ELP) is the reconciliation of what you are entitled to against what you actually consume, for one software vendor at a point in time. You build one in three steps: inventory consumption, normalize entitlements from purchase records and use rights, then map one against the other. For on-premises software the output tells you your audit exposure. For SaaS it tells you something different and usually more valuable, which is how many seats you are paying for that nobody opens.

Effective license position is a term from traditional software asset management, and most of the writing about it assumes you are preparing for an Oracle or Microsoft audit. That framing is why finance teams skip the concept entirely for SaaS, and it is a mistake. The arithmetic is identical. Only the direction of the risk changes.

What is an effective license position?

Flexera, whose product exists largely to produce these, defines an ELP as "a critical reconciliation that compares an organization software license entitlements against its actual consumption to assess compliance with vendor agreements". The term was originally coined by Microsoft to describe a customer licensing compliance position, which explains why so much of the surrounding vocabulary is audit vocabulary.

Two words in that definition carry all the weight. Entitlement is what your contracts and purchase orders say you may use, after you interpret the use rights attached to them. Consumption is what is installed, deployed, or assigned right now. The ELP is the difference, expressed per product, and it is either positive (you hold more than you consume) or negative (you consume more than you hold).

How do you calculate an effective license position?

Flexera describes three steps, and they are the same three steps whether you do it with a platform or with a spreadsheet. First, discover all installed software and hardware assets to inventory consumption. Second, collect and normalize all license entitlements, including purchase records and usage rights. Third, map consumption against entitlement to identify discrepancies, revealing whether you are over-licensed or under-licensed.

Step two is where projects die. Discovery is a tooling problem with known answers. Entitlement normalization is a reading problem: your purchase history is scattered across renewal quotes, amendments, reseller invoices, and an enterprise agreement written by people paid to leave room for interpretation. Most of it arrives as PDF order forms and countersigned contracts, so before any reconciliation can happen somebody has to pull the line items out of those documents and turn them into rows with a product, a quantity, a metric, and a term.

On-premises ELP and SaaS ELP are not the same exercise

The mechanics carry over. The stakes invert.

On-premises softwareSaaS subscriptions
Who knows your consumptionOnly you, until an auditThe vendor, continuously and precisely
Main riskUnder-licensed, then a true-up bill and penaltiesOver-licensed, then quiet recurring waste
Hard partInterpreting use rights correctlyGetting real usage out of every application
Unit of consumptionInstalls, cores, processors, users, devicesAssigned seats, usually by tier
Can you fix a gap mid-termYes, by uninstalling or by buyingOften not until renewal, depending on the contract
Who usually owns the numberIT asset managementNobody, which is the problem

A negative on-premises position is a liability you should quantify before a vendor does. A positive SaaS position is money leaving every month with no event to trigger a review. Neither one shows up in your accounts until somebody goes looking.

Measuring consumption for SaaS

You have three sources and they disagree with each other, which is normal and worth planning for.

The vendor admin console is authoritative on assigned seats. It knows exactly how many licenses you hold and who holds them, because that is what it bills on. It is often weak on whether those people did anything.

Your identity provider gives you sign-in activity across everything behind single sign-on. In Microsoft Entra ID this comes from the signInActivity resource in the Graph API, which carries lastSignInDateTime, lastNonInteractiveSignInDateTime, and lastSuccessfulSignInDateTime for each user. Four details matter before you build a process on it. Reading lastSuccessfulSignInDateTime through Graph requires an Entra ID P1 or P2 license. The calling application needs AuditLog.Read.All and User.Read.All, with Reports Reader as the least privileged role. The value can be blank if the last sign-in attempt happened before April 2020 or if the account has never been used for a sign-in. And signInActivity is not returned by default and cannot be filtered alongside other filterable user properties in the same query, which trips up the first script everybody writes.

Finance sees every dollar, including the applications that never went through single sign-on and that no integration exists for. It sees no usage whatsoever. This is the source most ELP methodologies ignore and the one that finds the subscriptions nobody knew about, because a credit card charge is impossible to hide from an accounting system even when it is invisible to IT.

Use all three. The vendor console sets the denominator, identity or in-application data sets the numerator, and finance tells you which applications you forgot to put in the spreadsheet at all.

A worked SaaS example

One product, one quarter, real shape of the problem:

LineCountSource
Seats purchased on the order form400Contract
Seats assigned in the admin console388Vendor console
Assigned users with a sign-in in the last 90 days259Identity provider
Users with meaningful in-application activity221Application usage data
Effective license position+179 seats400 minus 221

Three numbers, three different answers, and each one is defensible to a different audience. The 12 unassigned seats are free money and nobody will argue. The 129 assigned-but-dormant accounts are the reclamation candidate list. The 38 people who sign in but do not do anything are the hardest conversation, and also where the tier downgrades live: they may not need a seat at all, or they may need a cheaper one.

Note what the position does not tell you: whether you can act on it this year. If the contract commits you to 400 seats until renewal, the ELP is a renewal negotiation input rather than an in-year saving. Check the commitment language before you promise a number to the CFO. Reclaiming seats you are still contractually paying for is a successful project that saves nothing.

What is a positive effective license position?

A positive position means entitlements exceed consumption: you own more than you use. In on-premises licensing that is comfortable and slightly wasteful. In SaaS it is the default state of nearly every company and it compounds, because seats are added when people join and almost never removed when they leave or change roles. A negative position, where consumption exceeds entitlement, is a compliance gap that will surface as a true-up. On SaaS you rarely get one, since most vendors simply block the 401st user or bill you automatically.

How often should you recalculate an ELP?

Flexera argues that a mature program using automated tooling should aim for a continuous or near real-time ELP so that compliance and optimization issues are identified immediately. That is the right target and it describes very few organizations. A workable middle path is to recalculate on the renewal calendar rather than the fiscal calendar: run the reconciliation 90 days before each contract renews, which is roughly when notice periods bite and while there is still time to change the quantity. A quarterly review three months after a renewal is eleven months early.

Five mistakes that make an ELP wrong

  • Counting seats instead of reconciling entitlements. A seat count from the admin console is not an ELP. The entitlement side has to come from the contract, because what you bought and what the console shows drift apart after every amendment.
  • Trusting sign-in data as usage data. A sign-in proves authentication, not work. Background tabs that silently re-authenticate every morning make an unused account look active, and that single confusion produces most of the false negatives in reclamation programs.
  • Ignoring applications bought outside IT. If your inventory starts from your identity provider, every subscription expensed on a card is invisible. Start from the general ledger instead and reconcile toward IT, not the other way around.
  • Treating the position as a saving. It is a saving only if the contract lets the quantity fall. Otherwise it is a negotiating position for the next renewal, which is worth real money but lands in a different fiscal year.
  • Building it once. An ELP is accurate on the day it is produced and decays with every hire, departure, and role change. If nobody owns refreshing it, you have bought a snapshot of a problem that keeps moving.

Where the tooling helps and where it does not

No product will read your enterprise agreement for you and tell you what you are entitled to, at least not reliably. Entitlement normalization for complex on-premises vendors is specialist work, which is what platforms like Flexera One and ServiceNow SAM Pro are genuinely selling: interpretation, backed by large libraries of use rights. For SaaS the interpretation is trivial and the discovery is hard, which is why the SaaS license management tools in that half of the market compete on integrations and workflows instead.

The gap both sides leave is the total number. A SaaS management platform stops at subscriptions, a cloud cost tool stops at infrastructure, and the person building the technology budget ends up joining two exports by hand every month. That is the specific job Costanalyst does read-only, alongside cloud cost management, so software and infrastructure spend land in one view with an owner attached to each line. It pairs well with a seat-level tool rather than replacing one: we can tell you that you pay for 400 seats, and a SaaS management platform can pull the 129 that nobody uses.

Start with the reconciliation on your three largest subscriptions. It is a morning of work, the answer is usually uncomfortable, and it will tell you whether the rest of the exercise is worth automating. If you want the operational version of the same job, the guides on finding unused SaaS subscriptions and auditing SaaS spend pick up where this one stops, and cost allocation software handles the step after that, which is putting each of those numbers against the team that caused it.

See where your cloud and SaaS money is leaking

Connect your cloud and SaaS spend read-only and see your savings in dollars. Transparent pricing, no card to start.