Resource Levelling

Last reviewed 9 September 20262,268 words10 min read

What P6's levelling button does, why you almost never press it on a contract programme, and the one way it is useful

🟩 In one line: Levelling delays activities until resources fit under a limit, with no logic, no record and no repeatability β€” so it never goes into a contractual update; run it in a Reflection to find the clashes, then fix them with SOFT-RES logic or zoning that a reviewer can read.

πŸ‘€ Who this is for: Junior planners who found Tools β†’ Level Resources; mid-level planners asked to "level the programme". Prerequisites: Resource-loading-and-histograms, Hard-logic-vs-soft-logic, P6-reflections-and-what-if.

e / c
First, let's be honest about why this page exists

Every few months a junior planner levels a live project, the completion date moves eleven weeks, half the constraints show as violated, and nobody can explain to the Engineer why activity 4,310 now starts in March. The levelled dates are not stored as logic; press F9 with levelling off and they vanish. Press it with levelling on and a different order of priorities gives a different answer.

Levelling has one honest use: as a diagnostic that tells you where the histogram breaks. The fix goes into the schedule as relationships, not as levelled dates.

🟨 The standard β€” what "good" looks like
SourceWhat it says (paraphrased)Use it for
PMI Practice Standard for Scheduling, 3rd ed.Resource levelling extends dates to resolve over-allocation; resource smoothing works within float; both change the schedule and must be documented (check against your copy)Vocabulary: levelling vs smoothing
GAO Schedule Assessment Guide, Best Practice 5Resource profile achievable; over-allocation resolved by sequencing or added resources, and the method documentedWhy the resolution must be visible
DCMA 14-Point, items 1, 5Logic complete; hard constraints minimal β€” a levelled schedule with no logic explaining its dates fails the intentReviewer's view
AACE RP 38R-06Any levelling: resources limited, priority rules, and result recorded in the SBMIf you ever do submit one
NEC3 / NEC4 Cl 31.2Programme shows order, timing and resources for each operationOrder must be explicit β€” logic, not a levelling algorithm
Hub conventionScheduling options: Level resources during scheduling unticked; levelling in Reflections only; clashes resolved as SOFT-RES relationships with Comments; recovery ramp check by histogramYour defaults

🟒 Rule: the schedule's dates come from logic and calendars only; if a resource limit changes the order of work, write that order into the logic and label it SOFT-RES.

How it actually works

What levelling does. Tools β†’ Level Resources (check against your P6 version). For each levelled resource, P6 compares units/time demanded against Max Units/Time (or a Max Units limit set in the dialogue) and, in priority order, pushes activities later until the demand fits. Options that matter:

OptionWhat it doesUse
Consider assignments in other projects with priority β‰₯Multi-project levellingOff on a single project
Preserve scheduled early and late datesKeeps the CPM early/late dates and stores levelled dates separatelyOn β€” always
Recalculate assignment costs after levellingCost follows levelled datesOn if cost loaded
Level all resources / selected resourcesWhich resources have limitsSelected β€” only the 3–6 genuinely constrained trades or cranes
Level resources only within activity Total FloatSmoothing: never delays the completion date; leaves the clash unresolved if float is insufficientOn for diagnostic
Preserve minimum float / max % over-allocationTolerances0 float, 0–10 % over-allocation
Leveling prioritiesTie-breaker order (e.g. Total Float ascending, then Early Start, then a Priority code)State them; write them in the SBM
Log to fileLevelling logOn; archive

Why it stays out of contractual updates.

ProblemConsequence
No logic createdThe reviewer cannot see why an activity moved; DCMA logic checks pass while the dates are inexplicable
Not repeatableChange one priority tie-breaker and the dates change; two planners get two programmes
Float destroyedLevelled dates make total float meaningless; float-ownership arguments collapse
Constraints violated silentlyLevelling pushes past Finish On or Before dates and reports it in the log nobody reads
Recovery hidesIf levelling is on, adding a crew changes dates through the algorithm, not through a documented lever
Baseline comparison impossibleSchedule Comparison against an un-levelled baseline shows thousands of date changes with no cause

The one honest use β€” diagnostic in a Reflection.

