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.
IIF(EntityState.isInitial, 0, IIF(EntityState.Name = 'In Progress', 0.8, 1))
IIF(CustomValues.Text("Fix Delivered") = 'Prod', 1, IIF(CustomValues.Text("Fix Delivered") = 'Sandbox', 0.75, IIF(CustomValues.Text("Fix Delivered") = 'Staging', 0.4, 0)))
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)
Calculate the Progress of Features based on the number of completed User Stories
IIF(UserStories.Count>0,UserStories.Count(EntityState.isFinal) / UserStories.Count(),0)
// 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))
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
Updated about 2 years ago