Guide · Resource performance

Resource performance in a P6 schedule: planned against actual units, period by period

A resource-loaded schedule says more than when. It says with what, and how much: the hours a crew will spend, the cubic yards a commodity will consume, the value a cost account will earn. This guide covers how to read that from a P6 XER without re-planning it: where the plan comes from, how the totals become curves, which variance to quote when the totals move, and a worked example on a metro extension's crews, concrete and contract value.

Trestle Path Analytics Corp.Worked example: Vireo Line demonstration set9 min read

Sign in ↗Product tour →Pricing →

The short answer

Resource performance asks one question of one resource: where should it have been by the data date, and where is it? Trestle Path Analytics reads it from a P6 XER in the browser. It takes the plan from the baseline's at-completion units spread on the baseline's early and late dates, takes the actual from the update's own recorded units, and shapes both on P6's own rules: the activity's calendar, working minutes, P6 resource curves and the exact data-date instant. The totals are read from the file and are exact; only their shape across the periods is calculated, and the page says how each curve was built.

Planned against actual unitsBaseline early and late curvesP6's own spreading rulesTotals exact, shape calculated

What the page answers

Three curves carry the whole answer. Planned on early dates is the baseline's at-completion quantity spread across working time as if every remaining activity ran at its earliest. Planned on late dates is the same quantity on the late dates; the band between the two is the float on the remaining work. Actual is the update's recorded units, reconstructed period by period and stopping at the data date.

Read against that envelope there are three positions, the ones AACE 55R-09 describes: on or above the early curve is on plan; between the curves the work is consuming its float and can still finish on time; below the late curve is the finding. Bars under the curves show how busy the resource was in each week, month, quarter or financial period.

Consumption, not physical progress. A resource 40 per cent consumed does not mean the work is 40 per cent built. It means 40 per cent of its budgeted units have been booked. The two come apart when work is booked to the wrong activity, when the budget was wrong, or when rework is charged to the original line. Read the page beside the critical path, not instead of it.

Why the plan has to be the baseline

The only plan-shaped thing inside a statused schedule is its own Budgeted Units spread over its planned dates, and that is not a plan. On the usual settings P6 drags an assignment's planned dates onto its actual dates once work starts, so for every period already past the "plan" has quietly moved onto the actuals. A plan-against-actual drawn from it flatters the result by construction.

So the page reads three files, each for one thing:

SlotWhat it suppliesWithout it
Current updateThe actual units, the data date, this update's at-completion totalsNothing to read
BaselineThe plan: the baseline's at-completion per assignment, on its early and on its late datesNo plan curve; every plan-relative reading says baseline required, and the facts (totals, actuals, assignments) are still shown
Prior updateWhat last month forecast for the window between the two data dates, against what was delivered in it; changes to closed financial periodsNo month-on-month block

