Documentation / Tasks / Summary tasks, indenting & the WBS

Summary tasks, indenting & the WBS

Indent a task and the one above it becomes a summary task — a phase heading that adds up its children’s dates, duration, progress and costs for you. This page covers how to build that structure, what the WBS numbers mean, and exactly which fields roll up.

A flat list of forty tasks is hard to read and impossible to report on. Grouping them into phases — “Strip out”, “First fix”, “Fit-out” — gives you a plan you can talk about at two levels: the summary line for the client, the detail underneath for the trades. In Gantt Excel that structure is built entirely by indenting, and everything else follows from it.

01 What a summary task actually is

There is no “turn this into a summary task” command, and no tickbox marking a row as one. A task is a parent (summary) task for one reason only: the task directly below it is indented one level deeper. That is the whole rule, and the product re-checks it row by row after every change.

Two useful consequences fall straight out of that:

  • Parenthood is temporary. Outdent the last child and the row above it stops being a summary task the moment it has no deeper row beneath it — it goes back to being an ordinary task you can schedule by hand. It does not get its old schedule back, though: the roll-up overwrote those dates while it was a parent and nothing restores them. Gantt Excel normalises the row into a valid task — a duration of at least one — and leaves you to retype what you actually want.
  • You never create a parent directly. You create it by indenting the task underneath it. That is why the button you reach for is Make Child far more often than Make Parent.

The groundworks phase of a villa build

Take four tasks from the Oakfield Villa build and indent them under a fifth. Working days are Monday–Friday throughout.

WBSTaskStartEndDuration
2Groundworks (summary)Wed 22 JulyWed 5 August15 days
2.1Site clearanceWed 22 JulyFri 24 July3 days
2.2Excavate foundationsMon 27 JulyFri 31 July5 days
2.3Drainage and servicesWed 29 JulyMon 3 August4 days
2.4Pour footingsMon 3 AugustWed 5 August3 days

You typed nothing at all on row 2. Its start is the earliest child start and its end is the latest child end — Wednesday 22 July and Wednesday 5 August. Its duration is the four children added together: 3 + 5 + 4 + 3 = 15 days. Notice that those 15 days of work occupy only 11 working days on the calendar, because the drains go in while the digger is still on site. Section 04 explains the setting that changes the duration to that calendar span instead.

02 Indenting and outdenting

Select the task (or a contiguous block of tasks) and use whichever route suits you. All three do exactly the same thing.

1

RibbonGantt ExcelTasksMake Child to indent, Make Parent to outdent.

2

Right-click a task row and choose Make Task Child or Make Task Parent. Windows only — the Gantt right-click menu is not installed on Mac.

3

KeyboardAlt indents, Alt outdents. Alt and Alt move a task up or down the list.

Children come with you. Indent a task that already has sub-tasks and the whole branch shifts together, keeping its internal shape. That is deliberate: moving a parent without its children would leave a gap in the levels and produce nonsense numbering like 2.0.1.

A new task typed into the grid is a sibling, never a child. When you type a name into the blank row at the bottom of the list, the new task inherits the indent level of the row above it. If you want it nested one level deeper, indent it yourself afterwards.

The task grid showing two phases of the Oakfield Villa build. Rows 1 and 2 are bold summary rows; rows 1.1 to 1.4 and 2.1 to 2.4 are indented beneath them, with WBS, Task, Priority, Resource, Start, Finish and Duration columns.
  1. WBS column. The dotted hierarchy code, recalculated on every structural change.
  2. Summary row. Highlighted as a parent; its own scheduling fields are calculated, not typed.
  3. Indent. The visible step right — one step per level of nesting.
  4. Rolled-up dates. The earliest child start and the latest child end.
  5. Rolled-up duration. Either the sum of the children or the span across them.
Hover or tap a numbered pin to see what each part of an outlined task list does.

When an indent is refused

