Use cases
Worked examples of the schedules the Gantt Chart is built for — the data behind each one, the fields to bind, and the settings worth changing. Each is a starting point, not a rule.
Every example uses the same shape: one row per task, with a start and an end date. What changes is how deep the hierarchy goes, which optional fields you add, and how far you zoom out.
PMO and portfolio roadmap
Every project in the portfolio on one page: what's running, what's next, and what's slipping. The audience wants the summary bars, not the tasks underneath them.
| Programme | Project | Phase | Start | Finish | Status |
|---|---|---|---|---|---|
| Digital | CRM replacement | Discovery | 2026-01-12 | 2026-02-20 | On track |
| Digital | CRM replacement | Build | 2026-02-23 | 2026-07-31 | At risk |
| Digital | Data platform | Procurement | 2026-03-02 | 2026-04-24 | On track |
| Operations | Warehouse automation | Pilot | 2026-02-02 | 2026-05-29 | Late |
| Field | Bind |
|---|---|
| Project hierarchy | Programme, Project, Phase |
| Start date / End date | Start / Finish |
| Legend | Status |
| Extra columns | Budget, Sponsor |
| Tooltip | Project manager, last status note |
Settings: Default zoom preset Quarter, Default scroll position Today, Show project duration on, Show task labels off, legend Top. Under Data colors, set On track / At risk / Late to green / amber / red.
Collapse every project before you save — the collapsed state is saved with the report, so viewers open onto the summary view and expand only what they care about. Then capture a bookmark per programme with its projects expanded: collapse state travels with bookmarks, which turns one visual into a guided walkthrough. See Expand & collapse.
A summary bar takes a legend colour only when everything underneath it shares that colour; a project whose phases have mixed statuses falls back to the Default color. Pick a neutral default (a mid grey works well) so mixed projects read as "look inside" rather than as a status of their own.
Construction and engineering schedules
A schedule exported from Microsoft Project, Primavera or a planner's spreadsheet: a deep work breakdown, a fixed order, and the logic links between activities.
| ID | Area | Activity | Start | Finish | Predecessors | Handover |
|---|---|---|---|---|---|---|
| 10 | Substructure | Excavation | 2026-03-02 | 2026-03-20 | ||
| 20 | Substructure | Foundations | 2026-03-23 | 2026-04-24 | 10 | |
| 30 | Superstructure | Steel frame | 2026-04-27 | 2026-06-19 | 20FS+3d | |
| 40 | Superstructure | Roof deck | 2026-06-22 | 2026-07-17 | 30 | 2026-07-17 |
| 50 | Envelope | Cladding | 2026-06-08 | 2026-08-14 | 30SS+30d;40 | 2026-08-14 |
| Field | Bind |
|---|---|
| Project hierarchy | Area, Activity (add Sub-activity levels as needed — up to 10) |
| Start date / End date | Start / Finish |
| Task ID | ID |
| Predecessor ID | Predecessors |
| Milestones | Handover, Inspection |
| Extra columns | Contractor, Duration |
Settings: Row numbers on for WBS numbering, Sort by → Data order to keep the planner's sequence, Task grid lines on, Dependency lines Width 2, a Star symbol for the handover column, Default zoom preset Month.
Paste the Predecessors column exactly as your scheduling tool exports it. Values like 20FS+3d or 30SS+30d;40 resolve to the right tasks without cleaning — but every arrow is drawn finish-to-start, and the lag is not applied. The dates in your data position the bars; the arrows only show the logic. See Dependencies.
Data order follows the order Power BI delivers rows in, which is alphabetical unless you say otherwise. To keep the planner's order, set Sort by column in the model — Activity sorted by ID — for each hierarchy column.
Plan vs. actual status reporting
The weekly steering-committee view: where each task is, where it should be, and what's overdue as of today.
| Workstream | Task | Start | Finish | % Complete | % Planned |
|---|---|---|---|---|---|
| Migration | Inventory servers | 2026-08-03 | 2026-08-21 | 1.00 | 1.00 |
| Migration | Migrate batch 1 | 2026-08-24 | 2026-09-25 | 0.55 | 0.80 |
| Migration | Migrate batch 2 | 2026-09-14 | 2026-10-16 | 0.10 | 0.05 |
| Training | Train support desk | 2026-09-07 | 2026-09-30 | 0.30 | 0.45 |
| Field | Bind |
|---|---|
| Project hierarchy | Workstream, Task |
| Start date / End date | Start / Finish |
| Progress (%) | % Complete measure |
| Planned progress | % Planned measure |
| Owner | Owner |
| Tooltip | Blockers, next action |
Settings: Default zoom preset Week, Default scroll position Today, Today line on, Show progress percentage on, Show completion checkmarks on. Try both Progress style options — Overlay reads best on tall bars, Strip leaves more of the bar colour showing.
If you don't store a planned percentage, derive it from the dates — the share of the task's duration that has elapsed:
% Planned =
VAR _start = MIN ( Tasks[Start] )
VAR _end = MAX ( Tasks[Finish] )
VAR _elapsed = DATEDIFF ( _start, TODAY (), DAY )
VAR _total = DATEDIFF ( _start, _end, DAY )
RETURN
IF ( _total <= 0, 1, MAX ( 0, MIN ( 1, DIVIDE ( _elapsed, _total ) ) ) )
Format both measures as a percentage in the model. The visual reads the format string first when deciding whether 0.55 means 55% or 0.55%, so a formatted measure is never misread — even when a slicer leaves only small values on screen. If you can't change the format, set Format → Progress → Progress scale explicitly. See Progress scale.
A parent's progress is the simple average of its direct children — a two-day task and a two-month task weigh the same. That's fine for a status view; if your PMO reports duration- or effort-weighted progress, show that figure in an Extra column rather than expecting the summary bar to match it.
Product and release roadmap
Themes and epics over the next few quarters, with the releases that matter marked as dates rather than bars.
| Theme | Item | Start | Finish | Team | Beta | Ticket |
|---|---|---|---|---|---|---|
| Onboarding | Guided setup | 2026-09-01 | 2026-10-30 | Growth | 2026-10-12 | https://contoso.atlassian.net/browse/GR-118 |
| Onboarding | SSO | 2026-10-05 | 2026-11-27 | Platform | 2026-11-16 | https://contoso.atlassian.net/browse/PL-52 |
| Releases | v4.0 launch | 2026-12-01 | 2026-12-01 | |||
| Reporting | Scheduled exports | 2026-11-02 | 2027-01-15 | Insights | https://contoso.atlassian.net/browse/IN-77 |
| Field | Bind |
|---|---|
| Project hierarchy | Theme, Item |
| Start date / End date | Start / Finish |
| Legend | Team |
| Owner | Product manager |
| Milestones | Beta, GA |
| URLs | Ticket, Specification |
Settings: Default zoom preset Month, Show task labels on, Zero-duration tasks as milestones on with a Star as the Task milestone symbol, Diamond for Beta, Hide markers outside bars off, Dark mode on for a wall display.
A release is a date, not a duration — give it the same start and end date and the visual draws it as a marker on its own row, no extra column needed. Keep releases under their own top-level group (Releases) so they line up in one band across the top of the roadmap. See Zero-duration tasks.
Name your URL columns for what they open. With two links on a task, the link icon opens a menu whose entries are labelled with the column names — Ticket and Specification are useful; URL1 and URL2 are not. See URLs.
Marketing campaigns and event plans
A shallow, busy calendar: dozens of short activities across a few channels, where the names matter as much as the bars.
| Campaign | Activity | Start | Finish | Channel | Budget |
|---|---|---|---|---|---|
| Spring launch | Teaser emails | 2026-03-02 | 2026-03-13 | 4,000 | |
| Spring launch | Paid social burst | 2026-03-09 | 2026-03-27 | Social | 18,500 |
| Spring launch | Launch webinar | 2026-03-19 | 2026-03-19 | Events | 6,200 |
| Trade show | Stand build | 2026-04-06 | 2026-04-17 | Events | 22,000 |
| Field | Bind |
|---|---|
| Project hierarchy | Campaign, Activity |
| Start date / End date | Start / Finish |
| Legend | Channel |
| Extra columns | Budget |
| Tooltip | Audience, agency, KPI target |
Settings: Default zoom preset Week, Show task labels on, Row banding on, Task bar height 20 and Bar spacing 4 for a denser page, legend Bottom center, Sort by → Start date.
Clicking a legend entry selects every task in that channel, and the rest of the page cross-filters to match — budget cards, a spend chart, a lead table. Hold Ctrl to combine channels. It's a slicer you didn't have to add.
Team workload by owner
Who is doing what, and when — the same task table turned sideways, with people as the top level of the hierarchy.
| Owner | Project | Task | Start | Finish |
|---|---|---|---|---|
| Amara Cole | CRM replacement | Data mapping | 2026-09-07 | 2026-09-25 |
| Amara Cole | Data platform | Vendor demos | 2026-09-21 | 2026-10-02 |
| Ben Kowalski | CRM replacement | Integration build | 2026-09-14 | 2026-11-06 |
| Field | Bind |
|---|---|
| Project hierarchy | Owner, Task |
| Start date / End date | Start / Finish |
| Legend | Project |
| Extra columns | Effort (days) |
| Tooltip | Project, priority |
Settings: Default zoom preset Week, Default scroll position Today, Project grid lines on, Show project duration off, Show color swatches off, legend Top.
Each person's summary bar shows the span they're booked for, and overlapping bars beneath it show where they're double-booked. Add a Project or Team slicer to the page, and the search box in the top bar finds one person in a long list without touching the filters.
Putting Owner first in the hierarchy replaces the Owner field here — you don't need both. Keep the Owner field for charts organised by project, where the circles answer "whose is this?" without a column.
Choosing the right settings for your schedule
| Your schedule | Zoom preset | Scroll position | Hierarchy | Labels |
|---|---|---|---|---|
| Under 30 tasks, a few months | Automatic | Start | Expanded | Task labels on |
| One project, 6–18 months | Month | Today | Expanded, WBS on | Progress % only |
| Portfolio, multi-year | Quarter or Year | Today | Collapsed to projects | Project duration only |
| Short activities, many rows | Week | Today | Two levels, row banding | Task labels on |
| Status meeting | Week | Today | Collapsed except the active phase | Progress % on |
| Small tile or mobile layout | Automatic | Start | Collapsed, top bar hidden | Off |
When not to use a Gantt chart
A Gantt chart is the wrong tool when:
- Your tasks have no dates. A backlog with priorities but no schedule belongs in a table or a board.
- You need resource capacity, not timing. Overlapping bars hint at overload, but hours-per-week against capacity is a stacked column chart.
- Every item is a single date. A chart of nothing but markers is a calendar or a timeline — see the Calendar visual.
- You have tens of thousands of tasks and want to see them all. Nobody reads 90,000 bars. Summarise to the project level, and let viewers drill through to the detail.
- You need the schedule calculated. The visual draws the dates you give it; it doesn't compute a critical path or reschedule successors. Do that in your planning tool, and report on the result here.
Related
- Data fields — what every field in the examples above accepts.
- Tasks, milestones & dependencies — hierarchy, markers and arrows.
- Formatting reference — every setting with its default.