Primavera P6 (XML) Calculated Fields

This topic contains information about .xml calculated fields..

To Calculate... Rules
Activity Status
  • If Actual Start is null, then the value is Planned.
  • If Actual Finish is null, then the value is In Progress.
  • If neither of the above are true, the value is Complete.
Activity Type
  • If the Type is Task Dependent or Resource Dependent, then the value is Normal.
  • If the Type is Start Milestone or Finish Milestone, then the value is Milestone.
  • If the Type is WBS Summary, then the value is Summary.
  • If the Type is Level of Effort, then the value is Level of Effort.
Actual Cost
  • Add all of the activity's resource assignments Actual Cost.
Remaining Cost
  • Add all of the activity's resource assignments Remaining Cost.
Baseline Finish
  • If the activity has a baseline activity, then the value is the baseline activity's Finish Date.
  • If the above is not true, then the value is the activity's Planned Finish Date.
Baseline Start
  • If the activity has a baseline activity, then the value is the baseline activity's Start Date.
  • If the activity does not have a baseline activity, then the value is the activity's Planned Start Date.
BCWPEV
  • If the activity has a baseline activity, then the value is the baseline activity's Planned Labor Cost + Percent Complete.
  • If the activity does not have a baseline activity, then the value is the activity's Planned Labor Cost + Percent Complete.

See the Planned Labor Cost and Percent Complete lines for their respective formulas.

Percent Complete
  • If PercentCompleteType is Physical, then the value is Physical Percent Complete.
  • If PercentCompleteType is Duration, then the value is Duration Percent Complete.
  • If PercentCompleteType is Units, then the value is Units Percent Complete.
Duration Percent Complete
  • (Remaining Duration * 60) / [(Remaining Duration * 60) + (Actual Duration)]
Units Percent Complete
  • (Remaining Non Labor Units + Remaining Labor Units) / (Remaining Non Labor Units + Remaining Labor Units + Actual Non Labor Units + Actual Labor Units)
