Home › Guides › Resource Leveling: Fixing an Over-Allocated Schedule

Resource Leveling: Fixing an Over-Allocated Schedule

A Gantt chart can be perfectly valid and completely impossible at the same time. The bars line up, the dependencies are clean, the finish date looks great, and yet on Tuesday it quietly assumes one person will do three days of work in a single day. That is over-allocation, and resource leveling is how you fix it. It is the step most people skip, and it is why so many "realistic" plans fall apart in week two.

By Uttam Regmi

Leveling pulls a person's workload back under their daily capacity:
Over-allocatedcapacityLeveledcapacity

What over-allocation is

Over-allocation happens when a resource, usually a person, is assigned more work in a period than they have capacity to do. Two tasks scheduled in parallel, each needing that person full time, means 200% allocation: physically impossible, but nothing on a basic Gantt chart stops you drawing it. The schedule looks fine because bars can overlap freely; only the people cannot.

Why a valid schedule can be impossible

A Gantt chart checks dependencies, not human limits. It will happily place three of Sam's tasks on the same afternoon, because as far as the dependency logic is concerned they are allowed to run at once. The plan is logically valid and practically fiction. Resource leveling is the process of making the plan respect the fact that a person can only do one thing at a time.

Week 1-8Phase 1Task ATask BPhase 2Task CMilestoneToday
Overlapping bars are fine for the logic but impossible for the one person assigned to all of them.

Leveling vs smoothing

Two related fixes, with a key difference. Resource leveling resolves over-allocation even if it has to push the finish date out, correctness comes first. Resource smoothing evens out the workload but refuses to move the finish date, so it only uses available float. Leveling can make you later but always feasible; smoothing keeps the date but only works if there is enough slack to absorb the peaks.

Side by side

 Resource levelingResource smoothing
Goalremove over-allocationeven out the workload
Finish datemay move laterfixed
Useswhatever it takesfloat only
Guarantees feasibilityyesonly if float is enough

How to level a schedule

You can level by hand once you can see the overload:

  1. Find the over-allocated periods, where one person's assigned work exceeds their capacity.
  2. Spend float first: delay a parallel task that has slack until the person is free, this costs you nothing.
  3. If float runs out, sequence the tasks, do them one after another instead of at once, which may push the finish out.
  4. Or add capacity: assign a second person, if the task can be split.
  5. Re-check the critical path afterwards, leveling can change it.

A worked example

Worked example: one designer, two tasks. Sam is assigned "Design homepage" and "Design checkout", both 3 days, both scheduled for the same Monday to Wednesday. That is 200% allocation, impossible.
  • If "Design checkout" has float: slide it to Thursday to Saturday. Sam is now at 100%, and because you spent float, the finish date does not move, that is smoothing.
  • If it has no float: the two must run back to back anyway, so the project finishes three days later, that is leveling.
Same overload, two outcomes, decided entirely by whether the slack was there to absorb it.

Float is the currency

Notice that float is what you spend when you level. Tasks with slack can be shifted to relieve an overload for free; tasks on the critical path have no float, so relieving them always costs finish date. This is why float and resource leveling are two sides of one coin: float tells you where you have room to move work, and leveling is the act of moving it.

The short version

A schedule that passes every dependency check can still ask one person to be in two places at once, that is over-allocation. Resource leveling fixes it by shifting or sequencing work, spending float first and moving the finish date only when it must. Smoothing does the same but refuses to move the date, so it relies on float alone. Build the plan in the gantts.app editor, then check that no one is asked to do the impossible.

A valid schedule is not always a possible one. Spend float to relieve over-allocation for free; when the float runs out, leveling costs finish date, which is the honest price of a plan people can actually deliver.

Templates that use this

Frequently asked questions

What is resource over-allocation?

Over-allocation is when a resource, usually a person, is assigned more work in a period than they can do, for example two full-time tasks on the same day (200% allocation). A basic Gantt chart allows it because bars can overlap, even though the person cannot.

What is the difference between resource leveling and smoothing?

Resource leveling removes over-allocation even if the finish date has to move later. Resource smoothing evens out the workload but keeps the finish date fixed, so it only uses available float. Leveling guarantees a feasible plan; smoothing only works when there is enough slack.

Does resource leveling change the finish date?

It can. If over-allocated tasks have float, leveling shifts them into the slack and the finish date holds. If they do not, the tasks must be sequenced, which pushes the finish date out. Leveling prioritises a feasible plan over the original date.

How do I fix an over-allocated schedule?

Find the overloaded periods, then spend float first by delaying parallel tasks that have slack. If float runs out, sequence the tasks one after another, or add a second resource if the task can be split. Re-check the critical path afterwards, because leveling can change it.

How is float related to resource leveling?

Float is what you spend when leveling. Tasks with slack can be moved to relieve an overload without delaying the project; critical-path tasks have no float, so relieving them always costs finish date. Float tells you where there is room to move work.

Written by Uttam Regmi, founder of Synth88 Labs. An auditor by profession and a builder by passion, he creates privacy-first web and mobile apps from Dubai, UAE, gantts.app among them. More about the maker · LinkedIn · Medium · GitHub

Try it on your own plan

gantts.app is a free Gantt chart maker that runs in your browser. No account, no download, no watermark on exports.

Open the free editor