Three numbers
Earned value management compares three amounts of money at a point in time:
- Planned value (PV) — how much of the budget you planned to have used by today. With a budget from 1 March to 31 August, halfway through June the plan says about half.
- Earned value (EV) — how much of the budget the finished work is worth. If the project is 40% complete, EV is 40% of the budget, whatever it cost.
- Actual cost (AC) — what has really been spent. In Jira, that is the hours logged, priced at each person's rate on the day.
Everything else is a ratio or a difference of those three, plus the budget at completion (BAC), the total budget.
A worked example
A project has a budget of $50,000. Half the scheduled time has passed. The team has finished 40% of the work and logged hours worth $24,000.
| Measure | Formula | Value | Reads as |
|---|---|---|---|
| PV | 50% × BAC | $25,000 | where the plan says we'd be |
| EV | 40% × BAC | $20,000 | what the finished work is worth |
| AC | logged hours × rates | $24,000 | what we spent |
| CPI | EV ÷ AC | 0.83 | each $1 buys 83¢ of progress |
| SPI | EV ÷ PV | 0.80 | progressing at 80% of plan |
| EAC | BAC ÷ CPI | $60,000 | forecast total if nothing changes |
| VAC | BAC − EAC | −$10,000 | forecast overrun |
| TCPI | (BAC − EV) ÷ (BAC − AC) | 1.15 | efficiency needed to finish on budget |
The project has used 48% of its money and 50% of its time, which sounds fine. Earned value shows it is behind schedule and over budget: it has bought $20,000 of progress for $24,000, and to land on budget the rest of the work would need to run 15% more efficiently than planned.
Where “percent complete” comes from
EV is only as honest as percent complete. Bastion Helix Budgets takes it from, in order:
- A figure the budget owner sets explicitly, when there is one.
- Otherwise, resolved story points out of all story points in the budget's issues.
- Otherwise, resolved issues out of all issues.
It deliberately never falls back to elapsed time. If percent complete follows the calendar, EV always equals PV, SPI is always 1, and a late project always looks on schedule.
Why the forecast waits
EAC divides the budget by CPI. On day three, a few logged hours against a large budget can produce a CPI of 20 and a forecast of almost nothing. So the forecast stays blank until at least 10% of the budget has been spent, and the page says why.
How a health label is decided
Keying health off CPI alone is a common mistake: a project 17% done and 72% through its schedule has underspent, so CPI looks fine. Bastion Helix checks cost and schedule separately:
| Label | When |
|---|---|
| On track | CPI ≥ 0.98 and SPI ≥ 0.95 |
| At risk | CPI ≥ 0.88 and SPI ≥ 0.80, but not on track |
| Over budget | CPI below 0.88 |
| Behind schedule | SPI below 0.80, with cost still within reach |
| Not started / No data | nothing spent or earned yet, or no way to measure completion |
The worked example above, with CPI 0.83, is over budget.
Getting actual cost right
Actual cost is only as good as the rates behind it. Each worklog is priced at the rate that applied on the day the work happened: the person's own rate if they have one, then the project's, then the site default. Cost is never stored, so correcting a rate reprices the work it covers the next time you look. Only Jira administrators set rates, and only budget owners see per-person cost.
Bastion Helix for Jira isn’t on the Marketplace yet. All seven modules are built and running in our own test Jira site. Try the live demos, or leave your email below to hear the day early access opens.