I'm part of the team behind Assets Gadgets for Jira, the app used in the second half of this article.
Software renewals rarely come one at a time. A collaboration suite in March, a design tool in April, a security product in May. Before each one, someone in IT opens a spreadsheet and asks the same questions: how many seats did we buy, how many are actually assigned, what does it cost us a year, and who owns the contract?
In many companies the answers are already in Jira Assets. The licences are objects, the people who use them are linked, the renewal date and the price are attributes. But nobody sees all of it in one place, so licences tend to be renewed "as is". That usually means one of three things: paying for seats nobody uses, finding out about over-allocation during a vendor audit, or discovering a renewal a week before the deadline, when there is no time left to negotiate.
This article shows a simple data model for licences in Assets, what you can do with Jira out of the box, and how to put seats, renewals and spend on one Jira dashboard.
Step 1. A licence model in Assets
You don't need a special schema. One object type is enough:
Attribute | Type | Example |
|---|
Name | Text | Design tool, Enterprise |
Seats purchased | Integer | 50 |
Renewal date | Date | 2027-03-31 |
Annual cost | Float | 18000 |
Vendor | Select or object reference | Acme Software |
Department | Object reference | Marketing |
Assignments can be modelled in two ways:
- A number attribute "Seats assigned" that someone (or an automation rule) keeps up to date.
- References: the user objects or devices that use the licence point to it through a reference attribute such as "Licence". Then the number of assigned seats is simply the number of objects that reference the licence. This is the more reliable option, because it can't drift away from reality.
Step 2. What Jira gives you out of the box
Two native approaches come up again and again in Community answers:
- Counting seats with automation. A rule runs when a request for software is created and subtracts one from an integer attribute on the licence object. It works, but as one accepted answer puts it, it is "always tricky": you need a second rule to give seats back during offboarding, and the number drifts whenever someone edits an object by hand.
- Expiry e-mails. Atlassian's knowledge base describes a scheduled automation rule with an AQL lookup on a date attribute, for example a licence expiration date, that e-mails the list of upcoming expiries.
Assets dashboards are also available on the Jira Service Management Premium and Enterprise plans. Atlassian notes that their data can lag by at least 30 minutes, and the older Assets reports are deprecated on 1 November 2026.
What is still missing for a renewal conversation is one live view of "purchased vs assigned" per licence, the renewals coming up next, and the spend, on the Jira dashboard that IT leads and managers already open every morning.
Step 3. One saved filter as the source
In Asset Manager (the app's search page), search for the licences you want to track, for example objectType = "Software licence" AND Status != Retired, and save it as a filter called Active SaaS licences. Every gadget below uses this filter as its data source. When the scope changes (a new object type, a retired vendor), you edit the filter once and the whole dashboard follows.
Step 4. Seats: the License seats gadget
License seats gadget: seats purchased, seats assigned, over-allocation and a per-licence table
Add the License seats gadget and choose:
- Seats purchased – the numeric attribute.
- How to count assigned seats – either a numeric attribute, or Count inbound references to the licence object. With references you don't need any automation rule: the gadget counts the objects that point to each licence.
- Near-limit threshold – 90% by default.
The gadget shows three tiles, Seats purchased, Seats assigned and Over-allocation, with overall utilisation, and a table per licence with a utilisation bar and a status: OK, Near limit or Over-allocated. Over-allocated licences come first.
Two readings matter before a renewal:
- Over-allocated licences are a risk in a vendor audit. Click the Over-allocation tile to list them, and click the assigned number of a licence to see exactly who holds the seats.
- Low utilisation means seats you can cut at renewal: purchased minus assigned, straight from the table.
Step 5. Renewals: the Expiring soon gadget
Expiring soon gadget: overdue renewals and the next 30, 60 and 90 days
Add Expiring soon on the same filter and pick Renewal date as the date attribute. Keep the default windows (30, 60 and 90 days) and turn on Show overdue. The tiles count the renewals in each window, and the list under them shows the nearest ones with the days left.
The 60-day window is the useful one: that is when you still have time to compare offers, cut seats or change the plan.
Step 6. Spend: the Value / TCO gadget
Value / TCO gadget: annual cost grouped by department
Add Value / TCO, group by Vendor or Department and sum Annual cost. Set the currency symbol (one symbol, no conversion between currencies). The gadget shows the sum per group, the number of licences and the share of the total, with the top groups and the rest as "Other". Click a group to see the licences behind it.
This is the number management asks for: what each department or vendor costs per year, without exporting anything.
Step 7. A 60-day renewal routine
With the three gadgets on one dashboard, a renewal review takes a few steps:
- Open the dashboard and look at the Next 60 days tile in Expiring soon.
- For each licence in the list, check its utilisation in License seats.
- Click the assigned number to see who holds the seats. Ask the owners of inactive seats before you cut them.
- Check the annual cost in Value / TCO to know what's at stake.
- Decide: cut, keep or add seats. Write the decision on the licence object, so the next review starts from it.
FAQ
Do I need automation to count assigned seats? No. If users or devices reference the licence, License seats counts the references. A numeric attribute works too.
Do I need a special object type? No. Any object type with a numeric attribute for seats and a date attribute for the renewal works.
Who can see the numbers? Everyone who can open the dashboard. In the app's Respect Permissions mode, each viewer sees only the objects their own Assets permissions allow.
Can I see which people hold the seats of one licence? Yes. Click the assigned number of the licence in the table (when seats are counted by references).
Assets Gadgets for Jira on the Atlassian Marketplace: