Updated · All guides
The short answer
Earned value management compares three numbers: the work planned to be done by today (planned value), the work actually done (earned value) and the effort actually spent (actual cost). Schedule performance (SPI) is earned value ÷ planned value; cost performance (CPI) is earned value ÷ actual cost. Below 1 means behind plan or over effort. For software projects, measure work in estimated hours or work items from Jira, give in-progress work partial credit, and re-baseline when scope is deliberately changed.
The terms in plain words
| Term | Meaning | Formula |
|---|---|---|
| BAC | Budget at completion: the total estimated work | Sum of all estimates in scope |
| PV | Planned value: work that should be done by today | BAC × elapsed days ÷ total days, or from a baseline schedule |
| EV | Earned value: work actually done, valued at its estimate | Estimates of done items + partial credit for in-progress items |
| AC | Actual cost: effort actually spent | Hours logged |
| SPI | Schedule performance index | EV ÷ PV |
| CPI | Cost performance index | EV ÷ AC |
| EAC | Estimate at completion: likely total effort | BAC ÷ CPI |
Where the numbers come from in Jira
- BAC: the Original Estimate on every issue in scope, summed. If few issues have time estimates, count issues instead and treat each as one unit.
project = ABC AND fixVersion = "2.0" - EV: the estimates of issues in a Done status, plus half the estimate of issues in progress. Half credit is a common, simple rule; counting in-progress work as fully earned flatters progress.
- PV: without a detailed baseline, assume work is spread evenly between the project's start and end dates.
- AC: Time Spent from work logs, if the team logs time. If not, you can still calculate SPI, but not CPI.
A worked example
A 12-week project (84 days) with 1,200 estimated hours. Today is day 42, halfway through.
| Measure | Calculation | Result |
|---|---|---|
| Planned value | 1,200 × 42 ÷ 84 | 600 h |
| Earned value | 420 h done + half of 160 h in progress | 500 h |
| Actual cost | Hours logged so far | 560 h |
| SPI | 500 ÷ 600 | 0.83: behind schedule |
| CPI | 500 ÷ 560 | 0.89: more effort than estimated |
| Estimate at completion | 1,200 ÷ 0.89 | about 1,344 h, 144 h over |
| Likely slip | 42 remaining days × (1 ÷ 0.83 − 1) | about 8 days late |
Halfway through, the project has earned 83% of the value it planned and is spending 12% more effort than estimated for what it delivers. At this rate it finishes about eight days late and around 144 hours over. Those are the numbers to bring to the steering committee now, while there is half a project left to recover.
Reading SPI and CPI together
| CPI 1 or above | CPI below 1 | |
|---|---|---|
| SPI 1 or above | On track | On time, but by working more hours than planned. Check for overtime and burnout. |
| SPI below 1 | Efficient but late. Usually a capacity or start-date problem: too few people or a late start. | Behind and over effort. Look at scope, estimates and blocked work. |
Making earned value work for software
- Re-baseline on deliberate scope changes. When the steering committee adds a feature, add it to BAC. Otherwise SPI drops for a decision, not a delivery problem.
- Pick one unit and keep it. Hours, issue counts or story points can all work, but never mix them in one project.
- Check estimate coverage first. If fewer than about 40% of issues are estimated, the BAC is a guess and SPI will mislead. Use overdue and blocked work instead until coverage improves.
- Watch the end of the project. SPI always drifts back towards 1 near completion, even on a late project, because eventually all the planned value is earned. In the final weeks, compare dates directly: open work due after the end date tells you more.
- Use it with flow signals. SPI says you are behind; blocked work, overload and scope growth say why. See early warning signs a software project will slip.
How Exentras uses earned value
For projects with a start date, an end date and estimated work, Exentras calculates earned value automatically. The budget comes from Jira original estimates in hours (story points are converted to hours where an issue has no time estimate), or from the number of work items when no estimates exist. In-progress work earns half its estimate, and planned value is spread evenly across the project dates. CPI is calculated where actual hours are recorded on work items. The project health view shows planned and earned value over time as an S-curve.
Schedule and cost performance feed each project's risk score and delay forecast, including an SPI-based estimate of slip in days. When fewer than 40% of work items are estimated, they are left out of the risk score rather than guessed, and work due after the project end date is used as the schedule signal instead. On Enterprise, an SPI or CPI below 1 also raises an alert. Read more about delivery forecasting.