Earned Value Basics: SPI and CPI
Last reviewed 9 September 20262,526 words11 min read
Three numbers, two ratios, and the one thing SPI cannot tell you
π© In one line: Planned value comes from the accepted baseline, earned value comes from physical percent times budget, actual comes from timesheets or certified cost β SPI and CPI are the two ratios between them, and neither one measures delay; the longest path does.
π€ Who this is for: Junior planners who have been asked for "the SPI"; mid-level planners setting up the earned-value fields at baseline. Prerequisites: Progress-measurement-and-rules-of-credit, P6-baselines-assign-and-maintain, Cost-loading-and-cash-flow.
First, let's be honest about why this page exists
Earned value is the most over-quoted and least understood number in a Gulf monthly report. An SPI of 0.93 gets read as "7 % late", which is not what it means; an SPI of 0.98 in month 22 gets read as recovery, when SPI drifts back to 1.0 on every late project as the baseline runs out of planned value. Meanwhile the schedule is 40 days behind on the longest path and nobody in the room has looked.
Used properly, earned value is a good early-warning and a good cost tool. This page sets up the three inputs correctly in P6, gives the formulas once, and draws the line around what SPI may and may not be used to say.
π¨ The standard β what "good" looks like
| Source | What it says (paraphrased) | Use it for |
|---|---|---|
| EIA-748 (ANSI/EIA-748, current revision) | 32 guidelines for an earned value management system: organisation, planning and budgeting, accounting, analysis, revisions | The reference framework; the name behind "EVMS" (check against your copy) |
| PMI Standard for Earned Value Management (2019) / Practice Standard for EVM, 2nd ed. | PV, EV, AC definitions; SV, CV, SPI, CPI, EAC, TCPI; earned schedule as an extension (check the edition and section in your copy) | Formulas and vocabulary |
| AACE RP 10S-90 Cost Engineering Terminology | BCWS / BCWP / ACWP as the older names for PV / EV / AC | Reading old specifications |
| AACE RP 82R-13 Earned Value Management (EVM) Overview and Recommended Practices Consistent with EIA-748-C | Applying EVM in projects; measurement techniques by activity type (check against your copy) | Rules of credit β EV technique |
| AACE RP 80R-13 Estimate at Completion (EAC) | EAC methods and when each applies (check against your copy) | Choosing an EAC formula |
| GAO Cost Estimating and Assessment Guide (GAO-20-195G), EVM chapter | EVM data reliability depends on a valid baseline and consistent measurement | Why baseline discipline comes first |
| DCMA 14-Point, items 13 (CPLI) and 14 (BEI) | Schedule performance measured on the schedule, not on SPI | The schedule-side indicators |
| FIDIC 1999 Cl 4.21 / 2017 Cl 4.20 | Progress report compares actual and planned progress (check the edition in your contract) | Where the EV table goes |
| Hub convention | Physical % on production; roll-up by manhours or cost; EV baseline = Project baseline; performance % settings at Admin β Admin Preferences β Earned Value with WBS-level override; SPI threshold 0.95 flag; SPI never reported without the longest-path variance beside it | Your defaults |
π’ Rule: SPI and CPI are ratios of work and money against the accepted baseline; the schedule variance in days lives in the longest path, and the two are reported side by side or not at all.
How it actually works
1. The three inputs and where P6 gets them.
| Term | Old name | Meaning | P6 source (check against your P6 version) |
|---|---|---|---|
| Planned Value (PV) | BCWS | Budget of work scheduled to date per the baseline | Baseline budgeted units/cost spread across baseline dates, cut at the data date; P6 fields Planned Value Labor Units / Planned Value Cost |
| Earned Value (EV) | BCWP | Budget of work actually done to date | Performance % Γ Budget at Completion; Earned Value Labor Units / Earned Value Cost |
| Actual (AC) | ACWP | What it actually consumed to date | Actual Labor Units / Actual Total Cost β entered, not calculated |
| Budget at Completion (BAC) | β | Total baseline budget | BL Project Total Cost / BL Labor Units |
Two currencies. Run EV in manhours for schedule reading (SPI in hours reflects site output and is what the planner owns) and in cost for the commercial reading (CPI needs money). P6 gives both from the same assignments if labour is loaded in hours and cost is loaded as expenses or price/unit (see Resource-loading-and-histograms, Cost-loading-and-cash-flow).
2. The settings β four places, set once.
| Where | Setting | Value |
|---|---|---|
| Project Details β Settings | Baseline for earned value calculations | Project baseline (the accepted revision from the register) |
| Admin β Admin Preferences β Earned Value | Technique for computing performance % complete | Activity percent complete (so Physical % drives EV); ETC = PF Γ (BAC β EV) with PF = 1 as default, changed per WBS where justified |
| WBS β Earned Value tab | Per-node override of technique and ETC | Use 50/50, 0/100 or steps where the SBM rules of credit say so; leave the rest inheriting |
| Project Details β Calculations | Activity % complete based on activity steps | Ticked where weighted steps are the rule of credit |
Screenshot all four into the SBM. A changed EV technique mid-project rewrites history; it is a baseline-revision act.
3. The formulas β once.
| Measure | Formula | Reads as |
|---|---|---|
| Schedule Variance | SV = EV β PV | Negative = behind in work done, in hours or money |
| Cost Variance | CV = EV β AC | Negative = spending more than earned |
| SPI | EV Γ· PV | 1.00 = on plan for work done; 0.95 = flag |
| CPI | EV Γ· AC | 1.00 = on budget; <0.95 = flag |
| EAC (cost, trend) | BAC Γ· CPI | If the cost trend holds |
| EAC (cost, combined) | AC + (BAC β EV) Γ· (CPI Γ SPI) | Pessimistic; when schedule pressure will cost money |
| ETC | EAC β AC | What is left to spend |
| TCPI | (BAC β EV) Γ· (BAC β AC) | Efficiency needed from here to land on BAC; >1.10 is rarely achieved |
| % Planned | PV Γ· BAC | The baseline S-curve at DD |
| % Earned | EV Γ· BAC | The actual S-curve at DD |
4. Where EV is read. Activities window, columns Planned Value Labor Units, Earned Value Labor Units, Actual Labor Units, Schedule Performance Index, Cost Performance Index, Estimate at Completion, grouped by WBS to Level 2 or 3. Or WBS window with the same columns. The Activity Usage Profile with cumulative Planned Value and Earned Value curves is the S-curve (see S-curves-early-late-actual).
5. What SPI is for, and what it is not for.
| SPI can tell you | SPI cannot tell you |
|---|---|
| Whether total site output is behind the baseline plan of output | Whether the completion date has moved |
| Where output is behind, by WBS node or trade | Whether the work that is behind is on the critical path |
| That a trade earning 0.80 for three months has a productivity or resource problem | Whether that trade matters to the milestone |
| Early warning β SPI usually falls before float does | Anything after roughly 70 % complete, when it drifts back to 1.0 |
| A weighted, one-number summary the PMO can trend | Who caused it |
The schedule answers the right-hand column: longest-path variance to the contractual milestone, CPLI, BEI, and the trend register. The narrative shows SPI (hours) and CPI (cost) in the same table as those, never on their own.
6. Monthly routine. After statusing (Physical % from the quantity sheet, Actual Units from the timesheet roll-up or gate log, Actual Cost from the QS if the contract wants it): reschedule; read PV/EV/AC at project level and Level 2; compute SPI and CPI in hours and cost; compare % earned with the gross application (tolerance 3 %); reconcile BEI to SPI β they should move the same direction; explain any SPI < 0.95 node in one sentence naming the driver activity ID. EV table into the monthly report next to the schedule variance.
π₯ Where people go wrong
- "SPI 0.90 means 10 % late." It means 90 % of the planned work-to-date has been done, weighted by hours or money. The delay might be zero (non-critical work behind) or 60 days (a small critical chain behind). Report the longest-path variance in the same line.
- PV from the current schedule. The Project baseline is missing or set to the current update, so PV = EV every month and SPI = 1.00 for ever. Project Details β Settings must point at the accepted revision; check it at every update.
- Duration % driving EV. Performance % set to Duration % on production means EV accrues by calendar, not by work. Physical % on production, steps where the SBM says, Duration % only on LOE, reviews, curing.
- Actual manhours that are not actual. Gate-log headcount Γ 10 h, with no trade split, or subcontractor invoices as actual cost. Actuals come from timesheets by trade and cost code, or the field stays blank and CPI is not reported.
- EAC = BAC because nobody changed the ETC. P6 defaults ETC to remaining units; with PF = 1 the EAC never learns from CPI. Set the ETC formula per WBS in the Earned Value tab where the trend is established, and say so in the narrative.
- SPI trended in the last third of the job. It rises towards 1.0 mechanically as PV reaches BAC. From about 70 % earned, read earned schedule (Earned-schedule) or stop quoting SPI as a schedule measure.
- EV re-based every time the schedule is revised. Each recovery Reflection becomes the "baseline" and the S-curve resets. EV is against the register's accepted revision only; a revised baseline is a flagged row and the series continues across it.
βοΈ When you're challenged
"SPI is 0.97 β we're basically on programme." SPI says total output is 3 % behind the baseline plan, weighted by manhours. The longest path says Section 1 is 22 working days late, because the work that's behind is the podium MEP chain and it's small in hours but critical in sequence. Both numbers are in the table; the second is the one liability attaches to.
"Why don't you just use SPI instead of all this float analysis?" Because SPI doesn't know which activities matter. It's a good early warning β it dropped below 0.95 in month 4, two months before float went negative β but it can't tell you the date. Float can.
"CPI is 1.04, so the recovery plan is affordable." CPI is cumulative and includes the cheap early work. Period CPI for the last three months is 0.91, which is what the recovery cost should be forecast against. Both are on the sheet.
"The PMO wants EAC. Why does yours differ from the QS's?" Mine is BAC Γ· CPI on manhours and on loaded cost β a trend estimate. The QS's is a bottom-up cost-to-complete with commercial adjustments. They should bracket each other; this month mine is 3 % higher, and the reason is the finishing-trade CPI of 0.88, which the QS's estimate assumes recovers.
π Related pages
- Progress measurement and rules of credit β EV is only as good as the Physical % behind it
- P6 Baselines: Assign and Maintain β PV comes from the Project baseline and nowhere else
- CPLI and BEI β the schedule-side indicators SPI must be reported with
- Earned Schedule β the fix for SPI's late-project drift
- Cost Loading and Cash Flow β loading the cost side of EV
- Manhour Budget and Productivity Tracking β where the actual hours come from
- S-Curves: Early, Late and Actual β PV and EV as curves
- Redirect: earned-value-basics and spi-and-cpi-explained are merged into this page
βοΈ Worked example β Jeddah hospital, DD 25-Aug (month 15 of 34)
Baseline BL1-Accepted-DD 25Feb-Rev1. Labour BAC 4,820,000 mh. Cost BAC SAR 1,240 M. Contractual completion 30-Jun (Y3).
| Level | BAC (kmh) | PV (kmh) | EV (kmh) | AC (kmh) | SV | SPI | CPI |
|---|---|---|---|---|---|---|---|
| Project | 4,820 | 2,140 | 1,975 | 2,210 | β165 | 0.92 | 0.89 |
| Structure (all blocks) | 1,380 | 1,310 | 1,290 | 1,340 | β20 | 0.98 | 0.96 |
| Envelope | 420 | 210 | 168 | 190 | β42 | 0.80 | 0.88 |
| MEP | 1,910 | 480 | 392 | 470 | β88 | 0.82 | 0.83 |
| Architectural finishes | 860 | 120 | 108 | 190 | β12 | 0.90 | 0.57 |
| T&C / handover | 250 | 20 | 17 | 20 | β3 | 0.85 | 0.85 |
Cost: PV SAR 552 M, EV SAR 508 M, AC SAR 561 M β SPI 0.92, CPI 0.91. EAC (BAC Γ· CPI) = SAR 1,363 M. TCPI to BAC = (1,240 β 508) Γ· (1,240 β 561) = 1.08.
Side-by-side table in the narrative:
| Measure | Value | Source |
|---|---|---|
| SPI (hours) | 0.92 | P6 EV, BL1 |
| CPI (cost) | 0.91 | P6 EV, BL1, QS actuals |
| Longest-path variance to contractual completion | β18 working days | Layout 04 |
| CPLI | 0.96 | (CPL + TF) Γ· CPL |
| BEI | 0.88 | 412 finished Γ· 468 baseline-due |
| Driver | MEP-B2-L3-DUC-140 | Block 2 L3 duct install, 12 d behind |
| Period SPI (last 3 months) | 0.86 | Workbook |
Read: SPI 0.92 and BEI 0.88 agree that output is behind. The β18 days are driven by one MEP chain in Block 2; the envelope at 0.80 is not on the longest path and has 26 days of float β reported, not escalated. Architectural CPI 0.57 is early data (108 kmh earned) and is flagged for the QS rather than trended. The ETC for MEP is set to PF = 1 Γ· 0.83 in the WBS Earned Value tab from this update, noted in the change table as a planner edit.
π References
- EIA-748, Earned Value Management Systems (check against your copy)
- PMI, The Standard for Earned Value Management (2019) and Practice Standard for Earned Value Management, 2nd ed. (check against your copy)
- AACE International RP 10S-90, Cost Engineering Terminology; RP 80R-13, Estimate at Completion (EAC); RP 82R-13, Earned Value Management Overview (check against your copy)
- GAO, Cost Estimating and Assessment Guide, GAO-20-195G (EVM chapter)
- DCMA 14-Point Schedule Assessment, items 13 and 14
- FIDIC Conditions of Contract for Construction 1999, Cl 4.21; 2017, Cl 4.20 (check the edition in your contract)
- Oracle Primavera P6 Professional User Guide β Earned Value settings; Admin Preferences; WBS Earned Value tab (check against your P6 version)
From the field
Experience from working planners. Unreviewed β read it as experience, not guidance.
Add what you know about earned value basics: spi and cpi. What worked, what the consultant pushed back on, what you would do differently next time. A paragraph is plenty.
Contributors get their name and one link on the site β your own templates, course or consultancy. We take nothing and hold nothing.
Add your experience