How to use Microsoft Project 2010's rule-based resource leveling

Learn how to set up your project schedule to use a manual rule-based resource leveling technique in Microsoft Project 2010 that minimizes resource leveling headaches.

In my TechRepublic post about Microsoft Project resource leveling myths, automatic resource leveling is the first misconception I addressed. Automatic resource leveling is usually associated with warnings and caveats because the scheduling engine can drastically change the project manager's schedule. Since Microsoft Project 2010's algorithm uses heuristics to evaluate task order, resource constraints, and task priorities, the tool will optimize the schedule based on the data in the schedule. Data driven schedules are a good start, however, the project manager needs to review the schedule in detail to ensure the automatic schedule makes sense.

In Microsoft Project, both automatic and manual leveling is still heuristic based. By setting the level options to manual, the project schedule will not adjust based on resource assignments until the project manager uses Microsoft Project's leveling tools. The automatic setting in Microsoft Project will adjust task dates in real-time when a resource is entered against a task.

In this tutorial, I show how to set up your schedule to use a manual rule-based resource leveling technique that maximizes the tool's benefits while minimizing the resource leveling headaches. This approach will work independent of the automatic or manual resource leveling options.

How to level without extending the end date

If you want to automatically level the resources without moving the project end date, try the Level Only Within Available Slack option. Leveling within slack will look for opportunities to level the project within the available slack or float within the given project schedule. Microsoft Project may not be able to level the entire schedule without moving the end date because the project may not have enough slack in the schedule.

To level within slack:

  1. Click the Resources Tab and select Leveling Options.
  2. Check the Level Only Within Available Slack option (Figure A).
  3. Click OK.
  4. Click the Level All button.
Figure A

Level Only Within Available Slack option (Click the image to enlarge.)

The project schedule will adjust the dates based on the leveling options. If the project is not fully leveled, you will need to level again by removing the Level Only Within Available Slack option. If the Automatic leveling calculation option is selected, unchecking the Level Only Within Available Slack option and clicking OK will level the plan automatically.

Set up Microsoft Project for successful rule-based resource leveling

In order to use rule-based leveling effectively, the schedule needs to follow several key assumptions, which include:

  • Task hierarchy determines task priority;
  • Tasks are defined so only one resource is assigned to a task;
  • Avoid splitting tasks.

Instead of setting different priority values at the task level, this approach assumes the tasks that are higher in the task hierarchy should be worked first. Project schedules tend to have a top-down flow that drive delivery. There are cases where a task lower in the hierarchy could be a predecessor for a higher level task; however, the schedule should be reviewed for these situations and adjusted accordingly. Tasks are also defined so only one resource is working on a specific task; the benefit is better visibility and accountability to specific tasks and individual resources. This approach also avoids splitting tasks because the project schedule assumes that when a resource starts a task the assigned resource will finish the task before starting the next one.

To level the project schedule:

  1. Confirm tasks are in priority order in the WBS hierarchy.
  2. Confirm only one resource is assigned to each task.
  3. In Microsoft Project, select the Resource menu tab and select Leveling Options.
  4. Set the Leveling Order to Id Only (Figure B).
  5. Clear the Leveling Can Adjust Individual Assignments On A Task checkbox.
  6. Clear the Leveling Can Create Splits In Remaining Work checkbox.
  7. Click the Level All button.

The project schedule will adjust the dates based on the leveling options.

Figure B

Resource level by Id options (Click the image to enlarge.)
The end result is a better resource leveled schedule that follows a logical flow. Each resource is scheduled based on priority and availability without splitting tasks (Figure C). Figure C

Resource level by Id (Click the image to enlarge.)
Compared to the Standard approach to leveling (Figure D), the Resource Level by Id solution makes more sense. In Figure C, task 17 Update Website completed the Advertising set of tasks. In Figure D, the same task is scheduled at a different date because Sarah was assigned task 24 and 25 first by the algorithm. Figure D

Resource level by Standard options (Click the image to enlarge.)

When completing a work package, there is a natural flow to completing sub-tasks that align with higher level deliverables. In both leveling examples, the duration and project end date remained the same, but the daily order of tasks was different. In the Standard leveling example, the Microsoft Project algorithm determined assignment priority. In the Leveling by Id example, Microsoft Project calculated the end dates based on the task priority.

I encourage you to take a small project schedule and test the different leveling options using in-slack, Standard, and Level by Id Only options. By starting with a small schedule, you'll see the nuances that impact a project schedule's end dates as well as the intermittent tasks.

Stay tuned

In my next TechRepublic post, I'll demonstrate how to level a project schedule independent of Microsoft Project's rule-based engine.

By Andrew Makar

Dr. Andrew Makar is an IT program manager and is the author of How To Use Microsoft Project and Project Management Interview Questions Made Easy. For more project management advice visit