Recomputed, not copied
A P6 XER carries the dates and float P6 last calculated, along with flags such as the driving-path and critical marks. A tool that reads those fields and formats them is a viewer. A tool that recalculates them from the logic is a check. Trestle Path is the second kind: the CPM forward and backward passes, total and free float, the longest path, the float paths, the DCMA counts, the update-to-update differences and the delay measurements are all computed from the network as it sits in the file, on its own calendars, to the minute.
That choice has a cost, which is that the engine can disagree with P6, and the whole discipline of this product is making sure that when it does, it is because the file was saved out of date, not because the engine is wrong.
Checked against Primavera P6
The fixed-point test
The demonstration schedules that ship with the product (the Vireo Line set: a baseline and eight monthly updates) are dated by the product's own scheduling engine, not typed in. The test of that engine is that P6 does not move them: each file is imported into Primavera P6 Professional (24 and 26.8) and re-scheduled with F9, and the export must match the file that went in. Two modelling errors in the sample surfaced this way and were fixed (a redefined calendar that kept its stored hours, and completion milestones that a finish-on-or-before constraint acts on); the files are now fixed points of P6's scheduling.
Float paths, through Path 10
P6's multiple float paths, in free-float mode, are the least-documented calculation a scheduler relies on. The product reproduces them by a measured rule (working time to the minute through calendar shifts; driving on remaining dates; the tie-breaks P6 applies), and the rule is checked on seven schedules with P6's own paths as the oracle: on four of them all ten paths are identical in P6's order, on one (the demonstration update in the critical-path guide) Paths 1 to 9 are, and on the other two Path 1 matches activity for activity (190 of 190 on one, 49 of 49 on the other). After the first path, P6 ranks the chains by the relationship free float where each joins an earlier path, counted in working hours; that decides the order wherever calendars of different lengths meet, and the product counts it the same way. Where the engine is known to diverge, it is written down as open below.
The critical path definition
The product identifies the critical path by the longest-path method, and within it Float Path 1 (free float, derived from the file's driving logic) is the critical path everywhere: overview, float, logic, reader filter, reports and exports use one definition, so the count never changes from page to page. Total float at or below zero is shown as a separate diagnostic, never as the definition, because any constraint can manufacture it.
Microsoft Project XML
MS Project files are read by their own rules (unique IDs as the key, the Active flag, the XML's calendar and constraint model) and were checked against real April, June and July exports of the same project in both formats. What an XML cannot carry (activity types, resource curves, activity codes) is stated on the pages that depend on it rather than approximated.
What runs before a release
- The suite: about 6,500 assertions across roughly 110 suites, covering the engine's calculations, every section of the dashboard driven in a real browser, the sample schedules (the demonstration set must show every kind of change the comparison registers exist to find), the public pages, the sign-in and billing paths, and the privacy scan below. A publish is refused while any assertion fails.
- The privacy scan: a full review of the demonstration schedule is recorded against a local copy of the calculation service, and every request is checked: no activity name, WBS name, code, note, cost, file name or project name may appear; every identifier must be a random code that is different in every calculation. The result is published as a worked example in the privacy notice.
- The release itself: the page and the calculation engine are versioned as a pair, and the page refuses an engine that is not the version it was tested with. Each release is recorded with the version of the engine it went live with, so a result can be tied to the code that produced it.
The arithmetic is on the page
Every count opens the activities behind it. Every delay figure sits over the bridge that produced it: the measuring point, the unit, the windows and their reconciliation. The evidence workbook (60+ tabs) carries every register as its own sheet, so a headline in a report can be traced to the rows it came from. A number you cannot trace is a number you cannot defend; the product is built so that you never have to.
When a result disagrees with P6
It happens, and the usual reasons are these, in order of frequency: the file was exported before it was re-scheduled, so P6's stored dates are stale; the file's float paths were calculated with the multiple-float-path option off, so the stored Path 1 is not P6's free-float path; a calendar was redefined in a way P6 stores differently from how it displays (hours per day against the day figure); or a level-of-effort or summary activity is being counted by one side and not the other. The pages say which definition they are using, and the reader can load the file into P6 and check. When the difference is none of these, it is reported as a defect and fixed; the changelog records each one.
What is still open
- Free-float paths beyond the tenth diverge from P6 on one of the reference schedules (an in-progress stop deep in the network); only ten paths are shown, so the divergence is not visible, and it is being worked on.
- On the demonstration update used in the critical-path guide, Path 10 takes two different activities from P6's. Tracing back, a start-to-start link with a lag and a finish-to-start link reach the same activity at the same working moment, and P6 follows the lagged one; the product follows the other. The path's size and its lowest float agree. It is being worked on.
- Percent lags in MS Project XML, and lags modelled by the engine on relationships whose calendars differ from both activities', are approximated and flagged rather than exact.
- Real-visitor speed measurements of the public pages have not accumulated yet; the lab figures are on the site's changelog.
This page is revised when any of the above changes. The date at the top is the date it was last checked against the product.
Fourteen days free
Try it on your own schedule
Fourteen days free, no credit card, every section open. Your XER or XML file is read in your browser and never uploaded; only anonymous numbers reach the calculation service, and nothing is stored.
RelatedHow to compare two P6 updatesDCMA 14-point assessmentSchedule delay analysisHow your schedule file is handled