Quick Links

Resource Leveling Best Practices

Resource Leveling in Microsoft Project is probably one of the most misunderstood features available, yet it is one of the most important tools in the proactive project manager’s tool kit. We will provide a very comprehensive review of resource leveling in this article to help you get over any concerns you may have about it, and to hopefully convince you that it really does help develop a very effective project schedule (that doesn’t burn out your team from over-allocation).

Resource Leveling Overview

In its most simplistic form, resource leveling ensures that the project’s resource demand does not exceed the resource availability. When it does find an instance where the demand is greater than availability, it will attempt to correct the over-allocation primarily by changing the schedule to move tasks to a date when there is available resource capacity.

resourceleveling1 resourceleveling2

Figure 1- Resource Leveling Overview (Click Image to Enlarge)

Before leveling, Johnny was over-allocated on Monday and Tuesday and is scheduled to work 16 hours on each of these two days. The leveling process moved the second task forward to the next week when Johnny has capacity to complete the task.

Pre-requisites to resource leveling

Before using the automated feature, you will need to ensure that each resource has the appropriate project allocation set and that there are no manual over-allocations.

The automated resource leveling will NOT adjust tasks where the resource assignment is above Max Units, nor will it change the assignment level to resolve task/resource level over-allocations.  Automated resource leveling will adjust only the scheduling of tasks, not the allocation of resources to tasks.

Use a Resource Usage view (with the appropriate columns exposed) to adjust the project allocation, check for manual over-allocations and view the peak assignments for resources:

  • Max Units’ is assigned at the resource level and is reset each time the schedule is loaded from the enterprise database. Therefore, if your project resource allocation is less than the enterprise resource load, this field needs to be adjusted to the appropriate project allocation each time you are working with resource leveling.
  • Assignment Units’ is set for each task assignment. This value is set when resources are assigned to a task. This field CANNOT be changed by the leveling process, so it is important to ensure that no individual assignment is greater than the max units the resource has for this project. Adjust these manually, as needed, if they do exceed max units.
  • Peak’ for each resource is calculated as a rollup of all the overlapping assignments. When the peak is greater than max units, the resource assignment will need to be changed or assignments moved to other resources.

In any resource view, over-allocated resources can be identified by the warning icon in the ‘Indicator Column’, as well as the resource name listed in red. The ‘Resource Usage’ view will highlight not only the resource itself, but also any specific assignments on the days it is over-allocated (or the summary allocation, as is the case here).


Figure 2 – Resource Usage View (Click Image to Enlarge)

The ‘Resource Graph’ view also provides a good overview of where resources are over-allocated and by how much.


Figure 3 – Resource Graph

While it is easy to spot Johnny’s over-allocation in the simplistic example above, it’s not so straightforward in a real project schedule with hundreds of tasks and dozens of resources. This is where the automated resource leveling functionality is especially effective and can help us recognize issues even in very large schedules.


Leveling Options

From the ‘Resource ribbon > Level section’, there are a number of commands related to leveling. We start with ‘Leveling Options’, which brings up the ‘Resource Leveling’ dialog.


Figure 4 -Resource Leveling Dialog

Resource Leveling should always be a deliberate exercise, so set the ‘Leveling Calculations’ to ‘Manual’ to ensure the most control over leveling and avoid issues if multiple schedules are open.

Microsoft Project will show over-allocations only when they occur at a specified level of detail.  For example, if you choose ‘Week by Week’, over-allocations will show only if the resource is booked more than 40 hours per week.  That means you could end up in a situation where a resource works 40 hours in one or two days, but doesn’t show up as over-allocated.  We recommend that you set ‘Look for overallocations on a’ to ‘Day by Day’ since this seems to be the appropriate level of detail for most organizations.

‘Level entire project’ will level all tasks regardless of date range, which is typically what we are looking for.

Set ‘Leveling order’ to ‘Priority, Standard’ to ensure that prioritized projects and tasks are scheduled appropriately and leave the remaining options unselected.


Resource Leveling

The ‘Leveling Gantt’ view is particularly effective for validating the results of leveling as the changes made by leveling are clearly visible in the Gantt area. With the ‘Leveling Gantt’ view selected, from the ‘Resource ribbon > Leveling section’, select ‘Level All’.   This first pass at leveling is based on the options for resolving over-allocations discussed above.

Figure 5

Figure 5 – Schedule Before Leveling (Click Image to Enlarge)

 Figure 6

Figure 6 – Resource Leveling Pass 1 (Click Image to Enlarge)

As shown on the screenshots above, Microsoft Project has addressed the resource over-allocation on Johnny, but in doing so has moved the project end date. We will review these results in considerable detail, as it is important that you understand how this works, because it is critical that you develop trust in this feature.

