Steelray Project Analyzer - Criteria Library Reference
Getting Started
SPA provides a library of built-in criteria that you can use to analyze and score project schedules. This reference guide explains how each criterion is calculated.
For each criterion, the following information is included:
- criteria name
- rationale (why does SPA check for the condition?)
- calculation formula
Utility Formulas
The following utility formulas are used in other formulas.
- Actual Finish Before Actual Start Tasks
- Actual Start/Finish Dates in the Future
- Constrained Tasks
- Effort Tasks
- Incomplete Critical Tasks
- Incomplete Tasks
- Missing Baseline Tasks
- Milestone Tasks
- Missing Predecessor Tasks
- Missing Successor Tasks
- Missing WBS Tasks
- No Assigned Resource Tasks
- Non FS Predecessor Tasks
- Summary Tasks
- Summary With Predecessor Tasks
- Summary With Successor Tasks
- Summary With Resource Tasks
- Summaries With Resources
Actual Finish Before Actual Start Tasks
Task.Summary is No
and
Task.Milestone is No
and
Task.ActualFinish is set
and
Task.ActualStart is set
and
Task.ActualFinish is before Task.ActualStart
Constrained Tasks
Task.Summary is No
and
Task.ConstraintType is Not ASAP
and
Task.ActualFinish is not set
Effort Tasks
not a Summary Task
and
Task.Duration > 0
Incomplete Critical Tasks
Task.Critical is Yes
and
Task.ActualFinish is not set
and
Task.Summary is No
and
Task.Milestone is No
Incomplete Tasks
Task.Summary is No
and
Task.Milestone is No
and
Task.ActualFinish is not set
Missing Baseline Tasks
Task.Summary is No
and
Task.ActualFinish is not set
and
Task.BaselineFinish is not set
or
Task.BaselineStart is not set
Milestone Tasks
not a Summary Task
and
Task.Duration Is 0
Missing Predecessor Tasks
Task.Predecessors is not set
and
Task.ActualFinish is not set
and
Task.Summary is No
Missing Successor Tasks
Task.Successors is not set
and
Task.ActualFinish is not set
and
Task.Summary is No
Missing WBS Tasks
Task.Summary is No
and
Task.WBS is not set
No Assigned Resource Tasks
Task.Summary is No
and
Task.Milestone is No
and
Task.Resources is not set
and
Task.ActualFinish is not set
Non FS Predecessor Tasks
Task.Predecessors Has FF
or
Task.Predecessors Has SS
or
Task.Predecessors Has SF
Summary Tasks
task.Summary is Yes.
Summary With Predecessor Tasks
Task.Predecessors is set
and
Task.Summary is Yes
Summary With Successor Tasks
Task.Successors is set
and
Task.Summary is Yes
Summary With Resource Tasks
Task.Summary is Yes
and
Task.Resources is set
and
Task.ActualFinish is not set
Criteria Library Formulas
The following formulas show how the Criteria scores are calculated.
- Baseline Execution Index
- Baseline Vertical Schedule Integration Error
- Cost Performance Index
- Dangling Activities
- Delinquent Tasks
- Duration < 5d
- Duration > 20d
- Effort Tasks
- Summary Tasks
- Milestones
- Out of Sequence Tasks
- Incomplete Tasks
- Incomplete Critical Tasks
- Missing Successors
- Missing Predecessors
- Performance Index
- Project Has Status Date
- Schedule Performance Index
- Should Start Tasks
- Summary Tasks With Successors
- Summary Tasks With Predecessors
- Predecessors Complete, Task Not Started
- Tasks with Constrained Dates
- Tasks without Baseline Finish
- Tasks without Assigned Resources
- Tasks with Total Slack < -20d
- Tasks with Total Slack > 30d
- Tasks with Total Slack > 200d
- Tasks with Total Slack < -200d
- Tasks Without Finish-to-Start Predecessors
- Tasks with Missing WBS
Effort Tasks
Rationale
The schedule should be primarily made up of discrete tasks that have work associated with them. Summaries and Milestones are needed for reporting and program tracking but should not be the majority of the line items.
Calculation
Total Effort Tasks / Total Tasks
Summary Tasks
Rationale
The schedule should be primarily made up of discrete tasks that have work associated with them. Summaries are needed for reporting and program tracking but should not be the majority of the line items.
Calculation
Total Summary Tasks / Total Tasks
Milestones
Rationale
The schedule should be primarily made up of discrete tasks that have work associated with them. Summaries and Milestones are needed for reporting and program tracking but should not be the majority of the line items.
Calculation
Total Milestone Tasks / Total Tasks
Incomplete Tasks
Rationale
The closer a project is to completion, the less we are able to influence its final financial and schedule outcome without a significant intervention.
Calculation
Total Incomplete Tasks / Total Effort Tasks
Incomplete Critical Tasks
Rationale
The Critical Path is one of the most important areas of the program schedule. It is usually the most difficult, time-consuming, and technically challenging portion of the schedule. It should represent a small portion of the overall program schedule.
This score measures the percent of all incomplete tasks that are critical.
Calculation
Total Incomplete Critical Tasks / Total Incomplete Tasks
Missing Successors
Rationale
Almost every task should have a successor, with a few exceptions like the end of project milestone.
The question to ask is: 'If the output of the task’s effort does not go to anyone else, why are we doing the work?'
Calculation
Total Missing Successor Tasks / Total non-Summary Tasks tasks without an
Actual Finish
Missing Predecessors
Rationale
All tasks should have a predecessor, with a few exceptions like starting milestones.
Calculation
Total Missing Predecessor Tasks / Total non-Summary Tasks tasks without an
Actual Finish
Summary Tasks With Successors
Rationale
Summary tasks should not have predecessors or successors. Many scheduling software applications have difficulty calculating dates and critical paths when summary tasks and detail tasks are linked.
Calculation
Total Summary With Successor Tasks /
Total Summary Tasks
Summary Tasks With Predecessors
Rationale
Summary tasks should not have predecessors or successors. Many scheduling software applications have difficulty calculating dates and critical paths when summary tasks and detail tasks are linked.
Calculation
Total Summary With Predecessor Tasks
/ Total Tasks
Duration < 5d
Rationale
Task durations should generally be between 5 and 20 working days.
Too much detail can make the schedule unreadable, unmaintainable, and ultimately unusable as a management tool. Too little detail can make the schedule little more than window dressing. Sufficient detail must exist to clearly identify all the key deliverables and must contain enough information to know what state the project is in at any given point in time.
Industry consensus is that near term tasks should be a week to a month in length. When less than a week, you will spend more time maintaining and updating the schedule than is practical. When more than a month, you will not be able to get an accurate estimate of progress and forecasted completion dates. Since already completed tasks cannot be addressed, they are not counted.
Calculation
D5d Task = Task.Duration < 5d and Task.Milestone is No and Task.Summary is No and Task.ActualFinish Is Not Set
Total D5d Tasks / Total Incomplete Tasks
Duration > 20d
Rationale
Task durations should generally be between 5 and 20 working days.
Too much detail can make the schedule unreadable, unmaintainable, and ultimately unusable as a management tool. Too little detail can make the schedule little more than window dressing. Sufficient detail must exist to clearly identify all the key deliverables and must contain enough information to know what state the project is in at any given point in time.
Industry consensus is that near term tasks should be a week to a month in length. When less than a week, you will spend more time maintaining and updating the schedule than is practical. When more than a month, you will not be able to get an accurate estimate of progress and forecasted completion dates. Since already completed tasks cannot be addressed, they are not counted.
Calculation
D20d Task = Task.Duration > 20d and Task.Milestone is No and Task.Summary is No and Task.ActualFinish Is Not
Set
Total D20d Tasks / Total Incomplete Tasks
Predecessors Complete, Task Not Started
Rationale
Schedule progress should drive the end dates of the program. Not scheduling forward or leaving incomplete work in the past does not allow for a true picture of the project status and projected end date.
Calculation
Task Not Started Tasks =
Task contains predecessor which are complete, but the task has not started.
Total ShouldStart Tasks / Total Non Summary Tasks
Tasks with Constrained Dates
Rationale
Tasks should rarely be artificially tied to dates. Durations and/or Resources combined with schedule logic and work day calendars should determine schedule dates. If a significant number of constrained dates are used, the schedule may not calculate the critical path and near critical paths correctly.
Calculation
Total Constrained Tasks / Total Non Summary Tasks Tasks without an Actual
Finish
Tasks without Baseline Finish
Rationale
Baseline dates for tasks and milestones should be established in the project schedule early in the program. For large projects involving a customer, the contract may require this to be done in 60 to 90 days after the start date and prior to a formal review.
Calculation
Total Missing Baseline Tasks / Total Non Summary Tasks Tasks without an
Actual Finish
Tasks without Assigned Resources
Rationale
A resource loaded project schedule should have resources assigned to all discrete tasks and should not have resources assigned to summary tasks. Resource planning requires that all discrete tasks be resource loaded in order to analyze and identify resource constraints or overloaded resources.
Calculation
Total No Assigned Resource Tasks / Total Incomplete Tasks
Tasks with Total Slack < -20d
Rationale
All schedules should have a reasonably small amount of slack or float. Large positive or negative slack values may indicate a poorly constructed schedule. Large negative slack indicates a logic error or a program that is no longer on track to meet its commitment dates. Large positive slack may indicate poor or missing logic.
Calculation
TS-20 Task =
Task.Summary = No
and
Task.Milestone = No
and
Task.ActualFinish is not set
and
Task.TotalSlack < -20d
Total TS-20 Tasks / Total Incomplete Tasks
Tasks with Total Slack > 30d
Rationale
All schedules should have a reasonably small amount of slack or float. Large positive or negative slack values may indicate a poorly constructed schedule. Large negative slack indicates a logic error or a program that is no longer on track to meet its commitment dates. Large positive slack may indicate poor or missing logic.
Calculation
TS30 Task =
Task.Summary = No
and
Task.Milestone = No
and
Task.ActualFinish is not set
and
Task.TotalSlack > 30d
Total TS30 Tasks / Total Incomplete Tasks
Tasks with Total Slack > 200d
Rationale
All schedules should have a reasonably small amount of slack or float. Large positive or negative slack values may indicate a poorly constructed schedule. Large negative slack indicates a logic error or a program that is no longer on track to meet its commitment dates. Large positive slack may indicate poor or missing logic.
Calculation
TS200 Task =
Task.Summary = No
and
Task.Milestone = No
and
Task.ActualFinish is not set
and
Task.TotalSlack > 200d
Total TS200 Tasks / Total Incomplete Tasks
Tasks with Total Slack < -200d
Rationale
Most projects fall behind schedule during their normal execution. However, a project should not operate for a significant period of time with large negative slack. Recovery plans or workarounds should be identified and implemented. If none are feasible, a new plan should be drafted to an agreed-upon completion date.
Calculation
TS-200 Task =
Task.Summary = No
and
Task.Milestone = No
and
Task.ActualFinish is not set
and
Task.TotalSlack < -200d
Total TS-200 Tasks / Total Incomplete Tasks
Tasks Without Finish-to-Start Predecessors
Rationale
The majority of the task dependencies should be Finish-to-Start. Since most of the tasks represent work that will have a start and an end date resulting in some product or document that is needed by someone else, the work is performed in some sequence most of the time. If the majority of the tasks require parallel linkages the tasks may be at too high a level.
Calculation
Total Non FS Predecessor Tasks / Incomplete Effort Tasks
Tasks
Tasks with Missing WBS
Rationale
All tasks should have a Work Breakdown Structure (WBS) identifier assigned. The WBS is the key to cost schedule integration. A missing WBS identifier gives the appearance of work being done that is not within the budget or scope of the program.
Calculation
Total Missing WBS Tasks / Total
Tasks
Actual Start/Finish Dates in the Future
Rationale
Actual dates must reflect when a task started and or completed. They should not be auto-generated and should not exist in the future. An actual finish date cannot be earlier than the actual start date for a task.
Calculation
CurrentDate = Status Date (or, if no status date) Today
FutureTask =
Task.Summary is No
AND
Task.ActualFinish > CurrentDate
or
Task.ActualStart > CurrentDate
Total FutureTasks / Non Summary Tasks
Actual Finish Before Actual Start
Rationale
An actual finish date should never be before an actual start date.
Calculation
Total Actual Finish Before Actual Start Tasks / Total Effort Tasks
Summaries With Resources
Rationale
As a general rule, summary tasks should not have resources assigned to them. They are strictly an outlining or rolling up feature and should not drive schedule dates or resource loading.
There may be instances when it is acceptable to assign resources to summary tasks instead of detail tasks. This is acceptable as long as resources are not loaded at both levels where they would be double counted.
Calculation
Total Summary With Resource Tasks / Total Effort Tasks
Baseline Execution Index
Rationale
A measurement used to indicate the efficiency of actual work that has been completed measured against the baseline.
Calculation
By the status date (or if no status date than by today):
Tasks that have actually finished: Actual finish date is not
"NA" (or % complete = 100) Tasks that should have finished:
Actual finish date on or before the status date. Tasks that
have actually finished / Tasks that should have finished 1.0
is perfectly on track. < 1.0 worse > 1.0 better Above .95:
green .90 to .85: yellow Under .85: red
Performance Index
Rationale
This criteria can be used to calculate both the schedule performance index or the cost performance index based on the fields selected as inputs. For the schedule performance index, this measures the target efficiency ratio. For example, if the deliverable is scheduled to cost $50,000 and $25,000 of work has been accomplished, the SPI would be 0.50.
Calculation
Budgeted Cost for Work Performed (BCWP) / Budgeted Cost for Work for Scheduled (BCWS)
Greater than 1.0 is favorable. Less than 1.0 is unfavorable.
Cost Performance Index
Calculation
Budgeted Cost for Work Performed (BCWP) / Actual Cost for Work for Performed (ACWP)
Greater than 1.0 is favorable. Less than 1.0 is unfavorable.
Schedule Performance Index
Calculation
Budgeted Cost for Work Performed (BCWP) / Budgeted Cost for Work for Scheduled (BCWS)
Greater than 1.0 is favorable. Less than 1.0 is unfavorable.
Baseline Vertical Schedule Integration Error
Rationale
This criteria looks at each summary tasks and makes sure that the next level tasks all roll up. It compares the baseline start and finish dates of the summary tasks to those of the lower level details tasks.
At least one of the lower level detail tasks must have a start date that equals the start of the summary task and that at least one of the lower level detail tasks must have a finish date that equals the end date shown on the summary task. The Summary task start date should always be the earliest date represented and the summary task end date should always be the latest date represented.
Calculation
Each child task is analyzed. All children must start in or after the parent task and must end on or before the parent's baseline.
Delinquent Tasks
Rationale
Used to identify tasks that should have started but have not.
Calculation
Evaluates all non-summary tasks for the following:
- Start Date <= Project Status Date AND Actual Start Date is not set.
- OR
- Finish <= Project Status Date AND Actual Finish Date is not set.
Out of Sequence Tasks
Rationale
Used to identify tasks that have begun when their predecessors or successors are not 100% complete.
Calculation
Each task's dependency is analyzed. The Actual start and finish dates are read. The first step is to determine whether or not the predecessors and successors are complete and also if they have started. The determination is made depending on the task's relationship:
Relationship | Out of Sequence Determination |
Finish-to-Finish | Successor Complete and predecessor not complete |
Finish-to-Start | Predecessor not complete and successor started |
Start-to-Finish | Successor complete and predecessor not started |
Start-to-Start | Successor started and predecessor not started |
Dangling Activities
Rationale
Discovers tasks that are missing links to its start or finish points. These tasks can change duration without a detectable impact to the schedule.
Calculation
Incomplete Effort Task = Task.Summary is No and Task.Milestone is No and Actual Finish is not set Dangling Task = Incomplete Effort Task and Task.Predecessors are not Start-to-Start or Finish-to-Start or Task.successors are not Finish-to-Finish or Finish-to-Start Score = Dangling Tasks / Incomplete Effort Tasks
Should Start Tasks
Rationale
This criteria (actually a statistic) looks at each non-summary task to determine if the start date has passed.
Calculation
Looks for non-summary tasks with a start date before the status date (or current date if there is no status date). For split tasks, it looks for a resume date in the past.
Project Has Status Date
Rationale
This criteria determines whether the project has a status date. When a project doesn't have a status date, you cannot know whether the status fields are current.
Calculation
If the project status date exists, a score of compliant is the result. Otherwise, a score of non-compliant is the result.