Constraint Checks
Category weight: 10% of overall score
Checks in this category: 4
Constraint checks verify that constraints are used appropriately and that every activity is connected to the schedule network. Over-constrained schedules cannot respond naturally to changes, while disconnected activities produce unreliable float and critical path calculations.
Constraint Percentage
| Field | Value |
|---|---|
| Check ID | constraint-percent |
| DCMA Reference | Point 6 |
| Default Threshold | Maximum 2 hard constraints (project start and finish milestones only) |
| Severity | Major |
Verifies that only the project's start and finish milestones carry hard constraints. Every additional hard constraint reduces the scheduling engine's ability to calculate dates based on logic.
What triggers a finding: More than the allowed number of activities have hard constraint types (Mandatory Start, Mandatory Finish, Must Start On).
Best practice: Use As Late As Possible (ALAP), Start Not Earlier Than (SNET), or Finish Not Later Than (FNLT) instead.
Dangling Activities
| Field | Value |
|---|---|
| Check ID | dangling-activities |
| DCMA Reference | Point 2 |
| Default Threshold | No isolated activities |
| Severity | Critical |
Detects activities that are completely disconnected from the schedule network — they have no predecessors AND no successors. These activities float freely and cannot contribute to or be influenced by the critical path.
What triggers a finding: An activity with zero predecessors and zero successors.
Why it matters: Dangling activities produce artificially high float values and are invisible to the critical path algorithm. They will never become critical regardless of how late they run.
Open Ended
| Field | Value |
|---|---|
| Check ID | open-ended |
| DCMA Reference | Point 2 |
| Default Threshold | No open starts or open finishes |
| Severity | Major |
Detects activities that are missing either predecessors (open starts) or successors (open finishes). Unlike the Dangling check, this flags any activity that is partially connected.
What triggers a finding: An activity with no predecessors (open start) or no successors (open finish).
Why it matters:
- Open starts can begin on the project start date regardless of other work.
- Open finishes do not drive the project end date, even if they slip.
Start-Finish Relationships
| Field | Value |
|---|---|
| Check ID | start-finish-relationships |
| DCMA Reference | — |
| Default Threshold | No SF relationships |
| Severity | Minor |
Detects Start-to-Finish (SF) relationships, which are the least common and most confusing of the four relationship types. In an SF relationship, the successor cannot finish until the predecessor starts — a logic pattern that is rarely appropriate and often indicates a modelling error.
What triggers a finding: Any relationship with type SF.
Best practice: Replace SF relationships with FS or SS relationships that model the actual work dependency more clearly.
Next Steps
- Critical Path Checks — Verify critical path integrity
- Logic Checks — Validate schedule logic and relationships
- Quality Settings — Adjust constraint thresholds