Gantt Excel would rather explain itself than quietly do nothing, so each refusal names its own cause:

  • The first task cannot be made a sub-task as there is no task above it to be its parent. — the very first task in the list has nothing to nest under.
  • This task is already a sub-task of the task directly above it and cannot be indented further. — you can only ever indent one level at a time, relative to the row above.
  • This task is already at the top level and cannot be made a parent task. — there is no level left of the left-hand one.
  • Milestones cannot have child tasks under them. — a milestone is a moment, so it can never roll up children. See the Milestones guide.
  • Cannot indent or outdent non-contiguous selections. Select a contiguous range of tasks. — a Ctrl-clicked scatter of rows is blocked, because Excel only reports the first block of a multi-area selection and the rest would be silently skipped.

Two of those stop everything; the rest are quiet. The milestone refusal and the non-contiguous refusal abort the whole operation — the message appears and not one row moves, even if the other rows in your selection were perfectly indentable. The first three are different: where a selection mixes rows that can move with rows that cannot, the valid ones move and the blocked ones are skipped in silence. You only see the first task, already-nested or top-level message when nothing in the selection qualified at all.

Outdenting has one silent skip of its own. A milestone that would end up with children — because the row below it is deeper — is left where it is while the rest of the selection moves out one level. No message, because the milestone refusal above belongs to the indent path.

03 The WBS number

The WBS column holds the dotted work-breakdown code — 1, 1.1, 1.1.2, 2. You never type it. It is derived purely from the indent levels, top to bottom:

One counter per level  ·  a deeper row starts a new segment  ·  a shallower row bumps the level above and resets the ones below

So “Drainage and services” is 2.3 because it is the third task under the second top-level task. Add a phase above it and it becomes 3.3 — every code is recalculated whenever the structure changes, which means after any indent, outdent, move, duplicate or delete. Codes are never stable identities; they are positions.

That is exactly why they are useful for reading a dependency at a glance. The predecessor and successor columns show links by WBS code, so “2.4 waits on 2.2” reads as a sentence about the plan rather than a pair of internal numbers.

04 What a parent calculates from its children

This is the part worth knowing precisely, because a field that rolls up is a field you must not try to edit. The roll-up runs bottom-up — a grandparent is built from its already-updated children, not directly from its grandchildren — and it happens immediately after any change that could affect it.

FieldHow the parent gets its valueWorth knowing
Start Date (each band)The earliest child startFor the Estimated band, a child only counts if it has both a start and an end.
End Date (each band)The latest child endApplies to Estimated, Baseline and Actual independently.
Duration (each band)Either the sum of the children’s durations, or the working-time span from the rolled-up start to the rolled-up endYour choice in Settings — see below. The span option always uses the organisation calendar, never one child’s resource calendar.
% CompleteA duration-weighted average of the children, or a simple averageAlso your choice in Settings. A zero-duration child, such as a milestone, still counts once rather than not at all.
WorkThe sum of the children’s WorkLeft blank rather than shown as 0 when no child has any work.
Estimated / Baseline / Actual Cost, Resource CostThe sum of the children’s costsOnly rolls up when parent cost calculation is switched on. Only children with a cost above zero contribute.
StatusDerived from the rolled-up % CompleteWhich is why the Status dropdown is locked on a parent — see section 05.
PriorityNot rolled up — the parent keeps its ownA phase can be High while its tasks are Normal. See Priority, status & task colours.
Task name, notes, custom columnsYours — typed and keptNothing overwrites these.

Sum or span? Both are defensible

Look again at Groundworks. Its children total 3 + 5 + 4 + 3 = 15 working days of work, but they occupy only 11 working days on the calendar, because the drains go in alongside the excavation instead of after it. Which of those two numbers the summary row shows is a pair of option buttons in Settings.

EARLIEST START TO LATEST END

“How long is this phase open?”

Duration is recalculated as the working time between the phase’s rolled-up start and end — here 11 days. Two crews working the same week count once, and a gap where nobody is working still counts, because either way the phase is genuinely open.

Use this when the summary line is a calendar statement: how long the site is tied up.

TOTAL OF SUBTASK DURATIONS

“How much work is in this phase?”

The parent’s duration becomes the plain total of its children’s durations — here 15 days. Overlaps and gaps are both ignored, so two crews working the same week count as two weeks of work.

Use this when the summary line is an effort statement, and the calendar is somebody else’s problem.

