layercell
How we build Documentation Support Contact

Documentation

Budget Tracker for Jira (Team Cost vs. Budget Reporting)

Roll up worklog cost against budget and share it with your team as a live, permissioned view, without ever exposing individual pay rates.

Roll up worklog cost against budget and share it with your team as a live, permissioned view — without ever exposing individual pay rates.

What it does

The app lives on each Jira project page as Project Cost vs Budget. You group projects into a portfolio, set a budget per project, assign hourly rates per person or per Jira project role, and the app rolls logged worklog cost up against that budget on a grid you can share with the team.

Cost is computed read-only from Jira worklogs: hours × applicable rate. The app never writes to Jira and never touches your finance systems.

Install

  1. Click Get app on the Marketplace listing.
  2. Approve the permissions. The app requests exactly four scopes: read:jira-work (read worklogs), read:jira-user (resolve group membership for permissions), storage:app (its own storage), and report:personal-data. It requests no Jira write scope at all.
  3. Open any Jira project. Project Cost vs Budget appears in the project's left sidebar.

Getting started

  1. Create a portfolio. Opening the page on a project with no portfolio shows the create form directly. Give it a name ("Delivery — Q3") and list the Jira project keys it covers, comma-separated (ACME, PLAT). A portfolio covers at most 200 projects.
  2. Set a budget per project from the grid (Edit budget).
  3. Add rates. A rate applies either to one person or to a Jira project role, in pounds per hour. Where a person has their own rate, it wins over their role rate.
  4. Wait for the first rollup. Cost figures refresh on an hourly schedule; the Figures column shows how fresh each row's numbers are.

Reading the grid

Column Meaning
Project Jira project key
Logged cost Σ worklog hours × applicable rate
Budget The figure an editor set
Remaining Budget − logged cost
Budget status Over budget is signalled by more than colour
Figures Freshness of this row's cached totals

Sort by project, cost, budget, or remaining by clicking a column header. The whole grid is operable by keyboard alone; every control and status message is exposed to screen readers.

Sharing and permissions

Share opens the permission editor. Grants are Jira facts — a user, a Jira group, or a project role within one project — so the app can never widen someone's Jira access.

  • Who can view sees cost against budget.
  • Who can edit budgets and rates can also view (you cannot set a rate you are forbidden to read).
  • Rate visibility is separate: a viewer without it sees rolled-up totals but never any individual's pay rate. Granting rate visibility without view grants nothing.

A write attempt by someone who may only view returns 403, and the edit controls are not rendered for them at all.

REST API for your own reporting

A small documented read surface serves the same cached aggregates the grid uses, plus write endpoints for budgets and rates, so a figure in your own tooling cannot disagree with the screen. Requests are authenticated either by the Forge context (from the app UI) or by a per-person app token issued from within the app; a token sees exactly what its holder sees and can never widen their access. Full endpoint reference and schemas: docs/rest-api.md.

Data handling

  • Pay rates are compensation data. They are masked at the resolver, not just hidden in the UI.
  • Every request is scoped to your Jira site by the Forge context; there is no code path where a caller-supplied value selects another tenant.
  • Worklogs are read on an hourly schedule, nothing more often, and nothing is written back to Jira.
  • Each person can export or erase everything the app holds about them via GET /rest/self / DELETE /rest/self.
  • Uninstalling purges your site's data; a daily retention sweep catches the remainder.

Limits and non-goals

  • Currency is GBP only; rates are whole pence per hour internally.
  • Tempo-logged time is excluded — only Jira core worklogs are ingested.
  • No bidirectional sync: cost flows one way, from worklogs to the app.
  • No rules engine or automated alerting: the app reports, it does not act.
  • A portfolio covers at most 200 projects.
  • Totals are served from a cache refreshed hourly, so a figure lags very recent worklog edits until the next run.

Pricing and billing

£7.90 per month flat, billed monthly by Atlassian through your Atlassian billing account. There is no per-user charge and no usage metering.


Layercell Ltd is a company registered in England and Wales, company number 17363808. Registered office: 111 Upper Grosvenor Road, Royal Tunbridge Wells, TN1 2EA.

Stuck

Ask a person.

If this guide does not answer your question, email us and a human answers. Name the product, what you were doing, and what happened instead. That is genuinely all we need to start.