EVM Overview
The earned value management is one of the very popular and standard approach to managing the value as part of the planned scope. It has three different elements namely the planned value (PV, also known as Budgeted Cost of Work Schedule or BCWS) at the beginning of the project, the earned value (EV, also known as Budgeted Cost of Work Performed or BCWP) at a snapshot in time during the project, and the actual costs (AC, also known as Actual Cost of Work Performed or ACWP) incurred in the project at the same time the EV is measured.
From here, two sets of metrices can be created.
EVM Measure | Schedule | Cost |
Variance Analysis | Schedule Variance (SV) SV = EV - PV | Cost Variance (CV) CV = EV - AC |
Index Analysis | Schedule Performance Index (SPI) SPI =EV / PV | Cost Performance Index (CPI) CPI = EV / AC |
In Project Management, these measures are used as follows:
- If SV is zero or SPI is 1, the project is on schedule.
- If SV is negative or SPI < 1, the project is behind schedule.
- If SV is positive or SPI > 1, the project is ahead of schedule.
- If CV is zero or CPI is 1, the project is on budget.
- If CV is negative or CPI < 1, the project is over cost.
- If CV is positive or CPI > 1, the project is below costs.
Myths
One of the biggest challenge in EVM calculation is that the actual costs is always required. Many internal projects are staffed with exempt resources (salaried employees without any overtime cost is) and therefore the project does not directly manage the costs. Furthermore, the project itself may not track any indirect costs as these are part of either the capital expenses or operating expenses of another business unit or department.
However, even in such cases, the project management requires whether the project is on schedule or not. So, Schedule Variance or Schedule Performance Index is required. To compute them, only the time estimated (PV) and time accrued at the point of measure (EV) are required.
SQL Query
select R.NAME,
R.TASK_ESTIMATED_EFFORT AS PLANNED_VALUE,
R.TASK_PROJECTED_EFFORT as EARNED_VALUE,
(R.TASK_PROJECTED_EFFORT - R.TASK_ESTIMATED_EFFORT) as SCHEDULE_VARIANCE,
Round((Cast(R.TASK_PROJECTED_EFFORT as double) / Cast(R.TASK_ESTIMATED_EFFORT as double)),2) as SCHEDULE_PERFORMANCE_INDEX
from
SpiraTestEntities.R_Releases as R
where
R.PROJECT_ID = ${ProjectId} and
R.TASK_ESTIMATED_EFFORT IS NOT NULL and
R.TASK_PROJECTED_EFFORT IS NOT NULL and
R.RELEASE_TYPE_NAME in {"Sprint", "Phase", "Minor Release"} and
R.RELEASE_STATUS_NAME = "In Progress"
Explanation
- The TASK_ESTIMATED_EFFORT serves as the PLANNED_VALUE
- The TASK_PROJECTED_EFFORT serves as the EARNED_VALUE
- The Schedule Variance is computed as a difference (EV - PV)
- The Schedule Performance Index is computed as a ratio (EV / PV)
- To facilitate the division correct, the EV and PV must be cast to be decimal and rounded off
- The information is filtered for the release types (Sprint", "Phase", "Minor Release")
- The information is filtered for "In Progress" releases for the current only where the EVM matters
- The information also excludes where there is not a valid data for PV or EV
Guidelines
- This approach does not require any custom property added
- This approach depends on tasks being properly estimated and actuals being entered
The Output
Here is the output that can be part of the custom component of a custom report