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 MeasureScheduleCost
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:

  1. If SV is zero or SPI is 1, the project is on schedule.
  2. If SV is negative or SPI < 1, the project is behind schedule.
  3. If SV is positive or SPI > 1, the project is ahead of schedule.
  4. If CV is zero or CPI is 1, the project is on budget.
  5. If CV is negative or CPI < 1, the project is over cost. 
  6. If CV is positive or CPI > 1, the project is below costs.

Summary Costs

The cost and budget management is a specific focus area of project management. Even Agile projects have costs associated with them in terms of the resources required. These resources are split into two major categories, namely the human resources (such as employees, consultants, contractors, etc.) and non-human resources (such as facilities, equipment, infrastructure, materials, supplies, etc.). 

In small-to-medium scale projects where cost is tracked by the project manager against an allocated budget, sometimes the cost may involve non-human resource cost alone. This information is aggregated by the project manager at the release level and not necessarily at the individual task level to avoid the unnecessary burden on project team level tracking. 

 

Need for Custom Properties

There are three custom properties that must be setup for managing costs. The data type should be decimal. 

  1. Non-Human Costs: These costs represent the total cost budgeted from multiple areas. This is the anticipated cost required for continuing with the project phase or release. For instance, a total of $600 may be projected as non-human costs as follows. 
    • Software License costs is projected to be $300
    • Meals and Incidental Expenses is projected to be $200
    • Supplies and other expenses is projected to be $100
  2. Blended Rate: Every company has an blended rate for a small-to-medium scale projects to make calculations simple for budgeting purposes.   For instance,
    • An email marketing campaign may have a Director of Marketing, Creative Designer, Front-End Developer, Back-End Developer, Campaign Manager, etc.
    • Some of these members may be contracted resources and others may be internal to the project and detailed resource management may be too involved for a small-to-medium scale project.
    • The finance department reviews these types of projects and comes up with a single blended rate for all the human resources used in this project for cost management purposes. 
    • It is possible that a business process does not track this blended rate. In such cases, this optional parameter can be dropped (see notes in the SQL Query explanation)
  3. Incurred Costs: These costs may represent a cumulative total of any actual costs incurred. For instance,
    • On day 5 of the project, a payment was made for 200 local currency units to get a license for the designer to create logos on a system. On Day 5, this field will be updated with 100.
    • On day 15 of the project, another 50 local currency units was paid for lunch expenses. At the end of Day 15, this field will be updated with 250 because this field represents a cumulative running total.

Set up of Custom Properties

The following screen shows the custom properties setup at the release level. In the following setup,

  1. CUST-05 represents the non-human resources,
  2. CUST-06 represents the blended rate, and
  3. CUST-07 represents the incurred costs.

IMPORTANT: It is expected that all these fields represents the same currency unit (Dollar, Rupee, etc.) throughout the project. If costs incurred have multiple currencies, convert them to the one currency against which comparisons will be made.

Spira Release Level EVM Cost Custom Properties

See below the data set up in the releases particularly for the custom properties referred. 

EVM Cost Data in Releases

 

SQL Query

select EVM.NAME, EVM.PLANNED_VALUE, EVM.EARNED_VALUE, EVM.ACTUAL_COSTS,
   EVM.EARNED_VALUE - EVM.PLANNED_VALUE as SCHEDULE_VARIANCE,
   Round( (EVM.EARNED_VALUE / EVM.PLANNED_VALUE),2) as SCHEDULE_PERFORMANCE_INDEX,
   EVM.EARNED_VALUE - EVM.ACTUAL_COSTS as COST_VARIANCE,
   Round( (EVM.EARNED_VALUE / EVM.ACTUAL_COSTS),2) as COST_PERFORMANCE_INDEX
from
(select R.NAME,
       Cast(R.CUST_05 as double) as NHCosts, Cast(R.CUST_06 as double) as BlendedRate, Cast(R.CUST_07 as double) as IncurredCosts,
        ((Cast(R.TASK_ESTIMATED_EFFORT as double) * Cast(R.CUST_06 as double)) + Cast(R.CUST_05 as double)) as PLANNED_VALUE, 
        ((Cast(R.TASK_PROJECTED_EFFORT as double) * Cast(R.CUST_06 as double)) + Cast(R.CUST_05 as double)) as EARNED_VALUE,
        ((Cast(R.TASK_PROJECTED_EFFORT as double) * Cast(R.CUST_06 as double)) + Cast(R.CUST_07 as double)) as ACTUAL_COSTS
from 
       SpiraTestEntities.R_Releases as R 
where 
       R.PROJECT_ID = ${ProjectId} and R.IS_DELETED = False and
       R.TASK_ESTIMATED_EFFORT IS NOT NULL and 
       R.TASK_PROJECTED_EFFORT IS NOT NULL and
       R.RELEASE_TYPE_NAME in {"Major Release", "Sprint", "Phase", "Minor Release"} and
       R.RELEASE_STATUS_NAME = "In Progress") as EVM

Explanation

  • PLANNED VALUE = (TASK_ESTIMATED_EFFORT * BLENDED RATE) + NON-HUMAN RESOURCES
    • NOTE: If you don't track Non-Human Resources, then, drop if off from EARNED VALUE calculation also
  • EARNED VALUE = ( TASK_PROJECTED_EFFORT * BLENDED RATE) + NON-HUMAN RESOURCES
    • NOTE: Incurred Costs are not part of the  EARNED_VALUE
  • ACTUAL COSTS = ( TASK_PROJECTED_EFFORT * BLENDED RATE) + INCURRED COSTS
    • NOTE: Actual Costs includes both the resource costs and the costs incurred.
  • NOTE: If your business process does not track the blended rate, then, the SQL query containing " * (Cast(R.CUST_05 as double) must be dropped in all the PV, EV, and AC computation.
  • The Schedule Variance (SV) is computed as a difference (EV - PV)
  • The Cost Variance (CV) is computed as  difference (EV - AC)
  • The Schedule Performance Index (SPI) is computed as a ratio (EV / PV)
  • The Cost Performance Index (CPI) is computed as a ration (EV / AC) 
  • To facilitate the division correct, the EV and PV must be cast to be decimal and rounded off to 2 digits
  • If more precision is required, update as necessary in the second parameter of Round function
  • 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 requires three custom properties as explained above
  • This approach depends on tasks being properly estimated and actuals being entered
  • This approach depends on the non-human costs and blended rate captured one time at the release level
  • This approach depends on the incurred costs being accumulated and tracked as noted

The Output

Here is the output that can be part of the custom component of a standard or custom report.  Depending upon what one may want to report (Variance or Index), this query can be modified and represented graphically on the reporting portal.

EVM Schedule and Cost Excel Output