Licenses and compliance

Entitlement lines, exactly how per_device, per_user, per_core and site consumption are counted, the four compliance positions, true-up with cost-to-cure, daily position snapshots and the single-currency rule.

itamlicensescomplianceentitlementsper-deviceper-userper-coresitetrue-upcost-to-curepositionauditsnapshots

From license records to a compliance position

Recording that you own a license is bookkeeping. The question ITAM exists to answer is harder: are we over- or under-licensed, and what would a vendor audit find? VerOps answers it by measuring what your estate actually consumes and comparing it with what you are actually entitled to.

The three layers

Layer What it is
License The agreement, attached to a product and optionally scoped to a group of machines.
Entitlement lines What you bought. A license can carry several — an original purchase, a later expansion, a subscription renewal. Each line has its own metric, quantity, cost and term.
Position The computed verdict: entitled versus consumed, and the gap between them.

Entitlement lines

Open Entitlements & position from a license row. Each line records:

Field Values / notes
Type perpetual · subscription · oem · trial
Metric per_device · per_user · per_core · site — how the vendor counts. See below.
Quantity How many units this line entitles you to (ignored for site).
Unit cost & currency Optional. Entered in major units (129.00); the currency is a three-letter ISO code and is required whenever a cost is set.
Term start / end End may be empty for a perpetual line. A line whose term has ended contributes zero to your entitlement.
PO reference & notes Free text — where the paperwork lives.

Exactly how consumption is counted

This is the part worth reading carefully, because it is what you will defend in an audit. Consumption is always measured within the license's group scope, and retired assets never count.

Metric Counted as
per_device The number of distinct, non-retired machines in scope that either have the product's package installed or have been observed running it. A machine counts once regardless of how many of the product's executables it runs.
per_user The number of distinct users associated with that same set of machines, seen within the trailing 90 days. A user on five in-scope machines counts once; a user last seen 91 days ago does not count.
per_core The sum of CPU core counts across that same set of machines. A machine whose core count is unknown contributes zero and is reported separately as a data-quality figure — so an understated position is always visible as such rather than silently wrong.
site Consumption is simply 0 or 1 — is the product in use anywhere in scope. The position is compliant if, and only if, an unexpired site entitlement exists.
Installed or running. A machine consumes a per_device license if the product is installed or if it has been seen running there. Counting only installations would under-count portable and unpackaged software; counting only usage would let a dormant installation escape. Uninstalling the product removes the machine from the count on the next recompute.

Licenses with mixed metrics

A license carrying lines with different metrics still gets exactly one position, using a deterministic rule:

  • if any unexpired site line exists, the license is measured as site;
  • otherwise the effective metric is whichever metric holds the largest unexpired quantity (ties resolve to per_device);
  • the entitled total counts only that metric's lines — quantities under different metrics are never added together, because they are not the same unit.

The compliance position

The position is the sign of delta = entitled − consumed:

Pill Meaning Delta
Compliant Entitlement exactly meets consumption. 0
Over-deployed You are consuming more than you own — the audit-risk state. Negative
Under-utilized You own more than you consume — the savings opportunity. Positive
No entitlements The license has no unexpired lines at all. Consumption is still measured and still shown; there is simply nothing to compare it against.

The position appears as a pill on every row of the Licenses tab, and in full on the license's own dialog with entitled versus consumed, the delta, cost-to-cure and a trend.

Positions recompute live: add, edit or delete an entitlement line and the position updates immediately — it is never read from a stale nightly figure.

True-up and cost-to-cure

True-up report on the Licenses tab header gives you every license in one table — metric, entitled, consumed, delta, position and estimated cost-to-cure — filterable by group and downloadable as CSV.

Cost-to-cure is what it would cost to become compliant: the size of the shortfall multiplied by the cheapest unexpired costed entitlement line on that license. It is shown only for over-deployed licenses — there is nothing to cure when you are compliant or under-utilized — and it is expressed in the currency of the line it was derived from.

Single-currency rule: VerOps stores the currency you record and never converts between currencies. A cost-to-cure figure is always in one currency, and totals elsewhere in ITAM are grouped by currency rather than summed across them. Converting would require a rate, a rate date and an accounting policy — none of which VerOps is entitled to invent on your behalf.

Trend over time

A snapshot of every license's position is written once per day, and the license dialog charts the last twelve monthly points so you can see consumption creeping toward an entitlement before it crosses. Snapshots are retained for 400 days and swept automatically.

Two things to expect: the trend fills in as snapshots accrue — there is no backfill, because historical consumption is not reconstructable after the fact — and the daily job writes exactly one row per license per day no matter how often it runs.

Position-change events

A license position changed event lands on the activity timeline when a license crosses between compliant, over-deployed and under-utilized, carrying the old and new position with the entitled and consumed figures. It fires on genuine sign changes only — not on every fluctuation in consumption, and not on transitions into or out of No entitlements — so the feed stays worth reading.

Practical sequence

  1. Make sure the product is normalized correctly first. A license attached to a product that only captures half your executables will under-count consumption and give you false comfort.
  2. Create the license and scope it to the right group.
  3. Add an entitlement line per purchase, with real term dates — expiry is what makes the position move at renewal time.
  4. Record unit costs so cost-to-cure works.
  5. Check the true-up report, and put it on a monthly schedule so the position is reviewed rather than remembered.