First, notice the amount of ‘Change Highlighting’ visible: all but tasks 4, 5 and 6 were impacted by leveling. The most significant change was rescheduling the Review Current Documentation task to a future date where Johnny has availability. As a result of this change, the project’s overall schedule was also impacted as all successor tasks had to also be rescheduled – which ended up moving the project end date. If this change to the end date is acceptable, we declare levelling a success, as all resources are scheduled to work within the assigned max units. If, however, the end date is not movable, we explore some of the levelling options we turned off on our initial leveling pass – most specifically the first option in the third section – ‘Level only within available slack’.

By selecting this option, we’re effectively telling Microsoft Project that the finish date is not movable, and that leveling should make use of available slack only in non-critical path tasks.

Before we do this, we must ‘Clear Leveling’, thereby taking the project back to the original state where Johnny is over allocated. Next, we select the ‘Level only within available slack’ checkbox, save the changes, and then ‘Level All’ again. This time the results are in between the original and the previous attempt. The Review Current Documentation task is still rescheduled, but not as significantly; this resolves some of the over-allocation on Johnny, but not all, and most importantly, the finish date is not changed. Better, but not perfect.

Figure 7

Figure 7 – Resource Leveling Pass 2 (Click Image to Enlarge)

In this example, the other leveling options will not improve this schedule, but we encourage you to explore these options as well as they may help with your projects.

Since we have exhausted all of the leveling options, we have the options of accepting the reduced over-allocation and asking Johnny to work overtime for the one remaining day, or of reviewing the estimates, resource assignments or task dependencies to remove the over allocation and preserve the end date. Resource leveling can do a lot for us, but as we have seen there will be instances where, given the project plan we have created, over-allocations cannot be fully resolved by the automated feature.

Setting task priorities to fine-tune resource leveling

While typically resource leveling will create a very effective schedule, there will be instances where it doesn’t give you the exact results you want. Specifically, this occurs when there are multiple independent tasks assigned to the same individual but the order of the schedule developed by Microsoft Project is different than desired. For example, you may have two tasks assigned to Johnny, one to develop Training Materials and the other to develop Operational Documentation, and resource leveling schedules the Operational Documentation first, but we would prefer that the Training Materials be completed first.  While we could accomplish the proper sequence using Dependencies, it is not recommended as this would introduce an artificial dependency based on Johnny’s availability, something we want to avoid as  future resource changes (getting Betty to do the documentation, for example) would still be impacted by this artificial dependency. Instead, we recommend setting the ‘Priority’ on the task higher than the default 500 to achieve the desired results. We enter the ‘Priority’ from the ‘Task Information’ dialog or by adding the ‘Priority’ column. With the ‘Priority’ set, the tasks within a project will be rescheduled as desired the next time we level the resources.


Figure 8 – Setting Task Priorities (Click Image to Enlarge)

Figure 9

Figure 9 – Leveled Schedule without priorities (Click Image to Enlarge)


Figure 10 – Schedule after leveling with Priorities set (Click Image to Enlarge)



As you can see from the above, resource leveling is a very powerful feature in Microsoft Project that helps you build a realistic project schedule while ensuring that resources are properly allocated.

This article has been extracted from the book Proactive PPM with Microsoft Project 2013 for Project Server and Project Online.




About Sensei Project Solutions

Sensei Project Solutions, Inc. winner of the 2014 Microsoft Project and Portfolio Management (PPM) Partner of the Year, specializes in PPM deployments with Microsoft Project, Microsoft Project Server and Microsoft Project Online.  With extensive experience on hundreds of PPM deployments and with thousands of users trained, Sensei Project Solutions brings a process-focused approach and support for industry standards and best practices to all engagements.  As a Gold certified Microsoft Partner, we offer a complete set of services to help an organization make their Microsoft PPM deployment successful, including full implementation and support services, training, pre-configured solutions, report packs, and Apps across multiple platforms.



Related Content

Webinars (watch for free now!):
Finally: The Resource Leveling Feature Explained!
Webinar: Resource Workload Leveling

Microsoft Project Do’s & Don’ts: Leveling Resources Without Analysis
PMP Prep: Resource Leveling and Resource Smoothing


Written by Kenneth Steiness

Kenneth Steiness, PMP, PMI-SP, MCP, MCT, is an industry expert on Microsoft Project and Project Online. Kenneth has worked in the project management and scheduling field for over 20 years. He has managed customer engagements in 13 countries and throughout the United States and presented at conferences world-wide for Microsoft, PMI and MPUG. Kenneth is the CEO of Sensei Project Solutions, a certified Microsoft partner specializing in project and portfolio management deployments. Sensei offers a complete set of services to help organizations succeed with their Microsoft PPM deployments. Services include full implementation and training as well as pre-configured solutions and report packs. Visit senseiprojectsolutions.com or contact info@senseiprojectsolutions.com for more information.

