The 14 DCMA checks, counted the way DCMA counts them: checks 1–10 on incomplete work, and relationships only where the successor is still open. Each check shows its threshold, its result, a gauge against the limit and the activities behind it.


What it gives you
Every failed check opens to the activities that failed it, with a CSV of the full list.
Counted on incomplete work by default, so finished history doesn't flatter or punish the plan that's left.
Thresholds, the hard-constraint list and which checks count towards the score are all adjustable.
Counted the way DCMA counts
- Checks 1–10 measure incomplete activities; level-of-effort and WBS summary rows are excluded.
- Relationships count when their successor is still open. A link into finished work no longer drives anything.
- Lags count any positive lag. Invalid dates use P6's early dates, never the planned ones.
- CPLI takes its float from the activity that finishes the project, and says when it had to fall back because the file wasn't rescheduled.
A critical path test that proves something
Check 12 adds 600 working days to the longest activity on the recomputed critical path. A sound network pushes the finish by the same amount. If the finish moves less, the path is broken, and the check says where the delay was absorbed.
Your standard, not just ours
- Switch the counting basis to every activity, for comparison with tools that count that way.
- Choose the DCMA hard-constraint list or Mandatory Start and Finish only.
- Change any threshold, or leave a check out of the score. It still shows, marked off.
| # | Check | Measures | Default threshold | Demo result |
|---|---|---|---|---|
| 1 | Logic | Incomplete activities missing a predecessor and/or a successor | ≤ 5% of incomplete activities | Pass0.28% (1 of 362) |
| 2 | Leads (negative lag) | Relationships into incomplete work with negative lag | 0 leads | Fail3 of 638 relationships into incomplete work |
| 3 | Lags | Relationships with any positive lag | ≤ 5% of relationships into incomplete work with any positive lag | Pass3.29% (21 of 638) |
| 4 | Relationship types | Share of Finish-to-Start among counted relationships | ≥ 90% Finish-to-Start | Pass94.2% FS (601 of 638) |
| 5 | Hard constraints | Mandatory, Start/Finish On, and Start/Finish On or Before | ≤ 5% of incomplete activities | Pass1.66% (6 of 362) |
| 6 | High float | Incomplete activities with total float over 44 days | ≤ 5% with float > 44d | Pass1.66% (6 of 362) |
| 7 | Negative float | Incomplete activities with total float below zero | 0 activities | Fail153 of 362 incomplete activities |
| 8 | High duration | Incomplete activities with original duration over 44 days | ≤ 5% longer than 44d | Pass0.55% (2 of 362) |
| 9 | Invalid dates | Actuals after the data date; forecasts before it | 0 activities | Pass0 of 362 |
| 10 | Resources / cost loading | Activities with no resource or cost | 0 unloaded activities | Fail0.28% (1 of 351) |
| 11 | Missed activities | Work due by the data date that is open or finished late | ≤ 5% of due activities | Fail60.0% (42 of 70 due) |
| 12 | Critical path test | 600 days added to the longest critical activity must reach the finish | finish moves by the full 600d | Passfinish moved 601d of 600d injected |
| 13 | Critical Path Length Index (CPLI) | (critical path length + float) ÷ critical path length | ≥ 0.95 | FailCPLI = 0.937 |
| 14 | Baseline Execution Index (BEI) | Activities completed ÷ activities planned complete | ≥ 0.95 | FailBEI = 0.900 |
Check your next update before anyone else does.
Fourteen days free. Export an XER from P6 and see what it says.