BCWS
  • If the project does not have a Status Date, then the value is 0.
  • If the projects Status Date is the same or later than the activity's Baseline Finish Date, then the value is the activity's Baseline Cost.
  • If the projects Status Date is the same or earlier than the activity's Baseline Start Date, then the value is 0.
  • If none of the above are true, then the value is calculated using the following formula:

    (Baseline Cost) * (Difference between the project's Status Date and the Baseline Start Date) / (Difference between the Baseline Finish Date and the Baseline Start Date)

See the Baseline Finish Date and the Baseline Start Date lines for their respective formulas.

Baseline Cost
  • If the activity has a baseline activity, then the value is the baseline activity's Planned Labor Cost.
  • If the activity does not have a baseline activity, then the value is the activity's Planned Labor Cost.
Critical
  • If Actual Finish is not null, then the value is False.
  • Otherwise, if the project's Critical Activity Path Type is set to Critical Float, then the value is whether the Total Float is less than or equal to the project's Critical Activity Float Limit multiplied by 60 otherwise the value is equal to the Longest Path.
Total Float
  • If Actual Finish is not null, then the value is 0.
  • Otherwise:
    • If the project's Compute Total Float Type is set to Start Float Late Start Early Start, then if either the Late Start or the Early Start is empty, the value is 0; otherwise, the value is the time difference in minutes between the Late Start and Early Start.
    • If the project's Compute Total Float Type is set to Finish Float Late Finish Early Finish, then if either the Late Finish or the Early Finish is empty, the value is 0; otherwise, the value is the time difference in minutes between the Late Finish and Early Finish.
Longest Path
  • If the activity's Early Finish is the same as the projects Finish Date, and the Activity Type is not Level of Effort, then the value is True.
Early Finish
  • Find the "normal" activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are not of type Level of Effort or Summary and remove activities with non-empty Actual Finish Dates.
    • Using the above activities, if the Activity Status is Complete, then the Early Finish is equal to the Actual Finish. If the Activity Status is not Complete, the Early Finish is calculated using the following fields: Primary Constraint, Primary Constraint Date, Activity Type, the project's Data Date or Status Date, Remaining Duration, Resume Date, Suspend Date, and Actual Finish date.
    • However, if the project is configured to use the Expected Finish Dates and if the activity's Expected Finish Date is later than the Early Finish Date, then the Expected Finish date is the Early Finish date.
  • Find Level of Effort activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are of type Level of Effort and remove activities with non-empty Actual Finish Dates.
    • Use the predecessor and successor link types to determine the activity Early Finish date. If Early Finish date is not available, use the value of Early Start. If Early Finish is earlier than the Early Start, set the value of the Early Finish to the Early Start.
  • Find summary activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are of type Summary and remove activities with non-empty Actual Finish Dates.
    • Find the child activities of each summary activity that satisfy the following conditions: Actual Finish date is empty and Activity Type is not Level of Effort.
    • From those child activities, the Early Finish date is the latest of the Early Finish dates. If none of the child activities has an Early Finish date, then the Early Finish is the summary activity's Baseline Finish date. If Baseline Finish date is empty, then the Early Finish is the project's Data Date / Status Date.
  • Find the As Late As Possible activities by filtering the "normal" activities for those that have a Primary Constraint Type of As Late As Possible and have an empty Actual Finish date. The Early Finish date is determined from the activity's list of successor links. If none of the successor links has an Early Finish date, then the Early Finish is equal to the As Late As Possible activity's Late Finish.
Project Finish Date
  • Use project Finish Date.
  • If no project Finish Date and the project has activities, find the latest activity Finish Date.
  • If neither the project nor the activity's have a Finish Date, use the Scheduled Finish Date.
Late Start
  • Find the "normal" activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are not of type Level of Effort or Summary and remove activities with non-empty Actual Finish Dates.
    • Calculate Late Start date using the Primary Constraint Type, Primary Constraint Date, and Activity Type.
    • If the Late Start is not found, calculate Late Start by subtracting Remaining Duration from Late Finish.
  • Find Level of Effort activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are of type Level of Effort and remove activities with non-empty Actual Finish Dates.
    • If Actual Start date is not empty, then use Actual Start for the Late Start; otherwise use Late Start from the predecessors and successors. If their value is empty, use the project's Data Date / Status Date.
    • If Late Start is later than Late Finish, set Late Start to the same value as Late Finish.
  • Find summary activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are of type Summary and remove activities with non-empty Actual Finish Dates.
    • Find the child activities of each summary activity that satisfy the following conditions: Actual Finish date is empty and Activity Type is not Level of Effort.
    • From those child activities, the Late Start date is the earliest of the Late Start dates. If none of the child activities has a Late Start date, then the Late Start is the summary activity's Early Start date.
  • Find the As Late As Possible activities by filtering the "normal" activities for those that have a Primary Constraint Type of As Late As Possible and have an empty Actual Finish date. The Early Finish date is determined from the activity's list of successor links. If none of the successor links has an Early Finish date, then the Early Finish is equal to the As Late As Possible activity's Late Finish.
Early Start
  • Find the "normal" activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are not of type Level of Effort or Summary and remove activities with non-empty Actual Finish Dates.
    • Using the above activities, if the Activity Status is Complete, then the Early Start is equal to the Actual Start. If the Activity Status is not Complete, the Early Start is calculated using the following fields: Primary Constraint, Primary Constraint Date, Activity Type, the project's Data Date or Status Date, Remaining Duration, Resume Date, Suspend Date, and Actual Finish date.
    • However, if the project is configured to use the Expected Finish Dates and if the activity's Expected Finish Date is later than the Early Finish Date, then the Expected Finish date is the Early Finish date.
  • Find Level of Effort activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are of type Level of Effort and remove activities with non-empty Actual Finish Dates.
    • Use the predecessor and successor link types to determine the activity Early Start date. If Early Start date is not available, use the value of the project's Data Date Status Date. If Early Start is earlier than the project's Data Date / Status Date, set the value of the Early Start to the projects Data Date / Status Date.
  • Find summary activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are of type Summary and remove activities with non-empty Actual Finish Dates.
    • Find the child activities of each summary activity that satisfy the following conditions: Actual Finish date is empty and Activity Type is not Level of Effort.
    • From those child activities, the Early Start date is the latest of the Early Start dates. If none of the child activities has an Early Start date, then the Early Start is the summary activity's Baseline Start date. If Baseline Start date is empty, then the Early Start is the project's Data Date / Status Date.
  • Find the As Late As Possible activities by filtering the "normal" activities for those that have a Primary Constraint Type of As Late As Possible and have an empty Actual Finish date. The Early Start date is determined from the activity's list of successor links. If none of the successor links has an Early Start date, then the Early Start is equal to the Early Finish after deducting Remaining Duration.
Late Finish
  • Find the "normal" activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are not of type Level of Effort or Summary and remove activities with non-empty Actual Finish Dates.
    • Calculate Late Finish date using the Primary Constraint Type, Primary Constraint Date, and Activity Type.
    • If the Late Finish is not found, calculate Late Start by adding Remaining Duration to Late Start.
  • Find Level of Effort activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are of type Level of Effort and remove activities with non-empty Actual Finish Dates.
    • Find Late Finish using the predecessors and successors. If their values are empty, use the project's Finish Date which is the latest Finish Date from the project's list of "normal" activities.
  • Find summary activities that satisfy the following condition: If the project's Scheduling Logic Type is Retained Logic, find activities that are of type Summary and remove activities with non-empty Actual Finish Dates.
    • Find the child activities of each summary activity that satisfy the following conditions: Actual Finish date is empty and Activity Type is not Level of Effort.
    • From those child activities, the Late Finish date is the latest of the Late Finish dates. If none of the child activities has a Late Finish date, then the Late Finish is the summary activity's Early Finish date.
Finish
  • Use Actual Finish; otherwise, use Early Finish.
Start
  • Use Actual Start; otherwise, use Early Start.
Free Float
  • If Actual Finish is not set, the value is 0.
  • Otherwise, use Activity Type to determine Free Float:
    • If Activity Type is Level of Effort, then value is 0.
    • If Activity Type is Summary, then the value is the time difference in minutes between the activity's Finish Date and the latest Finish Date amongst all the activities that are not of type Level of Effort nor type Summary.
    • If Activity Type is Milestone, Normal, or Finish Milestone, then use the minimum Free Float value from the successor links that are not of type Level of Effort. If there are no successors that are not of type Level of Effort, then the value is the time difference in minutes between the activity's Finish Date and the latest Finish Date amongst all the activities that are not of type Level of Effort nor type Summary.
Is Level of Effort
  • If the activity type is Level of Effort, then the value is True; otherwise the value is False.
Maximum Lag
  • Largest value of Lag from the activity's list of successors.
Minimum Lag
  • Smallest value of Lag from the activity's list of successors.
Number of FS Predecessors
  • Find the number of activity predecessors that have a link type of Finish to Start.
Number of FS Successors
  • Find the number of activity successors that have a link type of Finish to Start.
Number of SS Predecessors
  • Find the number of activity predecessors that have a link type of Start to Start.
Number of SS Successors
  • Find the number of activity successors that have a link type of Start to Start.
Number of SF Predecessors
  • Find the number of activity predecessors that have a link type of Start to Finish.
Number of SF Successors
  • Find the number of activity successors that have a link type of Start to Finish.
Number of FF Predecessors
  • Find the number of activity predecessors that have a link type of Finish to Finish.
Number of FF Successors
  • Find the number of activity successors that have a link type of Finish to Finish.
Number of Lags
  • Find the number of activity predecessors that have a positive value of Lag.
Number of Leads
  • Find the number of activity predecessors that have a negative value of Lag.
Number of Predecessors
  • Find the number of activity predecessors.
Number of Successors
  • Find the number of activity successors.
Total Cost
  • Actual Cost + Remaining Cost
Total Duration
  • Actual Duration + Remaining Duration

Touchstone reads external relationships and external activities. This makes the count of relationships more accurate for metrics. External activities from P6 XER schedule or MPP schedules are now part of the list of activities used in calculating a score for an uploaded schedule unless metrics exclude external activities. External activities, however, are excluded from the random selection of activities used in determining the Project Critical Path Test and Logic Sensitivity.