Tools › Project Management › Resources › Resource Loading and Leveling


Resource Loading and Leveling

Resource loading, time-constrained leveling and resource-constrained scheduling of an activity network pasted as text in the Project Schedule format with per-activity resource demands (Crew:2, Tech:1). The critical path method gives the early and late schedule; the early-start resource histogram of every resource is compared with its availability and the over-allocated days are listed. Leveling shifts activities within their float by the Burgess and Killebrew (1962) sum-of-squares criterion, successors moved forward where a shift requires it, until no move lowers the sum of squares, and on small networks the exact optimum found by enumeration is printed as the bound. Where the conflicts cannot be removed within float, a serial or parallel schedule-generation scheme (Kelley 1963, Kolisch 1996) with a chosen priority rule builds a resource-feasible schedule and reports the project extension, with the exact makespan by enumeration on networks of up to twelve activities; a deadline, time-phased availability, a working-day calendar with dates and resource rates for the time-phased cost baseline (the cumulative cost curve for earned value) are included. The default case is an illustrative 12-activity building project with a crew of 4 and 2 technicians: the early schedule needs 6 crew and 4 technicians, leveling brings the crew within its limit without extending the 27-day project, and the technician conflict between two critical activities extends the resource-feasible schedule to 30 days, the exact optimum.

  • Early-start resource histograms per resource, peak usage, over-allocated days and excess unit-days, utilization

  • Time-constrained leveling within float by the Burgess and Killebrew sum-of-squares criterion, with the exact optimum as a bound on small networks

  • Resource-constrained schedule by the serial or parallel scheme with eight priority rules, optional splitting, exact makespan on networks of up to twelve activities, project extension against the deadline

  • Gantt of the early, leveled and constrained schedules, histograms, working-day dates, cost loading and the cumulative cost curve for the earned value baseline

Resource Loading and Leveling


Unit System: /

Activities (one per line, fields separated by commas; durations in whole working days; resources as name:units per day)

Predecessors: ids separated by commas, a relation and lag after the id (FS+2, SS, FF-1, SF+3), finish-to-start by default, a dash for none. Resources: name:units (several per activity). An entered priority as p=1 (lower first) is used by the Entered priority rule. One resource per line: name, availability (units per day), optional cost rate per unit per day (one currency, no symbol), optional periods of different availability as a-b:units (working days counted from 1). A resource demanded but not listed is taken as unlimited.

Calendar and Deadline (working days)




Leveling and Scheduling Options






×

Resource Loading and Leveling

Resource Loading and Leveling

Why a time schedule is not yet a plan

The critical path method answers one question: how early can each activity start and how late can it finish without delaying the project, given only the order in which the work must be done. It assumes that every activity can be staffed and equipped the moment its predecessors are finished. Real projects draw on a crew, a test rig, a specialist or a budget that is available in limited quantity, and when the early-start schedule asks for more of it on some day than exists, the schedule cannot be executed as drawn. Loading the schedule with its resources shows where that happens; leveling and resource-constrained scheduling decide what to do about it. The NASA Schedule Management Handbook (NASA/SP-2010-3403, §5.6) calls resource loading "the recommended method to accurately validate whether the scheduled project completion is achievable with the allotted resources available" and warns that a baseline set without it "is to assume a significant risk in achieving project completion within budget and on schedule". The GAO Schedule Assessment Guide (GAO-16-89G) makes assigning resources to activities its fourth best practice, and the DCMA interpretation guide and the Corps of Engineers' ER 1-1-11 require resource-loaded schedules on their contracts.

Inputs

The activities are pasted as text in the Project Schedule tool's format, one per line: id, name, duration in whole working days, the predecessors (with the FS, SS, FF and SF relations and lags of the precedence diagramming method, finish-to-start by default), and then the resource demands as name:units, meaning that many units of the resource on every working day of the activity (the uniform loading that scheduling tools assume unless told otherwise, NASA/SP-2010-3403 §5.6.1). A token p=3 gives an activity an entered priority. The resources are listed on their own lines with the units available per day, an optional cost rate per unit per day, and optional periods of different availability (10-14:2 means two units on working days 10 to 14). Durations and availability are plain numbers; the resource units are whatever the analyst chooses (people, machines, crews), the cost is in one currency without a symbol. A start date and a working week turn the day numbers into calendar dates; a deadline in working days is compared with each schedule.

Loading: the resource histogram

With every activity at its early start, the usage of a resource on day t is the sum of the demands of the activities running that day, ur(t) = Σi running at t ri. Plotted against time it is the resource histogram, and set against the availability Lr(t) it shows the over-allocated days, their excess in unit-days, the peak demand and the idle capacity. The total demand Σi di ri in unit-days is a property of the work, not of the schedule: every schedule of the same activities uses the same number of unit-days, so leveling can only move them in time. The utilization, demand over the capacity Lr T of the critical-path duration, says at once whether a schedule of that length is possible at all (above 100 % it is not) and how much room there is for smoothing.

