What does a Gantt chart template for Smartsheet contain?
A good template contains a small number of columns that do different jobs, plus row hierarchy that separates phases from tasks. The mistake most people make is adding columns until the sheet looks like a status report, which makes it slower to update and no more informative.
The column set below is the one that survives real projects. It is deliberately short, because every extra column is a field someone has to fill in on a Friday afternoon when they would rather go home.
| Column | Type | What goes in it | Formula or input |
|---|---|---|---|
| Task Name | Primary, Text | Phase or task label | Typed |
| Start Date | Date | Planned start | Typed |
| End Date | Date | Planned finish | `=WORKDAY([Start Date]@row, Duration@row – 1)` |
| Duration | Text/Number | Working days | `=NETWORKDAYS([Start Date]@row, [End Date]@row)` |
| Predecessors | Text/Number | Row link, type, lag | Typed, e.g. `12FS +2` |
| % Complete | Number, percent | Leaf values; parent rollup | `=IF(COUNT(CHILDREN()) > 0, AVG(CHILDREN()), 0)` |
| Status | Dropdown | Not Started, In Progress, Late, Done | `=IF([% Complete]@row = 1, “Done”, IF([End Date]@row < TODAY(), "Late", IF([% Complete]@row > 0, “In Progress”, “Not Started”)))` |
| Owner | Contact | One name per row | Typed |
| Days Late | Number | Slippage in working days | `=IF(AND([% Complete]@row < 1, [End Date]@row < TODAY()), NETWORKDAYS([End Date]@row, TODAY()) - 1, 0)` |
| Phase | Dropdown | Grouping for rollups | Typed |
| Budget | Currency | Planned cost per task | Typed or `=SUM(CHILDREN())` |
Eleven columns, of which three are calculated from the others. That ratio matters. A template where most columns are typed is a template people abandon; a template where most columns are derived is one that stays current without anyone deciding to keep it current.
One structural note before the formulas. Smartsheet reads indentation as hierarchy: a row indented under another becomes its child. That gives you phases at the top level, tasks one level down, and checklist items below that, with each level able to summarize the one beneath it. Five levels are available. Using three of them is usually enough, and using all five is a reliable way to make a schedule nobody can read on a laptop screen.
Which formulas actually turn a sheet into a Gantt chart?
Five formulas do the work, and each one replaces a habit that fails at scale.
Join Doitify Today
Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.
Duration in working days
=NETWORKDAYS([Start Date]@row, [End Date]@row)
`NETWORKDAYS` counts weekdays between two dates, inclusive of both ends, and excludes weekends. A task that starts Monday and finishes Friday returns 5, not 4. That inclusiveness trips people up when they first compare it against simple date subtraction, which returns 4 for the same pair.
If you maintain a holiday list in a separate sheet, add it as the optional third argument so December does not silently gain three free working days. The range reference looks like `{Holidays Range}` in cross-sheet formulas.
End date from duration
=WORKDAY([Start Date]@row, Duration@row - 1)
`WORKDAY` skips weekends and returns the date that is *n* working days after the start, not counting the start itself. Subtracting one from the duration keeps the two formulas consistent: a 5-day task starting Monday ends Friday, and `NETWORKDAYS` of Monday to Friday returns 5 again. Round-tripping through both formulas is the fastest way to find out that someone has been typing calendar dates into a working-day column.
Percent complete rollup on parent rows
=IF(COUNT(CHILDREN()) > 0, AVG(CHILDREN()), 0)
Paste this on parent rows only. If you write it into the whole column, leaf rows will compute an average of zero children and collapse to zero, wiping out the numbers your team typed. The safer workflow is to fill the column with typed values first, then select the parent rows and paste the formula into the selection.
The `COUNT(CHILDREN())` test is what makes the formula safe: it only averages when children exist. Leave the `IF` out and every row with no children reports zero, which quietly makes the whole sheet look unstarted.
Status from evidence
=IF([% Complete]@row = 1, "Done", IF([End Date]@row < TODAY(), "Late", IF([% Complete]@row > 0, "In Progress", "Not Started")))
Order matters here. Testing completion first prevents a finished task from being labelled late because it was completed after its original end date. Testing the date second catches the tasks people forget to mention. This is the formula that turns a sheet into a weekly meeting that takes ten minutes instead of forty.
Days late in working days
=IF(AND([% Complete]@row < 1, [End Date]@row < TODAY()), NETWORKDAYS([End Date]@row, TODAY()) - 1, 0)
The `- 1` corrects for `NETWORKDAYS` counting the end date itself. Without it, every unfinished task that was due today would report one day late on the day it is still allowed to finish.
Two more formulas are worth adding if your plan has money or milestones attached.
A budget rollup on parent rows:
=SUM(CHILDREN())
A milestone flag, for rows where start and end are the same day:
=IF([Start Date]@row = [End Date]@row, 1, 0)
That flag is what lets you filter a fifty-row schedule down to the six dates a steering committee actually cares about.
How do dependencies and lag work in Smartsheet?
The Predecessors column accepts a compact syntax that combines a row reference, a relationship type, and an optional lag. Get the syntax right and the Gantt view draws connector lines; get it wrong and you get a red corner and a schedule that quietly stops recalculating.
| Value | Meaning | Typical use |
|---|---|---|
| `4` | Row 4, finish-to-start (default) | Standard sequence |
| `4FS +2` | Row 4 finishes, then two working days of lag | Cure time, approval window |
| `4SS +3` | Row 4 starts, successor starts three days later | Overlapping phases |
| `4FF` | Row 4 and successor finish together | Coupled deliverables |
| `4SF -5` | Successor finishes five days before row 4 finishes | Rare, but real in commissioning |
| `4FS +2; 7FS` | Two predecessors, both must be satisfied | Convergence points |
Lag is expressed in working days, which is why a `+2` on a Friday finish often lands on a Tuesday. State that convention in a note on the sheet, because it is the single most common source of “the dates are wrong” complaints from people who assumed calendar days.
Dependency behaviour is governed by the sheet’s project settings, not by the formulas. Two settings decide whether the template behaves like a schedule or like a list: whether dependency settings are enabled at all, and whether the sheet should warn or block when a date edit breaks a link. Enable the warning. Blocking edits sounds strict and feels professional, but it produces a support queue the first week a contractor tries to move a task by two days.
Dependency enforcement is also one of the features that differs by plan tier, so verify it on your own account rather than promising a stakeholder a locked schedule you cannot deliver.
How do you build the template in under half an hour?
Ten steps, in order. The order matters because column types cannot always be changed after values exist.
- Create a blank sheet and name the primary column `Task Name`.
- Add the date, number, contact, and dropdown columns from the table above, setting the number column to percent format with zero decimals.
- Open project settings and set the working week. If your team works Monday to Friday, accept the default; if anyone works Saturday, this is the only place to say so.
- Add your public holidays as a date range in a second sheet, or as exclusions in project settings.
- Turn on the Gantt view and switch the timescale to weeks for a plan longer than a quarter.
- Type three phases as top-level rows and indent five or six tasks beneath each one. Do not start with all forty tasks; the hierarchy is easier to build in layers.
- Enter start dates and durations on leaf rows only, then let the end-date formula fill the rest.
- Add predecessors to the leaf rows, working front to back so each row can point at one that already exists.
- Paste the rollup formula into the percent-complete column on parent rows only.
- Save a blank copy as your master. Every new project is a copy of the master, never an edit of it.
Step ten is the discipline that keeps a template useful for more than a month. The master should contain column definitions, two sample tasks, and no live dates. The moment the master acquires a real project’s data, it stops being a template and starts being an archived project that people are afraid to touch.
Worked example 1: a 34-working-day launch schedule
Eight tasks, one chain, working days only. Start on Monday of week 1.
| Row | Task | Duration | Predecessor | Start | End |
|---|---|---|---|---|---|
| 1 | Requirements sign-off | 5 | — | Week 1, Mon | Week 1, Fri |
| 2 | Content inventory | 4 | 1FS | Week 2, Mon | Week 2, Thu |
| 3 | Migration script | 8 | 1FS +2 | Week 2, Wed | Week 3, Fri |
| 4 | QA pass 1 | 3 | 2FS; 3FS | Week 3, Mon | Week 3, Wed |
| 5 | Fix cycle | 5 | 4FS | Week 3, Thu | Week 4, Wed |
| 6 | Stakeholder review | 2 | 5FS +3 | Week 5, Mon | Week 5, Tue |
| 7 | Cutover rehearsal | 3 | 6FS | Week 5, Wed | Week 5, Fri |
| 8 | Go live | 1 | 7FS | Week 6, Mon | Week 6, Mon |
Read the chain rather than the rows. Requirements end Friday of week 1. Row 3 waits two working days after that, so it starts Wednesday of week 2 rather than Monday. Row 4 cannot start until both row 2 and row 3 finish, and row 3 is the later of the two. The critical chain runs 1 → 3 → 4 → 5 → 6 → 7 → 8, which totals 5 + 8 + 3 + 5 + 2 + 3 + 1 = 27 working days of work, plus 2 + 3 = 5 days of lag, for 34 working days end to end. Row 2 finishes long before it is needed, and that slack is the reason row 2 is not the thing you escalate when someone offers two more days of content review.
Worked example 2: why working days and calendar days diverge
Six sequential tasks of five working days each, starting Monday 1 June. Six weeks of working days is 30 days, which lands on Friday 10 July. Treat the same plan as calendar days and 6 × 7 = 42 days lands on Monday 13 July.
The gap is three days, and it is always a multiple of the weekend. It looks small until you notice what it does: the plan now finishes on a Monday, which means the go-live happens on a day when two approvers are in a different time zone and the support desk is at weekend staffing. Add one public holiday inside the window and the drift grows again, because a calendar-day schedule has no way to represent it.
This is the strongest argument for `NETWORKDAYS` as a column rather than a convenience. Six weeks of schedule is where calendar arithmetic begins to cost you a handover window.
Worked example 3: reading slippage from the formulas
Task 12, “Data migration”, ends Friday, is 40 percent complete, and today is the following Wednesday. `NETWORKDAYS(Friday, Wednesday)` counts Friday, Monday, Tuesday, Wednesday and returns 4. Subtract one and the Days Late column reports 3 working days.
Three days is not the important number. The important number is what the same row says next Wednesday, when it will read 8, and the week after that, when the 40 percent will still be 40 percent. A flat percent-complete figure beside a rising days-late figure is the clearest early warning signal a schedule can give, and it requires no meeting to produce.
Worked example 4: weighted progress beats average progress
Four phases with different budgets and different completion. The unweighted average of the percent-complete column is (100 + 60 + 20 + 0) / 4 = 45 percent. The number a client actually wants is how much of the money-backed work is done.
| Phase | Budget | % Complete | Weighted value |
|---|---|---|---|
| Design | $40,000 | 100% | $40,000 |
| Build | $60,000 | 60% | $36,000 |
| Fit-out | $35,000 | 20% | $7,000 |
| Handover | $15,000 | 0% | $0 |
| Total | $150,000 | — | $83,000 |
Eighty-three thousand of one hundred and fifty thousand is 55.3 percent, which is ten points ahead of the naive average. In Smartsheet the calculation is a single formula over the value rows:
=SUMPRODUCT([Budget]5:[Budget]40, [% Complete]5:[% Complete]40) / SUM([Budget]5:[Budget]40)
Use explicit row ranges rather than whole columns, because `SUMPRODUCT` will choke on the text in header and parent rows. And if the parent rows already contain `SUM(CHILDREN())`, this formula only needs to run once at the bottom of the sheet.
What are the trade-offs of running a Gantt chart in Smartsheet?
The sheet wins when the schedule has to be argued about with people who do not use your project tool. It is a spreadsheet with a chart attached, which means finance can read the budget column, a contractor can be given a filtered view of four rows, and an auditor can be shown who changed a date and when.
| Approach | Strength | Where it fails |
|---|---|---|
| Smartsheet sheet with Gantt view | Formulas, rollups, sharing, change history | Per-seat cost; manual dependency entry |
| Spreadsheet export | Free, familiar, easy to email | No live links; every copy drifts |
| Dedicated PM tool | Automatic status, workload, notifications | Less flexible as a budget model |
| PDF of the chart | Unambiguous for a board pack | Stale within a day |
The costs are real and worth naming. Dependency editing in a sheet is keyboard work: you type a row number and a lag, then check the bar moved. There is no drag-and-drop that also updates the model. Baselines, which let you compare plan against plan rather than plan against today, are gated by plan tier, so teams on lower tiers end up screenshotting the Gantt view each month as their version history. And every person who needs to see the schedule consumes a license, which changes the economics when the audience is twenty stakeholders and the authors are three project managers.
None of that makes the sheet wrong. It makes it a specific tool for a specific job: a plan that must be defensible, shared with people outside the delivery team, and priced in the same place it is scheduled.
What goes wrong most often?
Six failures account for almost every abandoned Smartsheet Gantt chart.
Calendar days in a working-day column. The chart looks fine and every date is three days optimistic. Fix the duration formula before adding a single row.
Dependencies written as notes. Someone types “after QA” into a text column, the bar does not move when QA slips, and the schedule becomes decorative. Use the row-number syntax or do not claim the chart is linked.
Rollup formulas pasted over typed values. The percent-complete column collapses to zeros on leaf rows, and the team stops trusting any number on the sheet.
Milestones with durations. A milestone is a point, not a week. Give it one day, or give it a flag column and keep the date honest.
Five levels of hierarchy for forty tasks. Depth beyond three levels usually means the work breakdown is being used as a filing system rather than a schedule.
No baseline. Without a saved snapshot, “we are three weeks behind” is an opinion. With one, it is a subtraction.
Who should keep the sheet, and who should move on?
Keep the sheet if the schedule is contractual, if the audience includes finance or a client, if the plan changes weekly rather than hourly, and if three or fewer people edit it. In that setting a formula-driven sheet is more transparent than most project tools, and the audit trail is genuinely useful when a date change needs explaining.
Move on when the schedule has to react to daily work. The tell is a Friday where someone updates forty rows by hand from four different sources, and a Monday where the update is already out of date. At that point the sheet is a reporting artifact being maintained as if it were a system.
How does Doitify handle the same schedule?
Doitify is our product, so read this as disclosure rather than review. It holds projects, tasks, sub-tasks, checklists, owners, and due dates in the same workspace as Kanban boards, Gantt charts, roadmaps, calendars, workload views, and work reports. The dependency model is the same idea as the one above, without the row-number syntax: you link tasks, and moving a predecessor moves the chain.
The difference that matters for this template is where the numbers come from. Percent complete, status, and days late stop being formulas you maintain and become outputs of the tasks people are already updating. That is worth something when the schedule has forty rows and one author, and it is worth nothing when the schedule is a budget document that a client countersigns.
FAQ
Conclusion
A Gantt chart template for Smartsheet is not a file you download. It is eleven columns, five formulas, and one text field that encodes the relationships between rows. Build it once, save a blank master, and every project after that starts from a schedule that already knows how to count working days.
Start with the duration formula. It is the smallest change with the largest effect, because it forces every other date on the sheet to agree with the calendar your team actually works. Then add dependencies, then the rollup, then the view. Four steps, one afternoon, and the bars are the least interesting part of the result.
If this post on gantt chart template for smartsheet was helpful, you might also enjoy SEO Project Management Template and What Is Resource Overallocation? Meaning, Examples & Fixes.
Join Doitify Today
Move projects forward without the chaos: all your tasks, progress, and team reports in one unified workspace. Built for companies, startups, and remote teams — with a quick setup and a free trial.