Skip to content

Critical Path Length Index ​

FieldValue
IDcpli
DenominatorProject remaining hours (data date → scheduled/planned finish × project calendar day_hr_cnt)
MetricCPL / project_remaining_hours
Threshold0.95
Pass condition0.95 ≤ CPLI ≤ 1.05 → pass; otherwise warning

Intent ​

Measure whether the remaining zero-float driving chain still fits in the time left to the project finish date (NDIA / DCMA Critical Path Length Index). This is an observed-float trace on the shared CSR graph, not a CPM recalculation.

ADR 0140 — Schedule graph and observed-path DCMA metrics

See the Scheduling Kernel Plan for K1 graph and driving-path tracing.

CPL is the longest sum of remain_drtn_hr_cnt walking backward from terminal activities through predecessors with total_float_hr_cnt <= 0. Level-of-effort, milestones, and WBS summaries are excluded.

When the graph has a cycle, project remaining cannot be measured, or no critical chain exists, the check is degraded (info) and states the reason. Observed float is never overwritten.

Remediation playbook ​

Recover the driving path or re-sequence remaining work so CPLI returns to the 0.95–1.05 band.

Implementation ​

Computed inside runHealthAnalysis → check id cpli (src/features/health/utils/dcmaAnalysis.ts via src/kernel/graph/criticalPathMetrics.ts).

Privacy-first Primavera P6 schedule analytics.