Resource Leveling
In project management, resource leveling is defined in A Guide to the Project Management Body of Knowledge (PMBOK Guide) as "A technique in which start and finish dates are adjusted based on resource limitation with the goal of balancing demand for resources with the available supply".
When performing project planning activities, the planner will attempt to schedule certain tasks simultaneously. When more resources such as machines or people are needed than are available, or perhaps a specific person is needed in both tasks, the tasks will have to be rescheduled concurrently or even sequentially to manage the constraint. Project planning resource leveling is the process of resolving these conflicts. It can also be used to balance the workload of primary resources over the course of the project[s], usually at the expense of one of the traditional triple constraints (time, cost, scope).
Resource leveling is also useful in the world of maintenance management. Many organizations have maintenance backlogs. These backlogs consist of work orders. In a "planned state" these work orders have estimates such as 2 electricians for 8 hours. These work orders have other attributes such as report date, priority, asset operational requirements, and safety concerns. These same organizations have a need to create weekly schedules. Resource-leveling can take the "work demand" and balance it against the resource pool availability for the given week. The goal is to create this weekly schedule in advance of performing the work. Without resource-leveling the organization (planner, scheduler, supervisor) is most likely performing subjective selection. For the most part, when it comes to maintenance scheduling, there is less, if any, task interdependence, and therefore less need to calculate critical path and total float.
Resource leveling must not be confused with resource smoothing. Although resource leveling and resource smoothing are both resource optimization techniques used in project management, they differ in their primary goals and how they impact the project schedule. Resource leveling focuses on optimizing resource availability and potentially extending the project timeline to accommodate resource constraints. Resource smoothing, on the other hand, focusses on removing/reducing fluctuating resource requirements within a resources availability.
Resource leveling may be carried out manually, however this is often quite complicated and unrealistic.
Safran has a highly comprehensive, configurable, integrated Resource Leveling tool that, in its simplest/default form, attempts to postpone/place activities within their Total Float in order to reduce resource requirements to fit the resource’s availability.
In order to carry out resource leveling there are two basic pre-requisites. You obviously need to define one or more resources and additionally specify an Availability for each resource.
The result of the resource level process, i.e. the modified start and finish dates for the activity, are stored in the fields ‘Early Start Leveled’ and ‘Early Finished Leveled’ in addition to a number of fields containing meta data from the process.
To illustrate the concept of resource levelling consider the following simple example:
The project has four activities each with a 5-day duration and a 40 ‘hour’ manpower requirement. The activities must be completed during a 5-week period in order to meet the finish milestone. The resource’s availability is 40 hours per week and is shown by the horizontal red line in the histogram. The manhour histogram illustrates that the current schedule dates would require 160 manhours in week 23 which is a major overload and not realistic/possible.
If we switch on the Resource leveler with its default configuration, you’ll notice that Safran has ‘postponed/placed’ activities 00020 – 00040 within their total float which will then result in a resource requirement of 40 manhours per week which is within the resources availability.
The resource leveling process does not have any effect on the ‘Live’ plan set (Early Start/Early Finish) as the process has its own schedule dates (Early Start Leveled/Early Finish Leveled).
If the suggested resource leveled schedule is acceptable, the Live plan might be modified by copying the Early Start Leveled dates for the leveled activities to the relevant Start No Earlier date which would align the Live plan with the Leveled schedule.
Using the Resource Leveler
In order to use the Resource Leveler there are a few pre-requisites.
-
To start with, you need to have one or more resources defined.
-
Next, you have to define the availability of the resource(s).
-
Finally, you need to switch the resource leveler on as this is initially switched off.
It can however be switched on/off at any time and is most often switched on when doing a leveling exercise and then switched off.
When switched off the ‘leveled fields’ (ie. ES/EF/FF/TF Leveled) are frozen with their latest values.
The 'Resource Leveling' facilities are located on the PROJECT ribbon as shown below:
The resource leveler is highly configurable, however it does have a set of ‘sensible defaults’ so that it will work without the need to re-configure.
The leveling options have to do with which type of leveling to carry out, either Time or Resource limited, and which availability basis to use. The latter is only relevant when doing a leveling exercise for a project group.
A filter may be applied to limit the leveling exercise to certain/or a group of activities.
You may also specify a priority, or order, in which activities or groups of activities are leveled first, second, third etc.
The default Resource Leveling Options for a single project and project group respectively are shown below:
Note that, when working with Project Groups, the leveling options also allows you to choose which availability to use when leveling either project group or project group plus the member projects availabilities.
Resource Availabilities
Details of the availability for all required resources are entered separately from the resource data.
To access the resource availability register press Available Resources on the Resource Leveling tab:
The Available Resources panel will open:
An availability entry consists of a resource code, a timespan, a quantity and (optionally) a calendar. If a calendar is specified, the resource will only be available on working days/periods. If a calendar is not specified the resource will be considered as available at all times.
Fields | Description |
---|---|
Resource | The resource code (Short Name) for which availability is entered. Select from the drop-down list. |
Available From | A Date field. Available from. Optional. If missing, Safran Project assumes availability from the Project start date. |
Available Until | A Date field. Available Until. Optional. If missing, Safran Project assumes availability until the Project end date. |
QTY (per Day) or Manpower | QTY: Decimal field. The maximum quantity available between from-date and until-date. Manpower: Decimal field. Enter availability as Manpower. Safran Project uses the man-hours per day from the specified calendar to compute QTY if manpower is entered and vice versa. |
Calendar | Uses a Calendar to configure more complex resource availability if resources are unavailable according to a calendar, such as during vacations and holidays. If no value is entered, Safran Project uses a default work pattern with seven working days per week. Work patterns available are those defined for the calendar associated with the current project. |
The resource code must correspond to the resources defined in the resource set for the project.
A resource availability can be entered either in terms of QTY per day or as manpower. You can toggle between these two modes by clicking the QTY/Manpower mode button in the dialog window.
If manpower mode is selected the manpower value entered will internally re-calculate this to QTY based on the 'Hours/day' value entered for the calendar selected for the resource availability.
Adding a New Resource Availability Record
Press the New button in the window to add a new resource availability. Safran Project enters a new line into the availability window allowing you to enter the availability characteristics..
Deleting a Resource Availability Record
Select the resource availability record to delete and press the Delete button in the window. Safran Project prompts you to confirm the deletion of the resource availability record.
You cannot delete the entire availability table in one operation, as this must be done by deleting row-by-row.
The resource availability content may be modified at any time.
Exporting/Importing resource availabilities
The resource availability table may be exported/imported to a tab separated text file by using the Import/Export buttons.
Complex resource availabilities
Complex resource availabilities may be modeled by entering multiple resource availability records for a single resource category.
Note in the example above that an additional 8 hours of work per day has been added for week ending with 22.6.25.
Below, the red line in the histogram depicts the resulting availability. At this moment the resource leveler has been switched off to focus on the extra availability.
When the resource leveler is switched on again, Safran takes the extra availability into consideration allowing activity 00030 and 00040 to take place in parallel in the same week.
The availability line is available in all Safran histograms, both in the Barchart editor Resources (Availabilities Visible) and Histogram sub-panels (Availability), as well as in the Histogram & S-Curve report (Entries/Availability Profile On).
Note that the Barchart editor Resources subpanel will always consider all available resources/categories in the project when presenting availability.
Both the Barchart editor Histogram and the Histogram & S-Curve report have resource filter capabilities that allows you to select activities with specific resources which will in turn limit the availability presented to contain only the filtered resource(s).
Resource leveling information fields
As a part of the resource levelling system a number of resource-leveling specific fields are made available that may also help to understand what actions the leveling process has taken.
The fields are available as columns in the barchart editor and may also be used in filter expressions as well as sorting elements as shown in the snapshots below:
Leveling fields are available as columns in the Barchart Editor.
Leveling fields are also available for use in filters.
Leveling fields may also be used for sorting.
Leveling information fields and their descriptions:
Fields | Description |
---|---|
Leveling Selection | Yes if activity has been selected to be leveled. By default all activities are selected, if a filter is applied only selected activities will be designated Yes. |
Leveled Activities | Yes for activities that are eligible for leveling, ie. selected, containing a resource and a corresponding availability. |
Leveled and Delayed | Yes for activities that have been leveled and delayed compared to their Early Start date. |
Leveled and Overloaded | Yes for activities that have been leveled and exceeded a resources availability. |
Leveled and Placed | Yes for activities that have been leveled and placed at their Earlt Start date. |
Leveling Order | Order number in which activity has been leveled. |
Summary
You’ll find the ‘Summary’ function quite useful when working with the resource leveler as it provides a summarized overview of what the leveler has done giving insight as to which activities have been affected and how they have been treated as a result of the process.
It also provides filtering capabilities easing access to leveled activities. It also helps to
The Summary tools may be accessed by pressing the Summary icon on the Resource Leveling section of the Project ribbon:
The summary function groups activities into five different categories according to which actions have taken place additionally counting how many activities there are in each group as shown below:
Fields | Description |
---|---|
Activities Selected | Counts the number of activities included in the resource leveling process. If a leveling filter is applied/active this is reflected. If no filter is active this reflects the total number of activities. |
Activities Leveled | Counts the number of activities that have resources with availability and thus will run when resource leveling is on. |
Placed (No delay / no overload) | Counts the number of activities that have been identified so that analysis ES / EC will be calculated without overload. |
Delayed (No Overload) | Counts the number of activities that have been placed without overload but have been delayed. |
Overloaded | Counts the number of activities that have beenboth delayed and overloaded. |
Leveling Log | Shows detailed information of the leveling process for each activity. |
List
By Pressing the ‘List’ button for a specific category, a new window appears showing the activities in the group. If you If you press the 'Goto' button or double-click on an activity in the list, Safran will jump to/set focus on the activity in the barchart editor.
Set Active Filter
By pressing the ‘Set Active Filter’ button for a specific category, the barchart editor will use this as a filter and limit the editor to show only the activities for the group.
The ‘Set Active Filter’ button provides even more powerful filtering as it applies the relevant group/list of activities as a filter for the barchart editor.
Note that this will however, replace/override any current filter applied.
By selecting the ‘Set Active Filter’ button for the ‘Placed (no delay/no overload)’ category shown above, Safran will enter this as a filter statement that can be viewed in the ‘Filter’ dropdown.
By pressing the ‘Reset Filter' button, any ‘Active Filter’ is removed and the Barchart Editor reverts to its previous state.
By pressing the ‘Reset Filter’ button any active resource leveling filter will be removed setting the filter to ‘no expression’ presenting all activities.
Prioritizing activities
You can control the order in which activities are considered for leveling by using the Priority function found in the Resource Leveling section. Use the drag and drop technique to select the fields you would like to order by.
The Priority function specifies the order in which activities appear in the leveling list. It does not specify the order in which the leveling of activities will necessarily be performed.
The order in which they are actually levelled will comply with network logic. Ie. your network logic will always have first/highest 'priority'.
The leveling process maintains a list, called the leveling queue, of activities that may currently be processed. The list is maintained as follows:
- An activity is added when all its logical predecessors have been leveled.
- At the start of the level process, the queue contains only the logical start activities.
- At each stage, the top activity in the queue is removed and leveled/placed. Any new activities with no outstanding predecessors are then added to the queue.
The snapshot below helps clarify the Priority concept:
We have defined/added the field 'Job Priority' to identify Low/Medium/High priority activities, further we have added the field in the Leveling Priority list.
The column 'Leveling Order' contains the order in which the activities are leveled.
Note that even though activity 00020 has been given 'High' priory, it's leveling order is still '3' as it's predecessor must be leveled first in order that the activity is entered into to the leveling list.
Activity 00030 is however leveled first as it's priority is higher (Medium) than both activities 00010 and 00040 (Low).
Filter
By default all activities, constraints and resource requirements are selected by the leveling process.
It is often unnecessary to involve all the different resources or activities in a project at the same time.
Leveling only a few resources can be useful when the resources in question have an availability which cannot be increased in any circumstances, while timescales and targets are of crucial importance to the project as a whole.
It may also be useful to level only a few activities - for example, all those which are the responsibility of a certain manager.
You can select which activities and resource requirements are to be considered by the placement phase of the scheduler. Selection means that the resource requirements cause the availabilities to be decremented, and activity positions may be influenced by the availabilities. Activities and requirements which are selected to be considered in the placement phase are called "schedulable". Changes made during the schedule to fields in the selection condition do not affect selection.
You'll find the Filter icon on the Resource leveling section as shown below:
You can use this filter in the usual manner and base the filter on any Safran system or user-defined field.
You can also easily filter on one or more specific resources as shown below:
The barchart will still show all activities/honor any applied filter, however you'll notice that the 'Leveling Selection' field identifies which activities have been included in the leveling process:
Resource leveling process
Please note that only the activities that have resources that have been defined and have available units will leveled. During the resource leveling process, two main steps take place:
- The process starts with all the activities in the project schedule. These activities will be placed in a leveling queue and sorted by sort criteria.
- After leveling each activity, a forward pass will be run to the first successor. The results will be analyzed, sorted, and placed in a leveling queue.
Resource leveling options
There are two different types of resource leveling, a Time-limited and a Resource-limited.
The time-limited schedule aims to have the project finished on time even though some activities will be in overload. With time-limited leveling no activity may be placed later than its late date as this would violate the project end date. Thus the scheduler will keep trying a delay of one time unit until the total float has been used up.
The resource-limited schedule delays activities until enough resources are available to complete them and no overloads are caused, even if this means the project end date must be postponed.
After leveling you can see from the overloads what extra resources will be needed to finish on time.
By clicking the small arrow on the lower right corner of the resource leveling area in the PROJECT ribbon, you will find the two main options: Time Limit and Resource Limit.
In the Time-Limited example below you'll notice that the leveler has been able to place and delay the activities within their Total Float and Resource availability thus still meeting the final milestone.
If we move the final milestone two weeks earlier the leveler is no longer capable of moving the activities within their total float and still honor the resource availability. The resulting resource requirement now illustrates the extra amount of resource required in order to meet the modified finish milestone.
Once the available resources have been 'consumed', the leveler has no more resources available to work with and the process stops. In the example below you'll therefore notice that activities 00020 and 00030 have not been Leveled (Leveled Activities=No).
If we choose the Resource limited option/method with it's 'default' sub-options the, leveling process will disregard the 'time-limited' requirement and delay activities in order to match the resource requirement with the availability. In the example below you'll see that the leveler has delayed activities 00010 and 00020 beyond the final milestone in order to stay within the resource availability profile
Both options will help you find the location of available resources for all activities that are selected for resource-leveling.
The only difference between Time and Resource limit is that Time-Limit will set the Maximum Delay to the activities' Total Float.
At the same time, the Resource Limit allows manual input of Maximum delay. Maximum delay is the number of time units permitted for each activity to be delayed.
The ‘At Overload’ comes with two different options, ‘Place As Early As Possible’ and ‘Place with Minimum Overload,’ available for both Time and Resource Limits.
Place As Early As Possible: Moves to the earliest possible date and does not consider the overload's size.
Place with Minimum overload: Move the activity to the minimum possible overload date.
Maximum Overloaded Activities: The number of overloaded activities can be accepted before resource leveling is canceled.