The export must carry the resource assignments (P6's TASKRSRC rows), the calendars with their parents, and the resource curve library. An XER exported without assignments has nothing to phase, and the page says so rather than drawing an empty chart.

Two percentages, two denominators

Actual per cent complete is P6's own Units % Complete: actual to date divided by this update's at-completion total. Planned per cent divides the plan to date by the baseline's at-completion total. When the two totals differ, and on a live job they usually do, the difference between the percentages mixes progress with scope. The page therefore prints three more readings beside them:

ReadingWhat it isWhen to quote it
Progress varianceActual per cent minus planned per cent, in percentage points, against early and against lateWhen the two at-completion totals agree
Unit varianceCumulative actual minus cumulative plan, in unitsWhenever the totals differ: it has no denominator to distort it
Scope varianceThis update's at completion minus the baseline'sAlways beside the others: it is the movement neither percentage can show

The difference between two percentages is written in percentage points, never as a per cent: a plan of 60 per cent and an actual of 50 is 10 points short, which as a ratio is 17 per cent short. Both are true and they are different numbers, so the page keeps them apart.

How a total becomes a curve

An assignment row in an XER carries a lump: a budgeted, actual and remaining quantity, a planned and an actual window, and optionally a pointer to a resource curve. It does not say what April looked like. Every tool has to calculate that, and two tools calculating it differently will agree on every total and disagree on every period. The page uses P6's rules, so its figures can be checked against P6's own Resource Usage Spreadsheet:

  • The activity's calendar, merged with the global calendar it inherits from, so an inherited shutdown is not filled with work. A resource-dependent activity uses each resource's own calendar.
  • Working minutes: a ten-hour day carries more than a six-hour day, a non-working day carries nothing, and the first and last days are read by the clock.
  • P6 resource curves: twenty equal slices of working time, applied cumulatively. With no curve, the quantity is proportional to working time.
  • Actuals stop at the data date, read at the exact instant the file stores, and include overtime. A half-finished assignment has consumed the front of its curve, not a squashed copy of the whole.
  • Days first, then weeks, months, quarters or financial periods, so every timescale returns the same totals and the same readings at the data date.

Financial periods: the stored record

Without stored periods an XER holds only cumulative actuals, and every tool, P6 included, redraws their shape at each update: history is rewritten every month. When the contractor runs P6's Store Period Performance, the file carries each period's actual as it was reported, and for every assignment the actual to date equals the stored periods plus the actual this period. The page checks that identity on every assignment, reports the last store and how long the open period has run, and offers two shapes for the actual: As P6 calculates (the default, which reconciles with P6's ordinary columns) or Stored periods (the record). With Stored periods chosen, a diamond also marks the cumulative actual stored at each period end; the calculated view draws none.

Stored periods can be edited after the event in P6, with nothing in the file to say so. With the prior update loaded, the page compares every period the prior file had already closed with the same period now, and lists every stored value that changed, disappeared or appeared.

Running it

  1. Load the current update, the baseline in the Baseline slot and, if you have it, the prior update. Open Resource Performance.
  2. Pick the resource from the picker, by type or by typing a few letters of its ID or name. A value resource carrying the whole project is usually the first to read.
  3. Name the unit on the chip if P6 did not: P6 gives a unit only to material resources, so a cost or value line arrives reading as hours. It is a label; nothing is converted.
  4. Read the six tiles, then the chart. Switch the timescale, the plan basis or the actual shape as the question needs.
  5. Open All resources to see where the loading actually is, and which resources moved most against the baseline.
  6. Export the workbook, the chart (PowerPoint, PDF, PNG, JPG, SVG), and save the setup for next month.
The Resource Performance section of Trestle Path Analytics: monthly bars of planned and actual value, the cumulative plan on early and late dates with the envelope between them, the cumulative actual stopping at the data date
The demonstration metro extension's value resource: monthly bars, the plan on early and late dates with the envelope between them, and the actual, as P6 calculates it, stopping at the data date.

Worked example: a metro extension

The Vireo Line Extension is a fictional twin-bore metro extension with five underground stations, supplied with the product as a demonstration set; nothing in it is real. Its August 2026 update was read against its baseline, with the July update as the prior. Twenty-two resources carry a budget: labour crews, equipment, materials and one value resource. The schedule stores financial periods.

The project's value

One nonlabour resource, Vireo Line Weighted Value, carries the contract value on 176 assignments, the common way an owner's specification asks for a cost-loaded schedule. P6 gives it no unit, so the unit was named as USD on the chip. At the 1 August 2026 data date:

ReadingValueWhat it says
Actual % complete74.49%908.2 million earned of this update's 1,219.3 million at completion
Planned % — early / late77.68% / 63.37%Where the baseline put the project by now on its early and on its late dates
Progress variance−3.20 ppInside the envelope: consuming float, 3.2 points short of the early plan and 11.1 above the late
Unit variance−38.6 millionEarned value short of the early plan to date
Scope variance+0.53 millionHolding: under one per cent of the agreed total

The scope is holding, so the percentages can be read at face value here: the project is consuming float, not yet behind its late plan. 76 stored periods hold all of the actual, and the last store was July 2026, so the whole of that history is on the record rather than recalculated.

When the total moves: the electrical crew

The Electrical resource reads 39.40 per cent complete against an early plan of 49.45 per cent: 10.06 points short. But its at-completion has grown from 771,200 hours in the baseline to 885,584 now, +114,384 hours (+14.8 per cent), past the 10 per cent line where the page calls a resource materially re-scoped. Against the approved total the same 348,896 hours are 45.24 per cent, 4.21 points short, and in units the crew is 32,481 hours behind its early plan. The ten points are mostly the denominator. The finding is the scope growth, and it is on the Scope variance tile, not on either percentage.

When "behind" means over-consumed: the tunnel crew

The Tunnel Crew was planned to be finished by now: 100 per cent on both curves. It reads 98.98 per cent complete, 1.02 points short, and the chip says behind the late curve. In units it has booked 19,484 hours more than the plan to date, because its at-completion has grown by 27,180 hours to 757,280. The work is not late in the sense the percentage suggests; the tunnel has cost more crew hours than budgeted. That is the question to ask, and only the unit and scope variances show it.

Where the loading moved

The All resources table ranks every resource by how far its at-completion has moved from the baseline. On this update the top of the list is Architectural Finishes (+199,100 hours, +26.2 per cent), Utility Relocation Crew (+20.9 per cent), Trackwork Crew (−19.3 per cent, a smaller total than the baseline's) and Mechanical & Plumbing (+18.6 per cent). A project-level total that is holding can hide crews that are not; this table is where they surface.

What to ask for in a resource-loaded submission

  • Budgeted units on every assignment, and units statused each period, not only dates. An actual line that stops short of the data date usually means dates were statused and units were not.
  • One meaning per resource. A value resource that also carries a crew's real hours cannot be read either way, and no manpower conclusion may be drawn from a cost-loaded schedule.
  • Store Period Performance every cycle, into the right period, without skipping months: a store after a gap carries both months and the split between them is lost.
  • A unit of measure on material resources, and resource curves chosen where the spread is not even, as a decision rather than a default.
  • The export with assignments and complete calendars, and, where a figure is disputed, P6's own Resource Usage Spreadsheet for the resource in question beside the XER.

Limits

  • P6 XER only. MS Project files do not carry the assignment, curve and financial-period tables this page reads.
  • The schedule's own claim. The actual is units as the contractor statused them: exact as recorded, not verified, not invoiced and not paid.
  • Three things the shape cannot see. A suspend and resume on an activity, a calendar exported without its parent, and timesheet-driven actuals. Each announces itself as a disagreement with P6's Resource Usage Spreadsheet on the assignments concerned; the totals stay exact.
  • Judgement bands. The colour bands (the 0.95 attainment line, the 1 and 10 per cent scope lines, the 20-point wide-envelope line) are conventions, not standards, and every number is printed so a reader can disagree.

Where to find it

Resource Performance is included in the Analyst and Expert plans and in the fourteen-day trial, for Primavera P6 schedules. Current prices are on the pricing page. The section's guide covers the method in full: every tile and its denominator, the chart's controls, the curve rules, financial periods, the exports and the settings in P6 that make the page accurate.

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 updatesA sample schedule reviewPlans and pricing