The same fork applies to progress, as a Simple / Weighted pair in the same dialogue. The Structure phase shows it plainly — five children, of which only the 8-day blockwork has started, at 40%:

  • Weighted — weighted by duration, so the 8 days of blockwork carry their full share of the phase’s 20 days, giving the parent 16%.
  • Simple — every child counts once regardless of length, and the four untouched rows drag it down to 8%.

Weighted is the honest number on a phase with uneven tasks; simple is easier to explain in a status meeting. The progress side is covered fully in Understanding % Complete.

The Groundworks phase on the Gantt chart. The summary bar on row 2 spans Wed 22 July to Wed 5 August, with four child bars beneath it; the Drainage and services bar begins while Excavate foundations is still running.
The summary bar spans its children — from the earliest start to the latest end, overlaps and all.

05 A parent’s own fields are locked

Open the Task Form on a summary task and a good part of it is read-only. Nothing is broken — there is simply nothing there for you to type, because every one of those fields is being calculated from the children.

Locked on a parent:

  • Start Date, End Date and Duration in all three bands — Estimated, Baseline and Actual.
  • Work, and all four cost fields, including Resource Cost.
  • Status, because it is derived from the rolled-up percentage. Anything you picked there would be discarded on save, so the form does not offer it.
  • The whole Dependencies tab — see section 06.
  • The Copy Est. buttons and the clear-dates links are hidden outright rather than greyed, since a parent has no dates of its own to copy or clear.

Priority is the exception and stays editable: a phase carries its own priority, and the form does save it.

Assigning a resource to a summary task is the one case that argues with you and then lets you do it anyway. Pick a resource on a parent — in the grid or on the form — and Gantt Excel says its piece first: This is a Parent task. It is recommended not to assign resources to summary tasks. While you can assign a resource, this resource will not have an influence over the task dates and resource cost. Click OK and the assignment goes through and sticks. It is advice, not a block, because the name on a phase can be genuinely useful as a label — but the resource really does change nothing, since the parent’s dates and its resource cost both come from the children. Assign people to the tasks that people actually do.

06 Dependencies and summary tasks

Open the Dependencies tab on a parent and the controls are disabled under a single line of explanation:

The reverse direction is allowed: a summary task can be a predecessor. Linking “Fit-out cannot start until the Strip-out phase finishes” is a perfectly sensible thing to say, and Gantt Excel accepts it — with one exception. A parent cannot be the predecessor of its own descendant, because the child already rolls up into it. Which refusal you see depends on how you drew the link. Drag a task’s bar onto one of its own ancestors and it snaps back with Cannot create circular dependency. In the Task Form’s Dependencies tab you should not get that far — the predecessor list leaves out a task’s own ancestors — but the check runs again as you add the link, and there the wording is Cannot save the dependency. It would create a circular reference.

There is one consequence of this that catches people out. Because a row becomes a parent the instant something is indented beneath it, indenting a task under a linked task strips that task’s links. Gantt Excel does not do it silently — it asks first, and the wording tells you whose links are at stake:

  • This action will remove task dependencies from this task if any exist. Continue? — a row that is being indented carries links. That is not only the rows you highlighted: the scan covers every sub-task travelling with them, so a link on a child three rows down that you never selected raises this same prompt.
  • The parent task above will lose its dependencies if any exist. Continue? — the task above, which you did not select, is the one becoming a parent.
  • This action will remove task dependencies from this task and from the parent task above, if any exist. Continue? — both.

Answer No and nothing happens at all. Answer Yes and the links are dropped, the schedule recalculates, and any dates that were being held in place by a dependency are free to move again. The full picture is in the Dependencies guide.

The second way an indent costs you a link

The prompt above is a warning before the fact. There is also a notice after the fact, and it is a different mechanism worth understanding. Nesting a task under a new parent adds a roll-up edge — child into parent — and that edge can close a loop out of links that were each perfectly legal when you drew them.

Say “Blockwork walls” waits on the Groundworks phase, and a new task, “Snagging”, waits on “Blockwork walls”. Both links are fine. Now indent “Snagging” under Groundworks: it starts rolling up into the phase, so the phase cannot finish until Snagging does — and Snagging is waiting, round two links, on the phase itself. Nothing in that chain can be scheduled.

Rather than leave you with a chart that cannot calculate, Gantt Excel breaks the loop and then tells you what it broke, listing the actual predecessor → successor pairs underneath. The number in the first sentence is however many links it dropped:

