Digital

Using Python to Improve Primavera P6 Schedule Assurance

Reviewing schedule quality by hand does not scale. On a large programme, no team can check thousands of activities across a dozen contractors every month and stay consistent — so the check itself has to become code.

By Rishi JaveriPublished 2026-08-04Updated 2026-08-127 min read

Why manual review breaks down

Across many contractors and tens of thousands of activities, manual review becomes slow, inconsistent and impossible to keep honest. Quality becomes a matter of who looked and when.

Rules as code

Every check that matters can be written as a precise rule, and any rule can be applied by code — identically, every time. The DCMA 14-point checks are the natural starting set because they are already defined as measurable tests.

How it works, end to end

Export the schedule from P6 as an XER file, parse it in Python, apply each rule across the whole network, and produce a score plus an itemised list of failures. The monthly assurance cycle stops being a bottleneck and becomes a button — and every contractor’s programme is scored the same way.

Beyond DCMA, and where judgement still rules

Layer bespoke Employer rules on top — more than ninety on one programme. This approach lifted contractor schedule quality from around a quarter to over four-fifths conformance, and held it. But automation only raises the floor: a schedule can pass every check and still be unbuildable. The code handles the objective thousands; expert judgement handles whether the plan is actually real.

Rishi JaveriProject Controls Director · FCIArb · PMP · PSP