Cost Performance Index (CPI) Calculator
Use this quick tool to calculate CPI from Earned Value (EV) and Actual Cost (AC). You can also add BAC to estimate EAC.
What Is Cost Performance Index?
Cost Performance Index (CPI) is one of the most useful earned value management (EVM) metrics for project cost control. It tells you how efficiently your project is using money at a specific point in time.
In plain language, CPI answers this question: “For every $1 spent, how much value did we actually earn?”
- CPI > 1.00: You are getting more value than what you spend (under budget).
- CPI = 1.00: You are exactly on budget.
- CPI < 1.00: You are getting less value than what you spend (over budget).
The CPI Formula
The formula is simple:
CPI = EV / AC
Definitions
- EV (Earned Value): The budgeted value of work actually completed.
- AC (Actual Cost): The real cost incurred for the work completed.
If you remember just one thing, remember this: EV is value earned, AC is money spent.
How to Calculate Cost Performance Index Step by Step
Step 1: Find Earned Value (EV)
Determine how much work is truly complete and multiply that by the budgeted amount for that work package or deliverable.
Step 2: Find Actual Cost (AC)
Collect actual spending from accounting, invoices, timesheets, and procurement data.
Step 3: Divide EV by AC
Apply the formula CPI = EV / AC.
Step 4: Interpret the result
Use the value to assess cost efficiency and decide whether corrective action is needed.
Example Calculations
Example 1: Over Budget
EV = $45,000 and AC = $50,000
CPI = 45,000 / 50,000 = 0.90
This means the project earns only $0.90 of value for every $1.00 spent. You are running over budget.
Example 2: Under Budget
EV = $60,000 and AC = $54,000
CPI = 60,000 / 54,000 = 1.11
This means the project earns $1.11 of value for every $1.00 spent. Cost performance is favorable.
How CPI Connects to Forecasting
CPI is not only a scorecard metric; it is also used for forecasting final cost outcomes. A common forecast is:
EAC = BAC / CPI
- BAC: Budget at Completion (total approved budget)
- EAC: Estimate at Completion (projected total final cost)
If CPI is below 1.0 and continues, EAC usually rises above BAC, signaling a likely budget overrun.
Common Mistakes When Calculating CPI
- Using percent complete without validation: Inflated progress claims distort EV.
- Mixing time periods: EV and AC must come from the same reporting date.
- Ignoring scope changes: Approved scope changes should update the baseline.
- Calculating too late: Monthly CPI checks are often too slow for fast-moving projects.
- Treating CPI as the only metric: Pair it with schedule indicators like SPI.
CPI vs Other Useful Project Metrics
Cost Variance (CV)
CV = EV - AC
Shows cost difference in currency units, while CPI shows efficiency as a ratio.
Schedule Performance Index (SPI)
SPI = EV / PV (PV = Planned Value)
SPI explains schedule efficiency. Combined with CPI, it gives a better view of project health.
Practical Tips for Better CPI Tracking
- Use consistent cost coding and work breakdown structures.
- Set a CPI threshold (for example, 0.95) that triggers management review.
- Analyze CPI trends, not just one snapshot.
- Review CPI by work package to locate specific problem areas.
- Document root causes and corrective actions each reporting cycle.
Frequently Asked Questions
Is a high CPI always good?
Usually yes for cost efficiency, but extremely high CPI can also indicate inaccurate progress measurement or delayed spending recognition. Validate the data quality.
Can CPI be negative?
Under normal project accounting, no. EV and AC are non-negative values, so CPI should be zero or positive.
What if AC is zero?
CPI cannot be calculated when AC is zero because division by zero is undefined. Wait until costs are recorded or verify your cost data feed.
Bottom Line
If you want a fast, reliable check on project cost efficiency, calculate CPI regularly. The core method is straightforward: CPI = EV / AC. Then interpret the result and act early if the trend drops below 1.0. Small corrections now prevent large overruns later.