EnableYourData.com

KPI · Projects and time

Schedule performance index (SPI): formula and example.

The schedule performance index (SPI) is the ratio between earned value and planned value for a project. Planned value is the budgeted cost of the work that should have been completed by now according to the plan. An SPI below 1 means the project is behind schedule.

Schedule performance index (SPI) formula

Earned value ÷ planned value

Worked example

According to the plan, Acme Groothandel's project should by now have completed €80,000 of budgeted work (planned value). Work worth €60,000 has been delivered (earned value). The SPI is €60,000 ÷ €80,000 = 0.75: the project has done three quarters of what was planned.

Fictitious figures for Acme Groothandel, a sample wholesaler.

How to read this KPI

An SPI of 1 means the project is on schedule; above 1 it is ahead and below 1 it is behind. Towards the end of a project the SPI always moves to 1, even if it is late, so then look at the actual end date too. Read the SPI with the CPI to see whether delays are also driving up costs.

Pitfalls with schedule performance index (SPI)

  • Using an outdated plan as the basis for planned value.
  • Treating the SPI at the end of a project as proof of on-time delivery; it always ends at 1.
  • Missing delays on the critical path because other work running ahead lifts the average.

SQL & DAX

Calculating schedule performance index (SPI) in SQL and DAX

Two examples on a fictitious data warehouse for Acme Groothandel: a PostgreSQL query and a measure for a Power BI model. Adjust table and column names to your own model.

SQL · PostgreSQL
SELECT project_id,
       planned_value,
       earned_value,
       earned_value - planned_value AS schedule_variance,
       ROUND(earned_value / NULLIF(planned_value, 0), 2) AS spi,
       planned_end
FROM projects
WHERE status = 'active'
ORDER BY spi;
DAX · Power BI
SPI = DIVIDE ( SUM ( Projects[EarnedValue] ), SUM ( Projects[PlannedValue] ) )
Schedule Variance = SUM ( Projects[EarnedValue] ) - SUM ( Projects[PlannedValue] )

In ENABLE

Tracking this KPI in ENABLE

Plain-language questions

Ask for schedule performance index (SPI) per month, customer or product in the SQL Explorer with AI. The AI writes the SQL, you see the query and run it yourself; the AI only receives metadata.

Read more →

In your Power BI dashboard

Define the KPI as a measure in your Power BI model and show it in the portal, with "Last refreshed" next to it. Access profiles and optional row-level security decide who sees which figures.

Read more →

Custom dashboards (pilot)

Add the KPI as a tile to a custom dashboard, compared with last year. The Dashboard Builder is a pilot and can be switched on per client.

Read more →

Monthly targets

With the built-in Targets app you set a target for the KPI per month, so you see actuals and target side by side.

Read more →

FAQ

Frequently asked questions

How do you calculate the schedule performance index?

Divide earned value by planned value at the same point in time. Planned value is what should have been done according to the plan, earned value is what has actually been done, both in budgeted euros. A result below 1 means the project is behind.

What does an SPI of 0.75 mean?

An SPI of 0.75 means the project has delivered 75% of the work that should have been completed by now. It is a quarter behind on planned work. How many days that represents depends on how the work is spread across the schedule.

Why is SPI always 1 at the end of a project?

Because once all the work is done, earned value equals the total budget, just like planned value. Even a project that is months late ends at 1. In that phase, compare the actual end date with the planned one.

Use AI on your own data. Securely, and without the headache.

In an online demo we show how ENABLE makes your data securely available and how you build on it: describing an app in the AI Builder, plain-language questions, dashboards and APIs. And how we set it up and manage it for you.