Share This Post
  1. Excellent article!!
    Is this procedure effective when multiple resources are assigned to a task, e.g., Review Deliverable X, or, Participate in Data Mapping Session? It is my impression that I have to manually resource level by each resource if I have multiple resources assigned to the task. Hopefully I am wrong.

  2. Cherie, you actually have two options offered to you by MS Project. If you look at the second option in the “Resolving overallocations” section of the “Leveling Options” dialog box, you have an option called “Leveling can adjust individual assignments on a task”. When you have multiple resources, i.e. multiple assignments on a task, this option let you decide if Project needs to have everyone working mostly at the same time or not. If you check that box, project could have every assignments on that task being done completely apart and therefore force a very long duration for that task, but removing any over allocation.

    As any longer explanation would not help that much, I suggest you as Kenneth did to build a simple plan that you’ll use to try and test these options.

    Good planning.


  3. Thanks Cherie, you can absolutely use this with multiple resources on a task.

    In fact, the “Leveling can adjust individual assignments on a task” option allows leveling to schedule resources on the same task at different times. Even if you don’t use this option, leveling will still work, but keeps the assignments together.

    Hope that helps.


  4. Great article and great apps as well. I’m a newby in Project and I’m setting up a project as a ToDo list in which I will later add my service projects. I’ve checked all of your instructions but still I cannot get a simple 77 task project with 2 resources to get working. Do you have any suggestions on someone that could take a look at my settings?
    Thank you in advance for helping.

  5. “The automated resource leveling will NOT adjust tasks where the resource assignment is above Max Units, nor will it change the assignment level to resolve task/resource level over-allocations. Automated resource leveling will adjust only the scheduling of tasks, not the allocation of resources to tasks.”

    Is there a simple way to achieve this type of leveling?

  6. I have the following issue with resource levelling and using Enterprise Resources:
    Enterprise Resources have an availability of 100% always.
    What if I have a task with work of 5d and I assign an Enterprise Resource to it which the Resource Manager just grants me on Mondays?
    MS Project will show a duration of 1week for the task, which is incorrect. Correct would be 5 weeks.
    How can I solve this in MS Project`?


  7. I have the following issue with resource levelling..

    For example, I created these two tasks in a test project plan with only 50% of my daily units because I need to work only 4 hours per day in this project. When I created the plan and executed leveling the project will plan my tasks correctly with 4 hours per day.
    But, if after that need change this plan and execute a new levelling, the project will not consider my options configured before and will plan all these two tasks in a same day because my capacity in instance (project server) is 100% units. Exactly what I do not want.

    How can I solve this in MS Project?



  8. Hi Araujo, when using Project Server or Project Online, your Microsoft Project desktop version will always load your resource pool with the Max Units from the server. You will then need to go to the ‘Resource Sheet’ and set Max Units there to 50% (in your case) and now leveling will do what you want it to do. The concept of Project-level Max Units does not exist (yet), so there is this small manual step before leveling resources.

  9. Hi folks – a question, please
    About 2 months ago, I created a project in MS Excel (b4 I discovered MS Project), broken down as follows
    – 7 tabs for 7 different work packages
    – tasks in work packages, each with resource and anticipated duration & dependency etc

    That sounds reasonable, but the enivedable happened – as tasks completed (and partially completed) and scope changed. I lost track on the anticipated end date. That’s when MS came to the fore. I now have transferred all tasks etc (along with work completed %) to MS Project, but I have a problem

    How can I do Resource Levelling, so as the complete portions of tasks are in the past & the levelling is effectively carried out on the “uncompleted” tasks or “uncompleted portions” of tasks? Any guidance, or tips greatly appreciated 🙂

  10. excellent Article on Resource levelling….

  11. Can you tell me how MS project assign the order to schedule the activities when the “standard” option is selected?

  12. Diana —

    Kenneth asked me if I would reply on his behalf. I assume you have selected the Standard value in the Leveling Order pick list in the Resource Leveling dialog. To be clear, Microsoft has never revealed detailed information about the built-in leveling engine in Microsoft Project and precisely how it works. As a general rule, however, there are five factors that the software uses to determine which tasks to delay and split, and which tasks to leave as scheduled. Using the Standard leveling order, the software considers these five factors:

    •Start date – tasks with later Start dates are delayed while tasks with earlier Start dates are not delayed
    •Predecessors – tasks that are not predecessors are delayed before tasks that are predecessors
    •Constraints – tasks without constraints are delayed before tasks with constraints
    •Total Slack – tasks with more Total Slack are delayed before tasks with less Total Slack
    •Priority number – tasks with a lower Priority number are delayed before tasks with a higher Priority number

    Keep in mind that Microsoft has never revealed precisely how those five factors are applied and in which order they are applied using the Standard leveling order. If you change the Leveling Order to Priority, Standard then the Priority number is given greater emphasis in the leveling operation.

    Also keep in mind that this is a simple explanation of a very complex subject. One of our colleagues, Daryl Deffler, wrote a series of in-depth articles about resource leveling for MPUG that could give you a much greater depth of explanation about the entire leveling process. If you are not an MPUG member, I would encourage you to join this excellent organization so that you can read his articles about leveling. Hope this helps.


  13. How do I calculate the number of specific trades required for the overal project?


Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

− 2 = 5

Thanks for submitting your comment!