StepAction
1Reflection of the current schedule, named "Levelling check β€” Reflection of UpdNN DD"
2Set Max Units on the 3–6 constrained resources (from the subcontractor's confirmed manpower, camp, crane hook-hours)
3Level, selected resources, within Total Float first; read the log for activities that could not be resolved β€” those are the real clashes
4Level again without the float restriction; note how far completion moves β€” that is the size of the resource problem
5For each clash: decide the order (zone A before zone B; core wall rebar before slab rebar) and add an SS+lag or FS relationship labelled SOFT-RES in Comments with the resource named; or add resources and change the crew in the RD formula; or accept the date
6Turn levelling off, reschedule with logic only, re-read the histogram; iterate until the peak fits
7Schedule Comparison of the logic-only result against the source; changes listed as planner edits in the change table
8Delete the Reflection; archive the levelling log, comparison and a one-line note in the SBM resource basis

If the specification demands a levelled submission. Some client specs say "resource-levelled programme". Read it with the Engineer: almost always they mean a programme whose histogram is achievable, which logic delivers. If they truly mean levelled dates, submit both β€” the logic-driven programme as the programme, plus a levelled scenario named as such, with limits and priority rules in the SBM β€” and record that dates, float and delay analysis are read from the logic-driven one.

πŸŸ₯ Where people go wrong
  1. Levelling the live project. Dates move without explanation, constraints are breached, and the last accepted update cannot be reproduced. Reflections only.
  2. "Level resources during scheduling" ticked. Every F9 re-levels, so no two reschedules agree and the settings screenshot in the SBM is contradicted. Untick; it is on the scheduling-options checklist for this reason.
  3. Levelling all resources. Two hundred resources with default Max Units of 8 h/d each produce a programme three years long. Only the genuinely constrained few, with real limits.
  4. Trusting levelled dates as a forecast. Levelled completion is one algorithm's answer to one priority order. The forecast is the logic-driven longest path, re-sequenced by hand where the diagnostic showed clashes.
  5. Fixing clashes with constraints. Start On on the second zone to keep the crew sequence. It hides the reason. An SS+lag SOFT-RES relationship says the same thing and can be read and tested.
  6. Not reading the levelling log. It lists the activities that could not be levelled within float and the constraints violated β€” the only useful output β€” and it goes unopened.
βš–οΈ When you're challenged

"The spec says resource-levelled. Why isn't the programme levelled?" It is resource-feasible: every trade sits under its confirmed manpower on the histogram, and the sequence that achieves that is written in the logic as labelled resource links you can trace. A programme with levelled dates and no logic can't be reviewed or analysed for delay, which is why I've submitted the levelled scenario alongside as a check, not as the programme.

"Just press level and tell me the real date." Levelling gives one date for one set of priorities; change the tie-breaker and it gives another. I've run it in a copy β€” it says the steel-fixers are the problem in March and the answer is about three weeks. I've put that sequence into the logic so the date is the same tomorrow and next month.

"Why did you add forty relationships this month?" They're resource links from the levelling check β€” steel-fixer and blockwork crew order across Levels 12–16, each labelled SOFT-RES with the trade named in the comment. Net effect on completion is zero; the change table lists them and the comparison report is attached.

πŸ“„ Related pages
✏️ Worked example β€” Ajman mid-rise, month 7 levelling check

Constrained resources: LAB-STF (Max 40), LAB-BLK (Max 90), EQ-TC1 (Max 8 hook-h/d). Reflection of Upd07.

RunSettingCompletion movementUnresolved (log)
AWithin Total Float only0 d9 activities: STF L09–L11 rebar over by 12–18 for 3 weeks; TC1 over by 2.4 h/d in weeks 31–33
BUnrestricted+16 working daysβ€”

Resolution in logic:

ClashFixTypeComment text
L09 core rebar β€– L09 slab rebar Zone ASTR-L09-COR-030 β†’ STR-L09-SLB-REB-A SS+3SOFT-RES"STF crew 40 shared; core first per MS rev 3"
L10 / L11 sameSame pattern, two links eachSOFT-RESSame
TC1 weeks 31–33Blockwork material lifts moved to hoist H1 from L06 up; BLK activities re-assigned to hoist resourceMethod"Hoist H1 commissioned wk 30 (IF-018)"

Logic-only reschedule: completion movement +4 working days (vs +16 levelled); STF peak 40; TC1 7.6 hook-h/d. Comparison report: 7 relationships added, 0 constraints, 4 days on the contractual milestone, tagged restraint β€” resource. Reflection deleted; log and comparison archived; SBM Β§7 note: "Levelling check month 7: STF and TC1 limits applied; resolved by 6 SOFT-RES links and hoist re-assignment; +4 d."

πŸ“– References
  • PMI, Practice Standard for Scheduling, 3rd ed. (check against your copy)
  • GAO, Schedule Assessment Guide, GAO-16-89G, Best Practice 5
  • DCMA 14-Point Schedule Assessment, items 1 and 5
  • AACE International RP 38R-06, Documenting the Schedule Basis
  • NEC3 / NEC4 ECC, Cl 31.2 (check the edition in your contract)
  • Oracle Primavera P6 Professional User Guide β€” Level Resources; Leveling priorities; Scheduling options (check against your P6 version)

From the field

Experience from working planners. Unreviewed β€” read it as experience, not guidance.

Add what you know about resource levelling. What worked, what the consultant pushed back on, what you would do differently next time. A paragraph is plenty.

Contributors get their name and one link on the site β€” your own templates, course or consultancy. We take nothing and hold nothing.

Add your experience