07 Deleting a summary task takes its children

Delete a single summary task and the confirmation is direct: Permanently delete this parent task and all its child tasks?, under the title Delete Confirmation. It names no number — “all its child tasks” is as specific as it gets, which is exactly why it is worth knowing how deep the branch goes before you click.

If any row in that branch carries a link, a second line is added — Dependency links to other tasks will also be removed. Read “other tasks” loosely: the check simply walks the block looking for a link in either direction, so a dependency joining two tasks inside the branch triggers the line just as a link out to the rest of the plan does.

Select several rows and the confirmation counts them for you, listing the children it is pulling in that you did not select:

LineMeaning
One or more selected tasks are parent tasks.Your selection includes at least one summary task.
Selected tasks:How many rows you actually highlighted.
Child tasks (auto-included):How many extra rows are coming along because they sit under one of those parents.
Total tasks to be deleted:The real number of rows about to be removed.
Continue with deletion?The question. No is the default button.

If the counted total surprises you, that is the dialogue doing its job — say No and check the outline first. Note that deletion is also refused while an AutoFilter is on, while any status filter is hiding rows, or while outline groups are collapsed: Cannot delete tasks when outline groups are collapsed. Expand all groups first. Each of those would let you delete a branch you cannot see.

Collapsing and expanding the outline

Summary tasks alone do not give you fold-away phases. Excel’s own outline buttons appear in the row margin only once Enable Grouping is switched on — with it off, the outline is not built at all and your hierarchy lives purely in the indents and the WBS codes. Switch it on and the buttons follow the structure you have already made. Enable Grouping, Expand Groups and Collapse Groups all live under Gantt ExcelGrouping, not with the task buttons, and they are covered in Grouping & task filters.

08 Common questions

Why are the dates on my summary task greyed out?
Because they are calculated. A parent’s start is the earliest start among its children, its end is the latest end, and its duration follows from those — so there is nothing to type. Change a child’s dates and the parent updates itself immediately.
How do I turn a task back into a normal task?
Outdent everything under it. Select its sub-tasks and use Gantt ExcelTasksMake Parent (or Alt ) until they are at the same level as it. With no deeper row beneath it, the task stops being a summary task and its own fields unlock — but they unlock holding the rolled-up values, not the dates it had before it became a parent. Those were overwritten and are not recovered. The row is normalised into a valid task with a duration of at least one, and it is yours to retype.
My parent’s duration is longer than its children added up. Is that a bug?
No — it is the Earliest Start to Latest End option doing what it says. Duration is measured as the working time from the phase’s first start to its last end, so any gap between two children is counted. If you would rather see the plain total of the children’s durations, switch that setting to Total of Subtask Durations in Settings.
Why did my dependency disappear when I indented a task?
Because the task above it became a summary task, and summary tasks carry no links. Gantt Excel asked before doing it — the prompt naming “the parent task above” is the one to read carefully, since it is about a row you did not select. You can rebuild the link on the child task that really waits. If instead a notice appeared after the indent saying links had been put into a loop, that is the other mechanism described in section 06 — the new roll-up edge closed a cycle, and the repair ran without asking because by then there was no schedulable alternative.
Can I nest as deeply as I like?
The indent levels and the WBS codes themselves have no ceiling, but Excel’s outline grouping — the +/− buttons in the row margin — only handles 8 levels. Nest deeper than that and the task list and its numbering are still correct; those rows simply are not reflected in the collapse buttons. In practice three or four levels is as deep as a readable plan goes.
I indented several tasks at once and only some of them moved. Why?
Two rows are skipped rather than blocking the whole operation: the first task in the list, which has nothing above it to nest under, and a task already nested directly under the row above. You only get an explanatory message when nothing in the selection qualified, so check the levels of the rows that stayed put. A milestone is not in that category — if the row directly above one of your selected tasks is a milestone, the indent is refused outright with Milestones cannot have child tasks under them. and nothing at all moves. Same for a Ctrl-clicked, non-contiguous selection. If you saw a message and nothing shifted, that is which one it was.

Related: The Task Form · Adding, editing & deleting tasks · Linking tasks with dependencies · Grouping & task filters