Scheduling
What is the DCMA 14-point schedule assessment? All 14 checks in one table
The DCMA 14-point assessment is a set of fourteen health checks for a critical path schedule, covering logic, leads and lags, link types, constraints, float, durations, dates, resources and progress. Each check compares a count or ratio against a threshold, and a failing check tells you where the schedule is likely to give wrong dates.
What the DCMA 14-point assessment is
The assessment was developed by the US Defense Contract Management Agency (DCMA) to review contractors' integrated master schedules. It has since spread well beyond defence work, because the questions it asks apply to any schedule built with the critical path method: is the logic complete, are the dates driven by that logic, and does progress match the plan?
It is a screening tool, not a quality certificate. A schedule can pass all fourteen checks and still be unrealistic, and a failed check is a prompt to look closer, not proof that the plan is wrong. Its real value is speed: in a few minutes it points you at the activities most likely to distort the critical path and float. If float and the critical path are new to you, start with the critical path method guide.
Most checks count incomplete activities only (activities not yet finished), and many tools exclude milestones and summary rows. Thresholds are usually expressed as a percentage of that population.
The 14 checks and their usual thresholds
The thresholds below are the ones commonly used in practice. Some organisations and contracts set their own, so check what your client expects.
| # | Check | What it looks for | Usual threshold |
|---|---|---|---|
| 1 | Logic | Incomplete activities missing a predecessor, a successor or both | 5% or fewer |
| 2 | Leads | Links with a negative lag | 0 (none) |
| 3 | Lags | Links with a positive lag | 5% or fewer of links |
| 4 | Relationship types | Share of links that are finish-to-start | 90% or more FS |
| 5 | Hard constraints | Constraints that override logic, such as must start on or must finish on | 5% or fewer |
| 6 | High float | Total float above 44 working days | 5% or fewer |
| 7 | Negative float | Total float below zero | 0 (none) |
| 8 | High duration | Remaining duration above 44 working days | 5% or fewer |
| 9 | Invalid dates | Forecast dates before the data date, or actual dates after it | 0 (none) |
| 10 | Resources | Activities with duration but no resources or cost assigned | 0 (all loaded), where the schedule is meant to be resource or cost loaded |
| 11 | Missed tasks | Activities due by the data date (baseline finish) that finished late or not at all | 5% or fewer |
| 12 | Critical path test | Add a delay to a critical activity: does the project finish move by the same amount? | Pass or fail |
| 13 | Critical path length index (CPLI) | (remaining critical path length + total float to the end) / remaining critical path length | 0.95 or higher |
| 14 | Baseline execution index (BEI) | activities completed / activities with a baseline finish on or before the data date | 0.95 or higher |
The 44 working days in checks 6 and 8 is roughly two months, the length beyond which an activity is usually too long to track or a float value usually signals missing logic.
How to run the assessment
- Update the schedule first. Enter actual starts, actual finishes and remaining durations up to the data date. Checks 9, 11 and 14 are meaningless on a stale schedule.
- Make sure a baseline exists. Checks 11 and 14 compare progress against baseline finish dates.
- Schedule (recalculate) the project so float and dates reflect the current logic.
- Run checks 1 to 11 and 13 to 14. These are counts and ratios that any scheduling tool can produce.
- Run the critical path test (check 12) by adding a large delay, for example 600 working days, to one incomplete critical activity and confirming that the project finish moves by the same amount. Then remove the delay.
- List the failing activities, not just the percentages. The list is what you fix.
- Record the results each period. A trend tells you more than a single snapshot.
Worked example
Take a schedule with 200 incomplete activities and 260 relationships. At the data date, 50 activities had a baseline finish on or before that date. The remaining critical path is 100 working days long, and a contractual finish date gives the end milestone a total float of -4 days.
| # | Check | Count | Result | Threshold | Pass? |
|---|---|---|---|---|---|
| 1 | Logic | 8 of 200 | 4.0% | 5% or fewer | Pass |
| 2 | Leads | 1 | 1 | 0 | Fail |
| 3 | Lags | 20 of 260 | 7.7% | 5% or fewer | Fail |
| 4 | FS links | 240 of 260 | 92.3% | 90% or more | Pass |
| 5 | Hard constraints | 6 of 200 | 3.0% | 5% or fewer | Pass |
| 6 | High float | 15 of 200 | 7.5% | 5% or fewer | Fail |
| 7 | Negative float | 12 | 12 | 0 | Fail |
| 8 | High duration | 4 of 200 | 2.0% | 5% or fewer | Pass |
| 9 | Invalid dates | 0 | 0 | 0 | Pass |
| 10 | Resources | 0 | 0 | 0 | Pass |
| 11 | Missed tasks | 9 of 50 | 18.0% | 5% or fewer | Fail |
| 12 | Critical path test | Finish moved by the full delay | Yes | Pass or fail | Pass |
| 13 | CPLI | (100 - 4) / 100 | 0.96 | 0.95 or higher | Pass |
| 14 | BEI | 45 of 50 completed | 0.90 | 0.95 or higher | Fail |
Check the arithmetic: 8 / 200 = 4.0%, 20 / 260 = 7.7%, 240 / 260 = 92.3%, 15 / 200 = 7.5%, 9 / 50 = 18.0%, 96 / 100 = 0.96 and 45 / 50 = 0.90. The schedule passes 8 checks and fails 6.
Notice that CPLI passes while negative float fails. Both describe the same 4-day problem: CPLI says it is small relative to the 100 days left, while check 7 says it exists at all. The BEI of 0.90 and the 18% missed tasks tell the same story from the progress side: work is finishing later than baselined, which is likely how the negative float appeared.
How to fix the usual failures
Fix in this order, because the early checks distort the later ones:
- Logic first. Add the missing predecessors and successors. Until you do, float values (checks 6 and 7) cannot be trusted.
- Replace leads and long lags. Turn waiting time that hides work into real activities, and replace leads with SS links where work truly overlaps.
- Remove hard constraints that are not real commitments. Use a deadline or a soft constraint where you only want to see the gap.
- Split long activities into pieces of a few weeks, each with a clear finish.
- Investigate high float. It usually means a missing successor rather than genuine freedom.
- Deal with negative float and missed tasks through recovery planning: resequencing, extra resources or an agreed change to the end date.
Common mistakes
- Gaming the checks. Deleting lags or constraints to turn a check green, without fixing the real logic, makes the schedule worse.
- Treating a pass as approval. The checks say nothing about whether durations are realistic or the scope is complete.
- Running checks on a schedule that has not been updated, which produces misleading BEI, missed task and invalid date results.
- Counting the wrong population. Including completed activities, milestones or summary rows changes the percentages. Be consistent from period to period.
How to do this in Critova
Critova runs the DCMA 14-point checks on any project at the full controls level and lists every failing activity under each check, so you can open the activity, fix the link or constraint and re-run. Because Critova imports MS Project XML, Primavera XER and P6 XML files with a preview first, you can also bring in a schedule built elsewhere and assess it without retyping it. Critova is aligned with DCMA-14 practice; it is a tool for running the checks, not a certification. See the scheduling feature page for details, or read how importing works.
Common questions
Is the DCMA 14-point assessment mandatory?
Only where a contract or client requires it. Many owners and project controls teams use it voluntarily as a quick health check before accepting or reporting on a schedule.
Why 44 working days?
It is roughly two months of working time. Activities longer than that are hard to measure, and float longer than that usually points to missing logic.
What is a good BEI?
0.95 or higher is the usual threshold. A BEI of 1.0 means every activity due by the data date has finished; below 0.95 means work is falling behind the baseline.
Bring one schedule. See your critical path in an hour.
Free during our launch until 31 March 2027.