Resource Management

Resource management assigns limited resources to project activities while preserving precedence relationships and the required project completion date.

The project network supplies the durations, earliest times, latest times, and floats used in the schedule.

Three Different Tasks

TaskQuestionWhat changes
SchedulingWhen can each activity run?Creates the initial timetable
LevelingIs any resource over its limit?Moves activities until the limit is satisfied
SmoothingCan the workload be made less uneven?Moves activities within their floats

Use the methods in this order.

  1. Schedule activities at their earliest feasible starts.
  2. Calculate resource demand in every interval.
  3. Level the schedule if demand exceeds capacity.
  4. Smooth the feasible schedule if peaks and idle periods remain.

Resource Profile

For resource rr, the demand in time period tt is

Rr,t=∑i∈AtriR_{r,t} = \sum_{i \in A_t} r_i
Here:
AtA_t
activities running during time period tt
rir_i
amount of resource rr required by activity ii
Rr,tR_{r,t}
total demand for resource rr during time period tt

Create the profile by splitting the timeline at every activity start and finish. Add the resources of the activities running in each interval.

An activity contributes from its start up to, but not including, its finish. A dummy activity contributes 00 resources.

Scheduling

  1. List every activity, duration, predecessor, and resource requirement.
  2. Apply the forward and backward passes to the project network.
  3. Place every activity at its earliest start.
  4. Calculate the resource profile.
  5. Compare every demand with the available capacity.

Activities with positive total float are candidates for movement. Critical activities have zero total float and normally remain fixed.

Leveling

Leveling removes over-allocation. The resource capacity is a ceiling that no interval may cross.

Quick Leveling Method

  1. Find the first interval where demand exceeds capacity.
  2. List the activities running in that interval.
  3. Remove critical activities from the candidate list.
  4. Choose a candidate with enough float to move.
  5. Prefer the move that removes the most excess with the least loss of float.
  6. Move the activity to its latest feasible start.
  7. Recalculate the affected intervals.
  8. Repeat until no interval exceeds capacity.

Check these 3 conditions after every move.

  • Precedence
    Every predecessor still finishes before the activity starts.
  • Capacity
    No resource demand exceeds its available capacity.
  • Completion
    The new project finish is recorded.

Leveling may extend the project when available float is insufficient. A move within existing float does not extend the project.

Smoothing

Smoothing reduces variation in a schedule that already satisfies capacity. It does not change activity durations, precedence relationships, or the project completion date.

Think of the resource profile as bars.

  • Leveling removes bars above a fixed ceiling.
  • Smoothing moves bars away from peaks and into valleys.

The goal is not a perfectly constant profile. The goal is fewer avoidable peaks and idle intervals.

Quick Smoothing Method

  1. Start with a feasible, leveled schedule.
  2. Find a high-demand interval and a nearby low-demand interval.
  3. Find an activity crossing the high-demand interval with positive float.
  4. Shift it toward the low-demand interval.
  5. Keep the shift if the project finish is unchanged and the profile improves.
  6. Repeat until no useful shift remains.

Worked Example

Resource RR has a capacity of 33 units per time period.

ActivityDurationPredecessorResource RR
AA4none1
BB3none1
CC2AA1
DD0BB0
EE5BB2
FF3CC, DD3
GG4EE0

The project duration is 1212. The critical path is B→E→GB \to E \to G.

Prepare the earliest-start schedule. Level the resource use. Then smooth the leveled schedule.

Solution Reveal Hide

1. Earliest-Start Schedule

ActivityStartFinishFloat
AA043
BB030
CC463
DD336
EE380
FF693
GG8120

The resource profile is:

IntervalRunning activitiesDemand
00–33AA, BB22
33–44AA, EE33
44–66CC, EE33
66–88EE, FF55
88–99FF33
99–1212none00

The interval 66–88 is overloaded. Its demand is 55, but capacity is 33.

2. Level the Schedule

Only EE and FF run during the overload. EE is critical. FF has float 33.

Move FF from 66–99 to 99–$12.

The new profile is:

IntervalRunning activitiesDemand
00–33AA, BB22
33–44AA, EE33
44–66CC, EE33
66–88EE22
88–99none00
99–1212FF33

No interval exceeds capacity. The project still finishes at 1212. This is leveling.

3. Smooth the Leveled Schedule

The leveled profile still has an empty interval at 88–99. Activity AA has float 33.

Move AA from 00–44 to 33–7.Itssuccessor7. Its successor Cmovesfrommoves from4––6toto7––9.

The smoothed profile is:

IntervalRunning activitiesDemand
00–33BB11
33–77AA, EE33
77–88CC, EE33
88–99CC11
99–1212FF33

The project still finishes at 1212. Capacity is still satisfied. The empty interval is gone. This is smoothing.

Wolfram Mathematica notebooks

A companion notebook for this note. Open it in Mathematica and evaluate the cells to reproduce the worked example.

The summary notebook defines every function used in this module, with documentation and no examples, as a starting point for your own problems.

Written by November 3, 2026 6 min read
Was this helpful?