# Probabilistic Resource Leveling

In project management, resource leveling is defined in the Project Management Body of Knowledge (PMBOK Guide)  as “A technique in which start and finish dates are adjusted based on resource constraints with the goal of balancing demand for resources with the available supply.”  There are two ways to perform a resource leveling as part of quantitative risk analysis:

• during each iteration of a Monte Carlo simulation
• a deterministic resource leveling generated using the risk analysis.

If we perform resource leveling during each iteration of Monte Carlo simulation, we will generate a statistical distribution for resource allocations during each time interval. This allocation would take into an account all risks and uncertainties in project schedule. Then we would choose a specific percentile of these statistical distributions to use for allocating resources. For example, after the risk analysis we would decide to manage the schedule using P70 value for project finish time. This same P70 percentile would be used for resource allocation. The drawback to this approach is that resource leveling during each iteration of Monte Carlo simulation may lead to confusing results. For example, sometimes there would be resource over-allocation, even if the resource leveling algorithm was set to ensure no overallocation during each iteration of Monte Carlo simulation. This is because, when we show the results for a particular percentile of work or units, the may represent an overallocation. Moreover, resource leveling during each iteration of a Monte Carlo simulation requires a lot of computer memory and computing resources. Because of these issues, we normally recommend performing deterministic resource leveling using the results of a risk analysis. It is just simpler, faster and less confusing. The exception would be in cases where your schedule has many critical risks or significant uncertainties.

Drawbacks of Risk-Based Resource Leveling

The main advantage of resource leveling as part of project risk analysis is that we could ensure that we always have resources to deal with risks and uncertainties in a project schedule. However, this allocation may not be always optimal. The reason for this is that leveling using the results of risk analysis must account for multiple scenarios that traditional leveling algorithms are not designed to deal with. You can imaging in a case where we have a team scheduled to paint a room. In one iteration, the paint does not arrive on time and the activity is delayed, in another the paint arrives on time, but the room is not ready for painting yet, and in another scenario, the paint and room are ready, but the crew is delayed. Resource allocation can handle one scenario, but the risk analysis provides only statistical results of all of these possible scenarios combined and may not provide a particularly good basis for allocating resources. One of the solutions is to not predefine resource allocations, but to use agile or an incremental approach to resource allocation. With this approach, resource allocation can be adjusted based on actual project performance. Another approach is to periodically run a project risk analysis with resource leveling during project execution and resource allocation can be updated accordingly.