Zoomed Image

Auto-Allocation

Software Asset Management Guide
Allocation

Auto-Allocation

Auto-allocation is the engine's default behavior — when you run Calculate Licensing Position, the engine matches licenses to consumptions for you. This page explains what the engine considers, what controls it, and when to leave it alone.

How Auto-Allocation Runs

The engine processes one product at a time. For each product:

  1. Pull all candidate licenses (status = In Service, type matches, etc.)
  2. Pull all consumptions (assets where the product is installed)
  3. Apply requirements — exclude any license/consumption pair that fails a hard requirement (location-within by default)
  4. Score every remaining license/consumption pair by affinity rules
  5. Sort candidates by affinity score
  6. Allocate in order, honoring capacity

The full mechanics are in Concepts: Affinity vs Requirements.

What the Engine Decides Without Asking You

The engine makes these decisions automatically:

  • Which of multiple eligible licenses to use — the highest-affinity match wins
  • How much capacity to draw from each license — based on the consumption's metric units
  • When to fall back to downgrade allocations — when no exact-product license is available, the engine tries newer-version licenses with downgrade rights
  • Which consumptions to leave in deficit — when capacity runs out, the lowest-affinity consumptions go uncovered

Direct assignments override these defaults — see Direct Assignment.

When Auto-Allocation Is Right

Auto-allocation is the right choice for the vast majority of allocations. Specifically:

  • General-pool licenses (no specific user/department restriction) covering a fleet of similar machines
  • Product mix where multiple eligible licenses exist for the same product (the engine picks the best fit)
  • Environments where the affinity rules express your real preferences (department > location > cost centre)

You should not be intervening for thousands of allocations. If you are, the affinity rules are wrong for your environment — see Customizing the Calculation to fix the rules globally rather than fighting the engine per-allocation.

When to Override

Override (with direct assignment) when:

  • A specific license must cover a specific machine for contractual or audit reasons
  • A named individual must always have a particular license seat (VIP allocations)
  • A specific test/dev environment has dedicated license capacity that should not be drawn into general allocation

See Direct Assignment for the workflow.

Auto-Allocate to Available Computers

There is a menu action Auto Allocate this License to Available Computers (and the bulk variant Auto Allocate Rights for Selected Licenses) that runs the allocation for one license or one selection.

This is useful when you have just imported a license and want to see immediately which machines it would be allocated to, without running a full calculation. The action is essentially a per-license allocation pass.

In normal operation, the full Calculate Licensing Position handles allocation across all products and licenses at once, and you do not need the per-license actions.

Capacity Behavior

For each license, capacity is enforced strictly. The engine grants until capacity is exhausted, then moves to the next license:

Scenario Engine Behavior
50 consumptions, 50-seat license All 50 covered
50 consumptions, 30-seat license + 30-seat license First 30 from license A (highest affinity matches), next 20 from license B
50 consumptions, 30-seat license only 30 covered, 20 in deficit
50 consumptions, 30-seat license + Any-version downgrade newer-product license with 30 seats First 30 from license A, next 20 covered as downgrade grants from newer license

See Capacity Enforcement for the deficit case.

Recalculation Re-Allocates

Each calculation reallocates from scratch. The engine does not preserve a previous allocation just because it existed — if the inputs (assets, licenses, rules) have changed, the allocation can change.

This means a license that previously covered Machine A might cover Machine B after the next calculation. The change reflects current best-fit. If you want to lock specific allocations, use direct assignment.