Leveling within float

Time-constrained leveling keeps the project end where the critical path puts it and moves the non-critical activities within their float so that the histogram is as smooth as possible. Burgess and Killebrew (1962) gave the criterion that has been used ever since: the sum over the days of the squared usage, Σt u(t)². For a fixed total of unit-days the sum of squares is smallest when the usage is spread uniformly, so lowering it cuts the peaks and fills the valleys at the same time, which a peak criterion alone would not do. With several resources the tool adds the sums weighted by 1/Lr², F = Σr (1/Lr²) Σt ur(t)², so that a resource with large units does not dominate one with small; the per-resource sums are reported unweighted.

The procedure follows the paper: the activities are taken in order of decreasing late finish (the last ones first, so that moving them to the right frees the earlier days for those that follow in the list), each is tried at every start from its earliest precedence-feasible day to its late start, and it is placed where F is least, ties going to the latest start. One refinement is added: when a candidate start would violate a successor's constraint, that successor and its own successors are pushed forward to their earliest feasible days before F is evaluated, which lets a chain move together where Burgess and Killebrew's one-at-a-time rule would have left both activities stuck. A pass over all the activities is repeated until none moves. The result is a local optimum of F: on small networks the tool enumerates every precedence-feasible combination of starts within the windows and prints the true optimum beside it, so that the gap, if any, is seen. In the test instances the heuristic reached the optimum in each case where the enumeration was run.

Leveling can only use the float that exists. Two critical activities that run in parallel and together demand more than the availability leave an over-allocation that no shift within float can remove; the tool reports which resources are still over-allocated after leveling and hands the conflict to the next step. With the "Level to Deadline" box on and a deadline later than the critical path, the project end is held at the deadline instead, every late start moves out by the difference and the extra float is used.

Resource-constrained scheduling

When the conflicts cannot be removed within float, the project must be lengthened, and the question becomes by how little. Finding the shortest resource-feasible schedule is the resource-constrained project scheduling problem, NP-hard in general (Blazewicz, Lenstra and Rinnooy Kan 1983), so practice uses priority-rule heuristics, which Kolisch (1996) classified into two schedule-generation schemes.

The serial scheme (Kelley 1963) builds the schedule activity by activity: among the activities whose predecessors are all scheduled, the one that comes first under the priority rule is placed at the earliest day on which its precedence constraints hold and its resources are free for its whole duration; this is repeated until every activity is placed. The parallel scheme builds it time by time: at each decision time (the start, then every finish) the eligible activities are started in priority order as long as the resources suffice, and time moves on to the next finish. The two schemes explore different sets of schedules, the serial one the active schedules (no activity can start earlier without delaying another) and the parallel one the non-delay schedules (no resource is left idle while an eligible activity could use it), and neither is better in every case, so both durations are printed and the chosen one is reported in full.

The priority rules offered are the static rules of the literature, all taken from the critical path calculation: minimum total float (the activity with the least room first), latest start, latest finish, shortest duration, longest path to the end (the activity heading the longest remaining chain first), most successors, greatest resource demand (duration times units, the heaviest activity first) and an entered priority. Ties are broken by late start and then by input order. Minimum float and latest finish are the rules that do best on average in Kolisch's computations; the entered priority lets a planner impose the order of a programme. With splitting allowed in the serial scheme, an activity may be interrupted when its resources are taken and resumed when they are free, its duration being consumed in whole days; this can shorten the project where a short activity would otherwise wait for a long one, at the cost of the handovers that real work dislikes.

On networks of up to twelve activities the tool also enumerates every precedence-feasible ordering of the activities under the serial scheme, with a longest-path bound to prune the search. Kolisch proved that the serial scheme over all priority lists generates the active schedules, which contain an optimal one when the availability is constant, so the enumeration gives the exact minimum makespan and the heuristic schedule can be judged against it. The search stops when it reaches the critical path length, which no schedule can beat, and is reported as a bound only if its node cap is hit.

Reading the results

The activity table gives the critical path quantities and the demands; the resource table the availability, demand, capacity and utilization. The loading section lists the over-allocated days of the early schedule. The leveling section prints the sum of squares before and after, the moves made (which activity, from which start to which, and the F reached), the exact optimum where enumerated, and the per-resource peaks and over-allocations before and after. The resource-constrained section gives the schedule in the order the scheme placed the activities, the start and finish of each with its delay against the early start, the project duration, its extension over the critical path, the other scheme's duration, the exact optimum and the verdict against the deadline. The comparison table sets the three schedules side by side: duration, peak, over-allocated days, sum of squares and idle unit-days per resource. The Gantt chart draws the three schedules one under the other for each activity, with the float of the early schedule as a light band, and the histograms draw the three usage profiles against the availability.

Cost loading

