Plumbworks / Instance Ledger / Jira Cloud
Find out what your Jira instance is charging you for and nobody uses.
Instance Ledger finds the seats you are paying for that nobody is using, and puts an annual cost next to each one. Built for the week before renewal: one scan, one number, and the seat-count argument is over.
Costs are calculated from the per-seat rate you set from your own Atlassian invoice, not a generic average. Activity means Jira issue activity — Jira Cloud does not expose login data to apps, and we say so rather than guess.
What it checks
The licence ledger first, then the configuration debris around it — projects, fields, admin rights, headroom. Scans run weekly in the background or on demand, and every finding exports to CSV so you can hand it to whoever owns the budget.
- licencesDormant seats. Users with no issue activity inside your chosen window, with the annual cost of each one at the per-seat rate you set.
- licencesOnly licensed users counted. Directory accounts with no Jira product access — Confluence-only users, for instance — are verified and excluded, so the dollar figure never includes seats you aren't paying for.
- thresholdsYour definition of dormant. Set the dormancy threshold and the activity window to match how your organisation actually works; seasonal users need a longer leash.
- scheduleWeekly scan. Runs automatically in the background once a week, or on demand when renewal is next Tuesday — with live progress, and the previous report stays usable while it runs.
- exportCSV out. Dormant users or the full user list, with activity dates and per-seat cost, ready for finance or your IdP team. Every file states the scan date and the assumptions used.
- projectsDormant projects. Projects with no issue activity in your window, with last activity dates — archive candidates, listed separately because they cost attention, not money.
- fieldsUnused and duplicate custom fields. Custom fields with no value on any issue, ranked by how many screens and contexts each is wired into, plus duplicate definitions grouped by name and type. Atlassian's locked default fields are excluded, not accused.
- adminsAdmin sprawl. Who holds site and project admin rights, least recently active first — measured by issue activity, stated as such. Org-admin roles live outside Jira and are labelled as not visible.
- headroomHeadroom. Where your site sits against Atlassian's published guardrails — work items and projects gauged against the real site-wide numbers; fields, statuses and work types counted with their per-configuration limits for context.
- honestyNo confident wrong numbers. If a scan is incomplete, the app suppresses the dollar figure and says so. Unconfirmed access is labelled, not hidden.
On the roadmap
The rest of the ledger, planned but not yet built. Listed so you know where the app is heading — buy it for the licence report it is today, not for this list. If one of these would change your decision, email us and say so; that is genuinely how the order gets set.
- plannedIdP drift. Accounts disabled in your identity provider that still hold paid Atlassian product access — disabling in the IdP does not stop Atlassian billing, and this is where the most expensive surprises live.
- plannedPermission exposure. Schemes granting browse or edit to anonymous users, "anyone on the internet" links, and groups with unexpectedly broad reach. Requires deeper read permissions than the base install, so it will ship behind a separate optional grant.
- plannedOrphaned workflows and screens. Schemes attached to no active project, with a preview of what unlinking each one would touch. Same optional-grant tier as permission exposure.
Read-only until you say otherwise
The default installation requests no write permissions. Instance Ledger physically cannot change your instance, which is the answer to the first question every change board asks.
Cleanup actions — bulk-deactivating dormant users, for instance — are planned rather than shipped. When they arrive, they will sit behind a separate permission grant you approve later, if you want them at all, and every action will open an impact preview and write an entry to your Atlassian audit log when it runs.
Pricing
Billed by Atlassian at the same user tier as your largest Jira product, and charged on your existing Atlassian invoice. Free for instances of 10 users or fewer.
| Users | Per user / month | Monthly |
|---|---|---|
| 1 – 10 | free | $0 |
| 11 – 100 | $1.30 | $130 at 100 |
| 101 – 500 | $0.75 | $375 at 500 |
| 501 – 1,000 | $0.45 | $450 at 1,000 |
| 1,001 + | $0.28 | $515 at 1,840 |
At 1,840 users the app costs about $6,180 a year. The sample report above finds $35,880.
Questions
How long does a scan take?
Seconds on most instances, a few minutes on large sites with heavy issue history. Scans run in the background with live progress, and the previous report stays visible and usable throughout.
Does it measure logins?
No — and no Forge app can. Jira Cloud does not expose login data to apps, so Instance Ledger measures issue activity: creating, commenting and transitioning work. A user who only reads boards will look dormant. We state this openly because a licence tool that hides its measurement isn't one you should trust.
What about bots and service accounts?
App accounts (Marketplace apps, integrations, bots) and Jira Service Management portal customers don't consume Jira licences and never appear in the dormant list. Issue activity created through the API by a real user account counts the same as activity in the browser.
How does the report reach whoever owns the budget?
Export it as CSV from the admin page — dormant users or the full list, with the scan date and cost assumptions stated in the file. Scheduled email delivery is not built today.
What happens to my data if I uninstall?
Nothing to delete on our side, because nothing left your tenant. Forge app storage is removed by Atlassian when the app is uninstalled.