Documentation
License Management
Track software licenses, seat utilization, spend and renewals, and act on over-deployed, under-used and expiring licenses.
Overview
License Management tracks what you pay for software against what you actually use. For each license you record the seats you bought, the seats in use, the cost per seat and the expiry date. DeviceQuest then shows your run-rate, which licenses are over-deployed (an audit risk), which have unused seats (savings), and which are approaching renewal.
Open it from Govern › Licenses in the sidebar.
Screen tour
- License summary: Total licenses, Compliant, Over-deployed, Expiring, and Monthly spend (the sum of unit cost × quantity).
- Top action: the single most important thing to do next, with Open license → and Snooze 30 days.
- Cost-truth line: your annual run-rate, over-deployment risk and renewal exposure. Click an amount to filter the table.
- Portfolio insights: expands charts of utilization, spend by vendor and upcoming renewals.
- Search licenses…: matches the license name, vendor or cost center.
- Filters: opens the filter panel.
- Export: downloads the licenses shown in the table as CSV.
- Compliance →: opens the Compliance page.
- Add license: opens the Add license form.
- Quick filters: one-click filters for Over-deployed, Expiring 30d, Under-utilized and Compliant.
- Utilization: a bar colored by utilization band, with the percentage of seats in use.
- Status: Compliant, Over-deployed, Expiring or Unlicensed.
When you come back to the page and something changed, a line such as Since you last opened this: 1 new license, $120/mo added to run-rate. sums up what is new. Click × to dismiss it.
Top action
The top-action card picks one license to act on, in this order of priority:
| Priority | When | Title | Detail |
|---|---|---|---|
| 1 | A license is over-deployed (largest monthly exposure first) | {name} is over-deployed. | Over-deployed by n seats. Monthly exposure: $X. |
| 2 | A license expires within 90 days (soonest first) | {name} is approaching renewal. | Expires in n days. Monthly value: $X. |
| 3 | A paid license is less than 50% used (highest cost first) | {name} has unused seats. | n unused seats. Potential savings: $X/mo. |
| 4 | Software is detected with no license on record | {name} has no license on record. | Software detected with no license on record. |
- Open license → opens the license’s side sheet.
- Snooze 30 days hides the alert for 30 days, after you confirm in Snooze alert. A Snoozed: {name} banner remains, with Unsnooze to bring the alert back.
When nothing needs attention, the card reads All n licenses are compliant. and adds the soonest renewal.
Cost-truth line
The line under the top action puts a price on your license position:
| Amount | Calculation | Click to |
|---|---|---|
| Annualized run-rate | Sum of unit cost × quantity × 12 | Clear the status filter |
| Over-deployment risk | Sum of (seats in use − seats bought) × unit cost, per month, for over-deployed licenses | Show over-deployed licenses |
| Renewal exposure (90d) | Monthly cost of the licenses that expire within 90 days | Show expiring licenses |
Over-deployment risk and Renewal exposure (90d) appear when they are above zero. Amounts are in US dollars.
Portfolio insights
Click Portfolio insights to expand three charts. The collapsed bar summarizes them, for example 1 over-deployed · 1 expiring · $2,225/mo.
- Utilization distribution: how many licenses fall in each utilization band. Click a band to filter the table to it.
- Spend by vendor: monthly spend per vendor, largest first, with the number of licenses. Click a vendor to filter by it. When you have more than eight vendors, click + n other vendors to show the rest.
- Renewal sky — next 12 months: a timeline of expiry dates. The size of each dot shows the cost; the color shows urgency. Click a dot to open the license.
Filter and sort
- Vendor: one checkbox per vendor in your portfolio.
- License type: Subscription, Enterprise, Standard, Perpetual, OEM, FRL, Freeware, Open Source.
- Status: Any, Compliant, Over-deployed, Expiring, Unlicensed.
- Utilization: Any, Under-used (<50%), Healthy (50–89%), Tight (90–100%), Over-deployed (>100%).
- Click Filters to open or close the panel.
- The quick filters above the table are shortcuts: Over-deployed, Expiring 30d, Under-utilized and Compliant. Click an active quick filter again to clear it.
- Every active filter appears as a chip. Click × on a chip to remove it, or Clear all.
- When nothing matches, the page shows No licenses match these filters. with suggestions and a Clear filters button.
- Click a column header to sort by it; click again to reverse the order. The default order is by name.
Search, filters and sort are part of the page address, so you can bookmark or share a filtered view.
The license table
| Column | Content |
|---|---|
| Name | The license name, with the cost center underneath |
| Vendor | The vendor |
| Type | The license type |
| Qty | Seats bought |
| Used | Seats in use |
| Utilization | Seats in use as a percentage of seats bought, with a bar colored by band |
| Monthly cost | Unit cost × quantity, per month. When the license expires within 90 days, a chip shows the days left (for example 21d) or Expired. |
| Status | The license status |
| Actions | Edit and Delete |
The count under the table reads {shown} of {total} licenses.
Click a row, or press Enter on it, to open the license side sheet.
Select licenses
Tick the checkboxes to select licenses, or tick the header checkbox to select all. A bar shows n selected with:
- Export CSV: downloads the selected licenses.
- Copy as Slack: copies one line per license, for example
• *demo-office-365* (Microsoft) — 50 seats, $1,125/mo, ready to paste into a chat. - Clear: clears the selection.
Export to CSV
Export downloads the licenses that match your current search and filters, in the current order, as licenses-YYYY-MM-DD.csv. The columns are Name, Vendor, Type, Quantity, Used, Utilization %, Unit Cost (USD/seat/mo), Monthly Cost, Annual Cost, Cost Center, Status, Risk Band, Days Until Expiry, Expiry Date and Created At.
Add or edit a license
- Name: the license name, for example
Microsoft 365 E3. Required. - Vendor: the vendor. As you type, DeviceQuest suggests vendors you already track; picking one also sets the license type that vendor usually has.
- License type: the kind of license.
- Quantity: the number of seats bought. Required.
- Unit cost / seat / month (USD): cost per seat, per month. For annual contracts, divide by 12.
- Seats in use: the number of seats installed. You can set it later in the side sheet.
- Cost center: the budget the license is charged to.
- Expiry date: when the license ends. Recommended for Subscription and Standard licenses.
To add a license:
- Click Add license, or press
n. - Fill in the fields. While you type, the form shows the cost, for example This adds $1,125/mo ($13,500/year) to your run-rate.
- Click Create license. The page shows License created.
To edit a license:
- Click Edit on its row, Edit details in its side sheet, or focus the row and press
e. - Change the fields. To remove the cost center or expiry date, clear the field.
- Click Save changes. The page shows License updated.
If you close the form with unsaved changes, Unsaved changes asks you to confirm. Click Discard to close without saving.
Fields
| Field | Description | Rules |
|---|---|---|
| Name | License name | Required: Name is required. |
| Vendor | Software vendor | Required: Vendor is required. |
| License type | Subscription (default), Enterprise, Standard, Perpetual, OEM, FRL, Freeware or Open Source | — |
| Quantity | Seats bought | At least 1: Quantity must be at least 1. Default 1. |
| Unit cost / seat / month (USD) | Cost per seat per month | Not negative: Cost cannot be negative. Default 0. |
| Seats in use | Seats installed | Not negative. Default 0. |
| Cost center | Budget owner | Optional |
| Expiry date | Date the license ends | Optional; a future date |
Delete a license
- Click Delete on the row or in the side sheet, or focus the row and press
d. - In Delete license, read Delete “{name}”? This removes the license record but does not uninstall the software.
- Click Delete. The page shows "{name}" deleted.
Deleting is permanent.
The license side sheet
Click a license to open its side sheet.
- Edit details: opens the edit form. Delete sits next to it.
- Quantity: click the number of seats bought to change it in place. The sheet shows the cost change as you type, for example +$45/mo. Press Enter to save or Esc to cancel.
- Seats in use: click the value to update it in place.
- Financials: Unit cost, Monthly total, Annual total, Cost center, Added and Last updated.
- Renewal: the Expiry date and Days remaining. Click the date to change it, or click Add expiry date when none is set.
The header shows the license name, vendor and chips for the type, status, monthly cost and cost center.
The Utilization panel explains what to do:
- When a license is over-deployed: You’ve installed {used} seats but paid for {quantity}. The vendor may audit; either uninstall the extra seats or buy more, with the monthly cost of buying them.
- When a license is under-used: n unused seats. Consider downsizing to save $X/mo.
The Renewal panel warns you when the license expires within 30 days, and adds Renewal lead time is typically 30 days — schedule the conversation today. within 14 days. After the expiry date it reads This license has expired. Update the expiry date when renewed.
At the bottom, the sheet links to Assets so you can find the devices that run the vendor’s software.
Close the sheet with ×, x or Esc.
Statuses
| Status | Meaning | Next possible status |
|---|---|---|
| Compliant | Seats in use are within the seats bought, and the license does not expire within 30 days | Over-deployed when usage exceeds the seats bought; Expiring as the expiry date approaches |
| Over-deployed | More seats are in use than were bought. This is checked first, so it wins over Expiring. | Compliant after you buy seats or uninstall software |
| Expiring | The license expires within 30 days, or has expired | Compliant after you renew and update the expiry date |
| Unlicensed | Software is detected with no license on record | Compliant after you add a license for it |
Utilization bands
Utilization is seats in use divided by seats bought.
| Band | Utilization | What to do |
|---|---|---|
| Under-used (<50%) | Below 50%, or no seats bought | Consider downsizing |
| Healthy (50–89%) | 50% to 89% | Nothing |
| Tight (90–100%) | 90% to 100% | Plan for growth |
| Over-deployed (>100%) | Above 100% | Buy seats or uninstall |
Renewal urgency, used for the expiry chips and the renewal timeline, is red within 14 days, amber within 60 days, and green beyond that.
Keyboard shortcuts
Shortcuts work when the cursor is not in a text field and no dialog is open. Press ? on the page to see them.
| Key | Action |
|---|---|
j / k | Next / previous row |
/ | Focus the search box |
n | Add a license |
e | Edit the focused license |
d | Delete the focused license |
$ | Jump to the cost-truth line |
% | Sort by utilization (press again to reverse) |
r | Open the focused license and edit its quantity |
x | Close the side sheet |
? | Show the shortcuts |
Esc | Close the side sheet, dialog or shortcut list |
Permissions
| Action | Permission |
|---|---|
| Open the page, search, filter, sort, export, open the side sheet | licenses:read |
| Add, edit and delete licenses; change quantity, seats in use and expiry date in the side sheet | licenses:write |
With licenses:read alone, the page opens as a read-only view: Add license, Edit, Delete and Edit details are hidden and the side-sheet values are plain text.
By default, the administrator role holds these permissions. Opening the page needs licenses:read.