MCP for Primavera P6

Compare two Primavera P6 updates with AI

Put this month's update next to last month's and ask what changed: activities and links compared one by one, the cause of each slip, float that eroded, and the changes a reviewer should question before accepting a better finish date.

Tools: p6_compare_projects, p6_update_integrity, p6_health_check_compare · Profile: Full

Load both updates

The server compares two projects matched by Activity ID, so it needs both updates in front of it. Two ways:

  • In the P6 database: keep the previous update as a baseline or a copy of the project (DEMO-SS225_PREV on the demo), next to the current one (DEMO-SS225).
  • From XER files, without P6: in the Settings window choose Database > Data source > XER files only, add both XER files and click Load and check. When both carry the same Project ID, the second one gets a ~2 suffix (DEMO-SS225~2).

What changed

Compare DEMO-SS225 with the previous update DEMO-SS225_PREV. Summarize the finish date change, the slips and their causes, float erosion and logic changes.

The assistant calls p6_compare_projects(project="DEMO-SS225", other="DEMO-SS225_PREV"). Activities are matched by Activity ID and links by predecessor, successor and type. The summary covers the whole project, then the rows page the activities by largest variance.

DEMO-SS225 against DEMO-SS225_PREV, synthetic data.
ItemResult
MS-1100 - Project completion19 Oct 2027 to 5 Oct 2027 (14 calendar days, 10 working days earlier)
Activities matched / added / removed214 / 0 / 1
Finishing later / earlier2 / 5
Slip causes of the later oneslonger duration: 2, late start: 0
Float eroded / no longer critical1 / 5
Links added / removed / lag changed2 / 4 / 1

The slip cause is computed per activity on its own calendar: a late start, a longer duration, or both, so start variance plus duration change equals finish variance exactly. Variances come in calendar days and in working days.

Why the finish moved

A finish two weeks earlier in a project with negative float is good news only if the work behind it changed. That is what p6_update_integrity checks.

Run an integrity review of DEMO-SS225 against DEMO-SS225_PREV. For each flag, give the activities as Activity ID - name with before and after values.
Flags raised on the demo update. Each one is a question, not proof.
FlagWhat the server found
Duration cutCOM-ENR-1050 - Trial operation: 30 to 20 days while critical; CON-SEC-1060 - Perimeter lighting and CCTV: 20 to 15 days
Must finish by moved2 Aug 2027 to 16 Aug 2027 (14 calendar days later)
Negative float cleared6 activities, for example COM-PRE-1040 - 225 kV cable sheath and high-voltage tests: -14 to +6 days, because the must finish by date moved
Link removed on critical workCOM-PRE-1090 - Auxiliary systems tests to COM-ENR-1000 - Energization procedure approval, FS
Type or lag changedCON-HV-1060 - 225 kV cable laying to CON-HV-1070 - 225 kV cable terminations: SS 10 d became FS; a foundations link lag went from 3 to 5 days
Actual dates rewrittenPRC-GIS225-1040 - 225 kV GIS - manufacturing: actual start moved 7 days earlier
Activity deletedCON-SITE-1050 - Temporary site facilities, in progress in the previous update
Schedule options and calendars"Make open-ended activities critical" turned off; one activity moved from a 6-day to a 5-day calendar; a holiday added

Read together: the 10 working days gained at the finish match the 10 days cut from Trial operation, a critical activity, while the must finish by date moved 14 days later and cleared negative float on six activities. Neither change is wrong in itself; both need a reason and evidence from whoever submitted the update. The server says so in every result: the flags are questions to raise, not proof of manipulation.

Health trend between the two

Run the DCMA check on each update and ask the assistant to compare them, or, when the same project was checked before and after, use p6_health_check_compare for the checks that got worse and the activities that entered them.

Against the baseline

Without other=, p6_compare_projects compares the project with its P6 baseline. Add dates="planned" to compare against the baseline's planned dates instead of its current ones. For milestones only, p6_milestones gives each milestone's variance against the baseline in working and calendar days.

Prompts that work well

List the 10 activities that slipped most since DEMO-SS225_PREV, with the slip cause and the change in total float.
Which relationships were removed or changed since the previous update, and was the successor critical?
Write a one-page update review for the client: finish date change, what drove it, open questions from the integrity review.