A rate per unit-day on each resource turns the histogram into a daily cost and, summed, into the cumulative cost curve of the schedule. This is the bottom-up, time-phased budget that NASA/SP-2010-3403 §5.6.3 recommends as the performance measurement baseline: the planned value curve of earned value management, against which the Earned Value tool measures progress. The early-start and late-start curves are the two envelopes within which every feasible plan lies; the leveled and resource-constrained curves fall between them and end at the same total, since the total cost Σr rater Σi di ri,r does not depend on the schedule.

Worked example on the page

The default is an illustrative twelve-activity building project: site preparation, foundations, framing, electrical and plumbing rough-in, roofing, exterior finish, insulation, drywall, interior finish, landscaping and the final inspection, with a crew of four and two technicians. The critical path is 27 working days through the framing, the two rough-ins (which run in parallel), insulation, drywall and the interior finish. At the early schedule the roofing and the exterior finish overlap the rough-ins, so the crew is needed at six on three days and the technicians at four on one day and three on two. Leveling moves the exterior finish, the roofing and the landscaping within their float: the crew peak falls to four and the project stays at 27 days, but the two rough-ins are both critical and together need three technicians against two, which no shift can cure. The serial scheme with the minimum-float rule runs the electrical rough-in first and the plumbing after it, placing the roofing in the gap, and finishes in 30 working days; the parallel scheme and the exact enumeration give the same 30, so the three-day extension is the least possible with two technicians. With the rates of 400 and 500 per unit-day the project costs 50,000 in every schedule, and the cumulative curve of the constrained schedule lags the early-start curve by the delayed activities. Every number of the page is reproduced by the independent numpy implementation filed with the tool's references.

Limits

  • Durations and lags are whole working days and the demand of an activity is uniform over its duration; a resource is renewable (the same units are available every day), not consumable like a material quantity or a budget.
  • Leveling is the Burgess and Killebrew heuristic with the forward cascade; it is exact only where the enumeration confirms it. The resource-constrained heuristics are the standard schemes, exact only on networks small enough for the enumeration.
  • The exact enumeration assumes constant availability (Kolisch's active-schedule argument); with time-phased availability it is still a valid schedule but may not be the optimum.
  • No multiple modes (an activity done faster with more resource), no resource-dependent durations, no calendars per resource, no cost of lateness: the deadline is compared, not optimized against.
  • Activity splitting is offered in the serial scheme only and ignores the cost of interruption.



References

National Aeronautics and Space Administration (2010). NASA Schedule Management Handbook. NASA/SP-2010-3403, NASA Headquarters, Washington, DC.

U.S. Government Accountability Office (2015). Schedule Assessment Guide: Best Practices for Project Schedules. GAO-16-89G, Washington, DC.

Defense Contract Management Agency (2019). Earned Value Management System Interpretation Guide. DCMA-EA PAM 200.1, Fort Lee, VA.

U.S. Army Corps of Engineers (1995). Progress, Schedules, and Network Analysis Systems. ER 1-1-11, Washington, DC.

Burgess, A. R., and Killebrew, J. B. (1962). "Variation in Activity Level on a Cyclical Arrow Diagram." Journal of Industrial Engineering, Vol. 13, No. 2, pp. 76–83.

Kelley, J. E. (1963). "The Critical-Path Method: Resources Planning and Scheduling." In Muth, J. F., and Thompson, G. L. (eds.), Industrial Scheduling, Prentice-Hall, Englewood Cliffs, NJ, pp. 347–365.

Kelley, J. E., and Walker, M. R. (1959). "Critical-Path Planning and Scheduling." Proceedings of the Eastern Joint Computer Conference, pp. 160–173.

Kolisch, R. (1996). "Serial and Parallel Resource-Constrained Project Scheduling Methods Revisited: Theory and Computation." European Journal of Operational Research, Vol. 90, No. 2, pp. 320–333.

Kolisch, R., and Sprecher, A. (1997). "PSPLIB — A Project Scheduling Problem Library." European Journal of Operational Research, Vol. 96, No. 1, pp. 205–216.

Blazewicz, J., Lenstra, J. K., and Rinnooy Kan, A. H. G. (1983). "Scheduling Subject to Resource Constraints: Classification and Complexity." Discrete Applied Mathematics, Vol. 5, No. 1, pp. 11–24.

Project Management Institute (2011). Practice Standard for Scheduling, 2nd ed. Project Management Institute, Newtown Square, PA.

Project Management Institute (2017). A Guide to the Project Management Body of Knowledge (PMBOK Guide), 6th ed. Project Management Institute, Newtown Square, PA.

Hillier, F. S., and Lieberman, G. J. (2021). Introduction to Operations Research, 11th ed. McGraw-Hill, New York.

Worked Examples

Published examples this tool reproduces; each page lists the inputs to enter and the printed answers.

All worked examples


DISCLAIMER: The methods and calculation on aNOWysis.com are provided as means to educate the reader. There is no warranty, expessed or implied, as to the relevance or accuracy of the methods or calculations. All calculations should be checked by a qualified analyst for appropriateness and accuracy. We will not be held liable for any damages, injuries or deaths caused by using methods or calculations from this site.