Downgrade Rules
Many software vendors grant downgrade rights — the right to use an older version of a product when you own a license for a newer one. The xAssets engine supports this through downgrade rules set on each license.
The Three Rules
Each license has a downgrade rule that controls how far back its rights extend:
| Rule | Behavior | Example |
|---|---|---|
| None | The license covers only its exact product | Visual Studio 2022 license covers Visual Studio 2022 only |
| One | The license covers its product and the immediately previous version | Visual Studio 2022 license covers VS 2022 and VS 2019 |
| Any | The license covers its product and any earlier version | Visual Studio 2022 license covers VS 2022, VS 2019, VS 2017, VS 2015, etc. |
The default for new licenses is None unless the product catalog entry specifies otherwise.
How Downgrade Grants Look in the Ledger
When a newer-product license covers an older-product consumption, the grant records both perspectives:
| Field | Holds |
|---|---|
ProductID |
The product that was consumed (older) |
DowngradedFromID |
The license's product (newer) |
DowngradedToID |
The consumed product (same as ProductID) |
For non-downgrade grants, DowngradedFromID and DowngradedToID are both null.
This dual tracking lets the licensing position show both:
- Allocated as Downgrade on the newer product — "we used this product's license rights to cover older-version installs"
- Allocated from Downgrade on the older product — "this product's coverage came from a newer-version license"
A Worked Example
You own:
- Visual Studio 2022 license (Any-version downgrade) — 5 seats
- Visual Studio 2019 license — 3 seats
Installed:
- Visual Studio 2022 — 4 installs
- Visual Studio 2019 — 6 installs
- Visual Studio 2017 — 2 installs
The engine allocates:
| Install | Covered By | Posted As |
|---|---|---|
| 4 × VS 2022 | VS 2022 license | Normal grants (4 seats used) |
| 6 × VS 2019 | 3 from VS 2019 license, 3 from VS 2022 license | 3 normal, 3 downgrade grants |
| 2 × VS 2017 | VS 2022 license | 2 downgrade grants |
VS 2022 license: 4 + 3 + 2 = 9 used (but only 5 seats!) — this would be over-allocation. In practice the engine would grant what it can (5 seats covering 4 + 1 + 0 = 5, in affinity order) and leave 4 installs in deficit.
Affinity and Downgrades
The engine prefers exact-product matches over downgrade matches. Given a choice between a VS 2019 license at capacity-equivalent affinity and a VS 2022 license that would cover via downgrade, the VS 2019 license wins because it does not require downgrade rights to be used.
Downgrade is the fallback when no exact-product license is available.
Configuring the Rule
The downgrade rule is a column on the license record:
- Open the license from Licensing → Licenses
- Edit the Downgrade Rule field — choose None, One, or Any
- Save and recalculate
You can also set a default downgrade rule on the product catalog entry. New licenses for that product will inherit the default unless explicitly changed.
Compliance vs Engine Behavior
The engine grants per the rule you set. It does not validate that your contract actually permits the downgrade you have configured. That validation is your responsibility — the rule on the license record asserts what the contract allows.
If a vendor audit challenges a downgrade allocation, you need to be able to produce the contract clause that allows it. The engine will faithfully reflect whatever you have configured.
Tracking Downgrade Coverage in Reports
The Licensing Position has columns specifically for downgrade coverage:
| Column | Meaning |
|---|---|
| Allocated as Downgrade | Capacity from this license used to cover older products |
| Allocated from Downgrade | This product's coverage that came from a newer-version license |
Use these to verify your downgrade allocations are matching your contractual rights, especially before a vendor audit.