Custom Progress Metrics
Supported Targetprocess version is 3.13.10.
Default Targetprocess logic for progress calculation is quite complex. It takes into account Role Efforts, Time Spent, Time Remain, child entities. Check the detailed article on progress calculation. These complications are not always necessary. Sometimes, there is a need to measure progress differently.
Starting with the Targetprocess version 3.13.10, custom progress metrics are available.
A new Progress Metric can be created at Settings > Metrics > Add > Custom Formula. Select Progress as a Target Field.
The progress of an entity can be based on the Time Spent and Effort, on the selected State, on the custom field values of the entity itself or its children, or any other field.
Progress formula should produce a value between 0 and 1. Values outside of that range will be ignored.
Below you will find several examples of progress calculation.
Progress based on Entity State
IIF(EntityState.isInitial, 0, IIF(EntityState.Name = 'In Progress', 0.8, 1))
Progress based on Custom Field value
IIF(CustomValues.Text("Fix Delivered") = 'Prod', 1,
IIF(CustomValues.Text("Fix Delivered") = 'Sandbox', 0.75,
IIF(CustomValues.Text("Fix Delivered") = 'Staging', 0.4, 0)))
Cumulative Progress based on Checkbox Custom Fields
IIF(CustomValues.Boolean("Idea Accepted") = true, 0.1, 0) +
IIF(CustomValues.Boolean("In Development") = true, 0.3, 0) +
IIF(CustomValues.Boolean("Released") = true, 0.4, 0) +
IIF(CustomValues.Boolean("Promoted") = true, 0.2, 0)
Progress based on the number of completed children
Calculate the Progress of Features based on the number of completed User Stories
IIF(UserStories.Count>0,UserStories.Count(EntityState.isFinal) / UserStories.Count(),0)
Progress based on Time Spent and Effort
// Formula that ignores entity state. Even if an entity is in the final state, the progress may be less than 100%
IIF(TimeSpent > Effort, 1, IIF(Effort>0, TimeSpent/Effort, 0))
// Formula that considers the final state as 100% progress
IIF(TimeSpent > Effort or EntityState.isFinal, 1, IIF(Effort>0,TimeSpent / Effort, 0))
Progress based on the value in Drop Down Custom Field
Given a drop down custom field has the list of values: 0%, 10%, 20%, ..., 100%
Convert.toint32(CustomValues.Text("Manual Progress").Substring(0,CustomValues.Text("Manual Progress").IndexOf("%")))/100
Progress for Feature that includes both User Stories and Bugs
IIF(EntityState.IsFinal=true,1,IIF(Effort+Bugs.Sum(Effort)>0,(EffortCompleted+Bugs.Sum(EffortCompleted))/(Effort+Bugs.Sum(Effort)),0))
Updated about 3 years ago