Resource Loading: The Chart Under the Gantt Chart

A resource loading chart is the histogram that sits under a Gantt chart: for each day of the plan, how many people that day needs. It is the least glamorous drawing in project management and the only one that ever told me anything I did not already know from looking at the bars.

Here is one for a 21-task house renovation, before and after the schedule was made to fit inside the crew that actually exists. The two panels hold exactly the same amount of work.

Two resource loading charts of the same renovation: before leveling the daily crew count peaks at 5 and exceeds the cap of 3 on 14 days; after leveling it never exceeds 3.
Same 155 crew-days under both panels. Leveling changes the shape of the histogram, not its area.

How the chart is built

The arithmetic is embarrassingly simple, which is part of why the chart is trustworthy. Take every task. For each one you need three things: when it starts, how long it runs, and how many people per day it needs while it runs. Then walk the calendar one working day at a time and add up the people wanted by every task that is live that day.

That is the whole method. No optimisation, no assumptions, no judgement. Whatever schedule you feed it — the critical path dates, a levelled schedule, dates somebody typed in by hand — the histogram is a direct consequence of it. Which is exactly why it is useful: it cannot flatter the plan.

Two details worth getting right. Do it per resource pool, not for the whole project — “twelve people on site” is meaningless if seven of them are electricians and you needed bricklayers. And build it in the same working-day calendar as the schedule, or the peaks land on the wrong days. On this plan I count only general crew, because the electricians, plumbers, painters and the excavator never once exceed what exists. Four of the five pools are fine. The chart is about the fifth.

What the top panel is telling you

The top panel is the loading under the unconstrained critical path schedule — every task at its earliest possible start, which is what the forward pass hands you and what most Gantt charts show by default.

It peaks at five. The job has three. It is over capacity on fourteen separate working days — nine days wanting four people and five days wanting five. Every one of those days looks perfectly healthy on the Gantt chart, because the bars are only drawing dependencies and nothing in the dependency list forbids framing, rough electrical, rough plumbing and windows from running the same week.

Look at the gaps too. Ten working days in that panel need zero general crew — four during excavation, when the machine is working and nobody else can start, and five near the end while the painters and electricians finish off. A crew that is over-committed for fourteen days and idle for ten is not a staffing problem, it is a sequencing problem, and you cannot see either one on the bars.

The area is the number nobody looks at

Add up every bar in the top panel and you get 155 crew-days. Add up every bar in the bottom panel — the schedule after leveling, which finishes a week later and never breaches three — and you get 155 crew-days.

Identical, and it has to be. Leveling moves when work happens; it does not delete any of it. That sounds obvious written down and it is routinely forgotten in practice, usually in the form of somebody hoping that a smoother chart means a cheaper job. It does not. The labour bill is the area, the area is fixed by the task list, and the only things that change it are doing less work or doing it a different way.

What does change is the shape, and the shape is what you can actually staff. Before: 24 days at three crew, nine at four, five at five, eleven at two, ten at nothing. After: 39 days at three, eighteen at two, two at one, five at nothing. Fewer idle days, no impossible ones, and a project that runs 63 working days instead of 58.

Reading it in the tools you already have

Microsoft Project calls this the Resource Graph, and its documentation for viewing resource workloads describes the convention almost everyone has settled on: blue bars for work at or below the resource’s maximum, red bars where it is overallocated. Primavera P6 users know the same picture as resource usage histograms and the “resource loaded schedule” that has to be produced before anyone will look at them. I used the same colours in the chart above deliberately — it is the one visual convention in this field that is genuinely standard.

The catch in every one of them is the same. They will draw the red for you. Turning the red into a plan you can staff is a separate button, and the answer that button gives is where the disagreement between tools starts.

Loading in a spreadsheet, if that is where your plan lives

You do not need scheduling software to get this chart. If your plan is already a Gantt template with a crew-per-day column, the loading row is one SUMIFS along the bottom of the day grid: for each day column, sum the crew of every task whose start is on or before that day and whose finish is on or after it, filtered to one resource. Copy it across, add a bar chart, done in ten minutes.

Add a row underneath comparing it to your headcount and colour the negatives red. That is a resource loading chart, and it is the single highest-value thing you can add to a spreadsheet schedule, because it converts “this feels tight” into “we are four people short on the 14th”.

What loading does not tell you

It tells you where the problem is. It does not tell you what to do about it, and the gap between those two is bigger than it looks.

The histogram says day 31 wants five people. It does not say which of the tasks running that day should move, or how far, or what moving it costs downstream. Some of those tasks have slack and some do not, and the ones that look safest to move are frequently not — the float a task has on the network and the room it actually has in a crew-constrained schedule are different quantities, and the chart shows neither. Fixing fourteen overloaded days by eye means making eleven decisions that interact, which is the point at which people stop and reach for a tool.

The free scheduler draws the loading rows under the bars and will also solve the second half: give it the same workbook with a resources sheet and it returns the schedule that fits, proved optimal rather than approximated. But the honest order is the one in this post. Draw the histogram first. Half the time it turns out four of your five pools were never the problem, and the argument you were about to have was about the wrong trade.

And once you have the picture, the decision it sets up is a genuine fork: live inside your headcount and accept the date that falls out, or hold the date and find the people. Those are the two ends of one curve, and I measured both of them on this same plan in the piece on leveling versus smoothing.

Tradeline Supply
Things that I use, like, and am affiliated with:
Mint Mobile offers great cell phone service for $15 flat, get $15 off using the link. Get discounted phones with service activation and no contract.
I never spend money before I check Mr Rebates or Rakuten to get cashbacks, rebates, discounts, coupons or cheaper gift cards.

Leave a Reply