Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Project Management & Agile  Module 4 – Scheduling: networks, critical path and Gantt charts

Gantt charts, calendars and schedule baselines

Put a schedule network on a working calendar with holidays, save a baseline, update it with actual progress, and read a Gantt chart for slips and gaps.

  • Intermediate
  • 10 minutes
  • Examples run with Python 3.14.8
  • By MySmartCoPilot
Free lesson, Pro answers: 10 minutes
Free: the whole lesson. With a pass: the model answer to its interview question.

What you will learn

  • Schedule a network on working calendars with holidays and compare the dates they give
  • Set a schedule baseline and update the schedule with actual progress at a status date
  • Read a Gantt chart for slippage, missing logic and crowded weeks
  • Evaluate a schedule against GAO's four characteristics of a reliable schedule

Before you start

What you’ll learn · Before you start

What you will learn

  • Schedule a network on working calendars with holidays and compare the dates they give
  • Set a schedule baseline and update the schedule with actual progress at a status date
  • Read a Gantt chart for slippage, missing logic and crowded weeks
  • Evaluate a schedule against GAO's four characteristics of a reliable schedule

Before you start

On this page

The tech fest needs 38 working days, but “38 working days” is not a date anyone can put on a poster. Starting on the same Monday, the network finishes on the Thursday of its eighth week on one calendar and on the Tuesday of its ninth week on another that closes on just two more weekdays. Which one is right depends on whose holidays the team keeps.

You will put a network on working calendars, save a baseline, update the schedule with actual progress at a status date, read a Gantt chart for what it shows and what it hides, and test a schedule against GAO’s four characteristics of a reliable one.

A Gantt chart puts the network on a working calendar

A Gantt chart: A view of a schedule that draws each activity as a bar on a calendar, from its start date to its finish date; the dates come from the network, not from the chart. draws each activity as a bar on a calendar, from its start date to its finish date. It is a view of the schedule, not the schedule itself: the dates come from the network and its passes, and then from a project calendar: The rule that says which days a schedule may use for work: the working week and the holidays. A person or a resource may have a calendar of its own. that says which days are worked. The program below takes the fest’s 38 working days and puts them on two calendars, both Monday to Friday from the same Monday. Calendar 1 closes on the Central Government’s compulsory holidays in the window; calendar 2 also closes on two restricted holidays that the whole team has chosen to take:

The fest on two calendars, and its Gantt chart Python · gantt.py
"""Puts the tech fest network on two working calendars and draws its Gantt chart as text.

The network and its durations (working days) are the critical path lesson's. Both calendars work Monday to Friday
from Monday 2 November. Calendar 1 closes on the Central Government's compulsory holidays in that window (DoPT
O.M. No. 12/2/2023-JCA, the holidays of 2026: Guru Nanak's Birthday on Tuesday 24 November and Christmas on Friday 25
December; Diwali falls on Sunday 8 November, a weekly off, and no substitute day is given). Calendar 2 also closes on
two restricted holidays the whole team takes: Govardhan Puja (Monday 9 November) and Bhai Duj (Wednesday 11 November).
"""
from datetime import date, timedelta

FEST = {
    "S": ("Milestone: start", 0, []),
    "A": ("Authorise plan and budget", 3, [("S", "FS", 0)]),
    "B": ("Book the auditorium", 2, [("A", "FS", 0)]),
    "C": ("Prepare sponsor packages", 5, [("A", "FS", 0)]),
    "D": ("Sign sponsors", 10, [("C", "FS", 0)]),
    "E": ("Design the coding contest", 8, [("A", "FS", 0)]),
    "F": ("Build the robotics arena", 12, [("D", "FS", 0)]),
    "G": ("Line up speakers", 6, [("B", "FS", 0)]),
    "H": ("Build the registration form", 4, [("E", "FS", 0)]),
    "I": ("Run the publicity campaign", 10, [("H", "SS", 2)]),
    "J": ("Print posters", 3, [("G", "FS", 0)]),
    "K": ("Plan crowd control and first aid", 5, [("B", "FS", 0)]),
    "L": ("Set up sound, lights and stage", 2, [("F", "FS", 0), ("K", "FS", 0)]),
    "M": ("Hold the fest", 2, [("L", "FS", 0), ("H", "FS", 0), ("J", "FS", 0), ("I", "FF", 0)]),
    "N": ("Close the accounts and report", 4, [("M", "FS", 0)]),
    "Z": ("Milestone: finish", 0, [("N", "FS", 0)]),
}
START = date(2026, 11, 2)
CENTRAL = {date(2026, 11, 24): "Guru Nanak's Birthday", date(2026, 12, 25): "Christmas Day"}
TEAM = CENTRAL | {date(2026, 11, 9): "Govardhan Puja", date(2026, 11, 11): "Bhai Duj"}


def early_dates(net):
    """The forward pass: early start and finish of every activity, in working days from the start."""
    es, ef = {}, {}
    for a, (_, days, links) in net.items():
        start = 0
        for p, kind, lag in links:
            start = max(start, {"FS": ef[p] + lag, "SS": es[p] + lag, "FF": ef[p] + lag - days}[kind])
        es[a], ef[a] = start, start + days
    return es, ef


def working_days(holidays, count):
    """The dates of working days 1 to count: Monday to Friday, without the holidays."""
    days, d = [], START
    while len(days) < count:
        if d.weekday() < 5 and d not in holidays:
            days.append(d)
        d += timedelta(days=1)
    return days


def fmt(d):
    return d.strftime("%a %d %b")


es, ef = early_dates(FEST)
end = max(ef.values())
cal1, cal2 = working_days(CENTRAL, end), working_days(TEAM, end)
print(f"{end} working days from {START:%A %d %B}, on two calendars")
print(f"{'Id':<4}{'Calendar 1':<25}{'Calendar 2'}")
for a, (name, days, _) in FEST.items():
    if days:
        one = f"{fmt(cal1[es[a]])} - {fmt(cal1[ef[a] - 1])}"
        two = f"{fmt(cal2[es[a]])} - {fmt(cal2[ef[a] - 1])}"
    else:
        day = es[a] if es[a] < end else end - 1
        one, two = fmt(cal1[day]), fmt(cal2[day])
    print(f"{a:<4}{one:<25}{two}")
print(f"Finish: {fmt(cal1[-1])} on calendar 1, {fmt(cal2[-1])} on calendar 2 "
      f"({(cal2[-1] - cal1[-1]).days} calendar days later, for {len(TEAM) - len(CENTRAL)} more closed weekdays)")
print()

# The Gantt chart of calendar 1: one column per weekday, # where an activity works, + for a holiday it spans, and a
# last row that counts the activities at work on each weekday.
weekdays = []
d = START
while d <= cal1[-1]:
    if d.weekday() < 5:
        weekdays.append(d)
    d += timedelta(days=1)
busy = [0] * len(weekdays)
print("Gantt chart, calendar 1 (one column per weekday, + a holiday, n activities at work)")
print("   " + "".join(f"{'W' + str(i // 5 + 1):<5}" for i in range(0, len(weekdays), 5)))
print("   " + "".join("MTWTF"[d.weekday()] for d in weekdays))
for a, (name, days, _) in FEST.items():
    if not days:
        continue
    first, last = cal1[es[a]], cal1[ef[a] - 1]
    row = "".join("#" if first <= d <= last and d not in CENTRAL else "+" if first <= d <= last else "." for d in weekdays)
    print(f"{a:<3}{row}")
    for i, mark in enumerate(row):
        busy[i] += mark == "#"
print("n  " + "".join(str(n) for n in busy))
print("Most activities at work on one day:", max(busy), "in week", busy.index(max(busy)) // 5 + 1)

Output

38 working days from Monday 02 November, on two calendars
Id  Calendar 1               Calendar 2
S   Mon 02 Nov               Mon 02 Nov
A   Mon 02 Nov - Wed 04 Nov  Mon 02 Nov - Wed 04 Nov
B   Thu 05 Nov - Fri 06 Nov  Thu 05 Nov - Fri 06 Nov
C   Thu 05 Nov - Wed 11 Nov  Thu 05 Nov - Fri 13 Nov
D   Thu 12 Nov - Thu 26 Nov  Mon 16 Nov - Mon 30 Nov
E   Thu 05 Nov - Mon 16 Nov  Thu 05 Nov - Wed 18 Nov
F   Fri 27 Nov - Mon 14 Dec  Tue 01 Dec - Wed 16 Dec
G   Mon 09 Nov - Mon 16 Nov  Tue 10 Nov - Wed 18 Nov
H   Tue 17 Nov - Fri 20 Nov  Thu 19 Nov - Wed 25 Nov
I   Thu 19 Nov - Thu 03 Dec  Mon 23 Nov - Mon 07 Dec
J   Tue 17 Nov - Thu 19 Nov  Thu 19 Nov - Mon 23 Nov
K   Mon 09 Nov - Fri 13 Nov  Tue 10 Nov - Tue 17 Nov
L   Tue 15 Dec - Wed 16 Dec  Thu 17 Dec - Fri 18 Dec
M   Thu 17 Dec - Fri 18 Dec  Mon 21 Dec - Tue 22 Dec
N   Mon 21 Dec - Thu 24 Dec  Wed 23 Dec - Tue 29 Dec
Z   Thu 24 Dec               Tue 29 Dec
Finish: Thu 24 Dec on calendar 1, Tue 29 Dec on calendar 2 (5 calendar days later, for 2 more closed weekdays)

Gantt chart, calendar 1 (one column per weekday, + a holiday, n activities at work)
   W1   W2   W3   W4   W5   W6   W7   W8   
   MTWTFMTWTFMTWTFMTWTFMTWTFMTWTFMTWTFMTWT
A  ###....................................
B  ...##..................................
C  ...#####...............................
D  ........########+##....................
E  ...########............................
F  ...................############........
G  .....######............................
H  ...........####........................
I  .............###+#######...............
J  ...........###.........................
K  .....#####.............................
L  ...............................##......
M  .................................##....
N  ...................................####
n  111334444433343202222222111111111111111
Most activities at work on one day: 4 in week 2

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 gantt.py

Both calendars give every activity the same working days, so the Gantt chart is the same shape for both; only the dates under it change. Calendar 2’s two extra closed days, both in the second week, push every later activity back two working days, and the finish moves from the Thursday of week 8 to the Tuesday of week 9, five calendar days. Two days became five because the shifted end crosses a weekend and Christmas Day. In the chart, + marks the holiday inside D’s and I’s bars: work stops for a day, and the bar simply runs one day longer.

Whose holidays the calendar keeps

The Department of Personnel and Training publishes the Central Government’s holidays each year: Guru Nanak’s Birthday, on the Tuesday of week 4, and Christmas Day, on the Friday of week 8, fall inside the fest’s window, while Diwali falls on a Sunday and no substitute day is given. Each employee may also take two restricted holidays. State governments publish their own lists, and the Reserve Bank of India’s holiday matrix shows that bank holidays differ from one city to the next, so a team spread across states needs one calendar per place, or a project calendar everyone agrees to.

Teams in other countries add a second question, the hours they share. India Standard Time is UTC+05:30 all year: the IANA time zone database records no daylight saving for Asia/Kolkata since 1945. Partners in Europe and North America change their clocks twice a year, so the hours a team in Pune shares with one in London or Toronto move by an hour each time, and a weekly call can fall out of the overlap.

A baseline is the plan that progress is measured against

Once the owners agree the dates, a copy is saved as the schedule baseline: A saved copy of the agreed schedule, kept unchanged so that each update can be compared with it; it changes only for new or removed scope or a formal replan.. GAO’s guide makes maintaining it the tenth best practice: progress is measured, monitored and reported against it, and it is set promptly once the work begins. From then on the schedule is updated at each status date: The date up to which a schedule update records actual starts, finishes and remaining work; forecasts are calculated from it. with actual starts and finishes and the days each running activity still needs, which the guide calls statusing, and recalculated through its links. Follow the fest’s schedule through its versions:

Timeline · 6 events in order The life of the fest's schedule, version by version Walk through the versions in order. Each one keeps the logic and changes only what the event changes.
  1. Draft

    Network, durations and calendar agreed with the owners

    The 14 activities, their 19 links and their durations are agreed with the people who will do the work, and the schedule is put on calendar 1. The finish comes out on working day 38, the Thursday of week 8.

  2. Baseline

    The plan everyone measures against saved once

    Before work starts, a copy of these dates is saved as the baseline. GAO's guide asks for it to be set promptly and to record what the stakeholders agreed about the order of work and the key dates. From now on it does not move with the work.

  3. Each week

    Actual dates and remaining days go in

    Owners report actual starts and finishes and the days each running activity still needs. The schedule is recalculated through its links, and the forecast is compared with the baseline, activity by activity.

  4. Day 20 update

    Two slips, and only one moves the finish

    E, the contest design, took 2 days more, and its chain has 11 days of float, so the finish holds. D, signing sponsors, needs 3 days more and is on the critical path, so the forecast finish moves 3 working days, from the Thursday of week 8 to the Wednesday of week 9.

  5. Next wave

    Detail added as work comes closer

    In a longer project, near-term work is planned as detailed activities and later work as planning packages, which are broken down as they come within reach. GAO's guide calls this rolling wave planning.

  6. Re-baseline

    Rare, and only when the plan changes for good rare

    The baseline changes for new or removed scope, or a formal replan when the old target is no longer realistic. GAO's guide warns that a schedule re-baselined often points to scope that is not understood or to weak estimates.

The timeline has 6 events, from Draft to Re-baseline.

At the end of working day 20, the Monday of week 5, the team reports two slips: designing the coding contest took 10 days instead of 8, and signing sponsors needs one more day though its baseline finish has passed. The update keeps the logic and lets the program move only what the actual dates push:

The day 20 update against the baseline Python · status.py
"""Updates the tech fest schedule at a status date and compares the forecast with the baseline.

The baseline is the fest's schedule on calendar 1 (Monday to Friday from Monday 2 November, closed on Guru Nanak's
Birthday and Christmas Day), saved before work began. At the status date, the end of working day 20, the team reports:
E, design the coding contest, took 10 days instead of 8; D, sign sponsors, is still running and needs 1 more day; every
other activity that should have started has gone to plan. The update keeps the logic and moves only what the actuals
and the remaining work push, as GAO's best practice 9 asks.
"""
from datetime import date, timedelta

FEST = {
    "S": (0, []), "A": (3, [("S", "FS", 0)]), "B": (2, [("A", "FS", 0)]), "C": (5, [("A", "FS", 0)]),
    "D": (10, [("C", "FS", 0)]), "E": (8, [("A", "FS", 0)]), "F": (12, [("D", "FS", 0)]), "G": (6, [("B", "FS", 0)]),
    "H": (4, [("E", "FS", 0)]), "I": (10, [("H", "SS", 2)]), "J": (3, [("G", "FS", 0)]), "K": (5, [("B", "FS", 0)]),
    "L": (2, [("F", "FS", 0), ("K", "FS", 0)]), "M": (2, [("L", "FS", 0), ("H", "FS", 0), ("J", "FS", 0), ("I", "FF", 0)]),
    "N": (4, [("M", "FS", 0)]), "Z": (0, [("N", "FS", 0)]),
}
HOLIDAYS = {date(2026, 11, 24), date(2026, 12, 25)}
STATUS = 20                       # the end of working day 20
ACTUAL = {"E": (3, 13)}           # activities that finished off plan: (actual start, actual finish)
REMAINING = {"D": 1}              # activities in progress at the status date: working days still needed


def forward(net, actual=None, remaining=None, status=0):
    """The forward pass. Activities in actual keep their actual dates; those in remaining finish that many working
    days after the status date; every other activity follows its links and its planned duration."""
    actual, remaining = actual or {}, remaining or {}
    es, ef = {}, {}
    for a, (days, links) in net.items():
        start = 0
        for p, kind, lag in links:
            start = max(start, {"FS": ef[p] + lag, "SS": es[p] + lag, "FF": ef[p] + lag - days}[kind])
        if a in actual:
            es[a], ef[a] = actual[a]
        elif a in remaining:
            es[a], ef[a] = start, status + remaining[a]
        else:
            es[a], ef[a] = start, start + days
    return es, ef


def calendar(count):
    days, d = [], date(2026, 11, 2)
    while len(days) < count:
        if d.weekday() < 5 and d not in HOLIDAYS:
            days.append(d)
        d += timedelta(days=1)
    return days


base_es, base_ef = forward(FEST)
now_es, now_ef = forward(FEST, ACTUAL, REMAINING, STATUS)
cal = calendar(max(now_ef.values()) + 1)
day = lambda n: cal[n - 1].strftime("%a %d %b") if n else cal[0].strftime("%a %d %b")
print(f"Status date: the end of working day {STATUS}, {day(STATUS)}")
print(f"{'Id':<4}{'Baseline finish':<17}{'Forecast finish':<17}{'Variance':>8}  State")
for a, (days, _) in FEST.items():
    if a in ACTUAL or now_ef[a] <= STATUS:
        state = "finished"
    elif now_es[a] < STATUS:
        left = now_ef[a] - STATUS
        state = f"in progress, {left} day{'s' if left != 1 else ''} left"
    else:
        state = "not started"
    variance = now_ef[a] - base_ef[a]
    print(f"{a:<4}{day(base_ef[a]):<17}{day(now_ef[a]):<17}{variance:>+8}  {state}")
late = [a for a in FEST if now_ef[a] > base_ef[a] and a not in ("Z",)]
print(f"Finish: baseline {day(base_ef['Z'])}, forecast {day(now_ef['Z'])}, "
      f"{now_ef['Z'] - base_ef['Z']:+d} working days")
print("Late against the baseline:", ", ".join(late))

Output

Status date: the end of working day 20, Mon 30 Nov
Id  Baseline finish  Forecast finish  Variance  State
S   Mon 02 Nov       Mon 02 Nov             +0  finished
A   Wed 04 Nov       Wed 04 Nov             +0  finished
B   Fri 06 Nov       Fri 06 Nov             +0  finished
C   Wed 11 Nov       Wed 11 Nov             +0  finished
D   Thu 26 Nov       Tue 01 Dec             +3  in progress, 1 day left
E   Mon 16 Nov       Wed 18 Nov             +2  finished
F   Mon 14 Dec       Thu 17 Dec             +3  not started
G   Mon 16 Nov       Mon 16 Nov             +0  finished
H   Fri 20 Nov       Wed 25 Nov             +2  finished
I   Thu 03 Dec       Mon 07 Dec             +2  in progress, 5 days left
J   Thu 19 Nov       Thu 19 Nov             +0  finished
K   Fri 13 Nov       Fri 13 Nov             +0  finished
L   Wed 16 Dec       Mon 21 Dec             +3  not started
M   Fri 18 Dec       Wed 23 Dec             +3  not started
N   Thu 24 Dec       Wed 30 Dec             +3  not started
Z   Thu 24 Dec       Wed 30 Dec             +3  not started
Finish: baseline Thu 24 Dec, forecast Wed 30 Dec, +3 working days
Late against the baseline: D, E, F, H, I, L, M, N

Recorded with Python 3.14.8 on macOS 26 arm64. To run it yourself: mise exec python@3.14.8 -- python3 status.py

Eight activities are now late against the baseline, but they fall into two groups. E’s 2 days moved H and I by 2 days each and went no further, because that chain had 11 days of float. D’s 3 days moved F, L, M and N by 3 working days each, and the finish from the Thursday of week 8 to the Wednesday of week 9. The baseline itself did not move, and that is the point: it is the yardstick that makes the 3 days visible. GAO’s guide asks for a re-baseline only for new or removed scope or a formal replan, and it warns that frequent re-baselining hides variances.

Checkpoint

Check: Working calendars and holidays · Baselines and status updates

  1. Question 1 of 2 On calendar 1 (Monday to Friday, closed on the Tuesday of week 4), an activity of 5 working days starts on the Monday of week 4. On which day does it finish?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: The Monday of week 5

    Count only the days the calendar works. Five working days from the Monday of week 4, without the holiday on its Tuesday, end on the Monday of week 5.

  2. Question 2 of 2 At the day 20 update, why did E's 2-day slip leave the finish where it was while D's 3-day slip moved it?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: E's chain had 11 days of float, and D is on the critical path, which has none

    Compare each slip with the float of its chain: E's 2 days against 11, D's 3 days against 0. Only D's slip moves the forecast finish, by 3 working days.

Reading a Gantt chart: slips, missing logic and crowded weeks

A Gantt chart is the most read view of a schedule, so it pays to know what it can show and what it cannot. Look back at the fest’s chart and its last row, which counts the activities at work on each weekday:

What to look for Where it shows What it may mean
Bars right of their baseline Tools draw the baseline as a second, thin bar A slip: check the activity’s float before reacting
Many bars stacked in one week The fest’s count reaches 4 in week 2 People or rooms may be overloaded; check owners
A bar that ends with nothing after it Only visible when links are drawn An open end, so its float is not real
Bars that never touch Week 8 has one activity, N, alone Fine here, since N follows M; elsewhere a gap may hide a missing link

The chart’s weakness is the logic. Bars show dates, not links, so a plan with the open end and the lag in place of a link from the first lesson of this module would draw a Gantt chart that looks just as tidy. Read a chart with its links shown, or beside the network check, and never fix a date by dragging a bar: the next recalculation puts it back, or worse, a fixed date becomes a constraint that hides the logic.

Dragging a bar to the date the sponsor wants

Wrong: moving the fest’s bar a week earlier by typing a date in. Right: change a duration, a link or the scope, recalculate, and see which date the network gives. A typed date is a constraint, and constraints are what made the critical path lesson’s float negative.

A health check asks whether the schedule can be trusted

GAO’s guide groups its ten best practices under four characteristics of a reliable schedule. A schedule is comprehensive when it holds all the work, with resources and durations; well constructed when its logic is simple and complete and its critical path and float are real; credible when its levels agree and a risk analysis backs its dates; and controlled when it is updated with actual progress and compared with a baseline:

Characteristic GAO best practices In the fest
Comprehensive 1 all activities, 3 resources, 4 durations 14 activities with owners and durations
Well constructed 2 sequencing, 6 valid critical path, 7 reasonable float the network check and the passes pass
Credible 5 traceable horizontally and vertically, 8 risk analysis the risk analysis comes in this module’s last lesson
Controlled 9 updates with actual progress, 10 a baseline the day 20 update against the baseline

A health check walks the table with the schedule open: count activities without links, lags and constraints, look for float that is too large to be real, confirm the critical path is continuous, and compare the latest update with the baseline. The fest passes three rows today and the fourth once its risk analysis is done.

Key idea

Dates come from the network and the calendar, progress is judged against a saved baseline, and a Gantt chart is only as trustworthy as the links behind its bars.

Checkpoint

Check: Reading a Gantt chart · GAO's four characteristics

  1. Question 1 of 2 A Gantt chart without link arrows shows every bar ending before the finish date. What can it not tell you?

    Choose one answer.

    Show the answer: Question 1 of 2

    Answer: Whether each bar is linked to what depends on it, so open ends and false float stay hidden

    A Gantt chart is a view of dates. To judge the logic, show the links or run the network check beside it.

  2. Question 2 of 2 A schedule has every activity linked and a valid critical path, but no baseline, and it has not been updated for six weeks. Which of GAO's characteristics does it fail most clearly?

    Choose one answer.

    Show the answer: Question 2 of 2

    Answer: Controlled

    GAO's guide maps best practices 9 and 10, updating with actual progress and maintaining a baseline, to the controlled characteristic.

Practise: calendars, baselines and charts

The questions use the fest’s two calendars and its day 20 update, and a few other schedules: one that has not been updated for weeks, one with no risk analysis and one whose sponsor drags a bar. Work each date out before you answer:

Practice that adapts to you

Practise this lesson

10 questions about 4 ideas of this lesson. Each answer is explained at once, and what you get right is kept in this browser.

  1. Question 1 of 10 What is a Gantt chart?

    Choose one answer.

    Show the answer: Question 1 of 10

    Answer: A view that draws each activity of a schedule as a bar from its start date to its finish date

    A Gantt chart is the calendar view of a schedule. Change a duration or a link and recalculate, and the bars follow.

  2. Question 2 of 10 An activity of 12 working days starts on a Monday, on a Monday-to-Friday calendar with no holidays. Counting its first and its last day, how many calendar days does it span?

    Type a number.

    A hint

    Two full weeks give 10 working days.

    Show the answer: Question 2 of 10

    Answer: 16 days

    Monday to Friday twice gives 10 working days over 12 calendar days; the next Monday and Tuesday give the last 2. From the first Monday to the third Tuesday is 16 calendar days.

  3. Question 3 of 10 Asha owns D, signing sponsors, which is critical, and plans to take a restricted holiday in the middle of it. Nobody else can sign sponsors. What should the schedule show?

    Choose one answer.

    Show the answer: Question 3 of 10

    Answer: D takes one working day longer on Asha's calendar, so the finish moves a day unless the work is covered or resequenced

    When one person's absence stops an activity, the activity follows that person's calendar. On the critical path, the day lost moves the finish unless someone else can do the work.

  4. Question 4 of 10 What is a schedule baseline?

    Choose one answer.

    Show the answer: Question 4 of 10

    Answer: A saved copy of the agreed schedule, kept unchanged so that progress can be measured against it

    The baseline stays as agreed; the current schedule changes with every update, and the difference between them is each activity's variance.

  5. Question 5 of 10 An activity's baseline finish is working day 18 and its forecast finish at the update is working day 21. What is its finish variance, in working days late?

    Type a number.

    Show the answer: Question 5 of 10

    Answer: 3 days

    Forecast minus baseline: 21 − 18 = 3 working days late. This is D in the fest's day 20 update.

  6. Question 6 of 10 Mid-way through, the student council adds a hackathon to the fest, which needs 6 more days of work on the critical path. What should happen to the baseline?

    Choose one answer.

    Show the answer: Question 6 of 10

    Answer: Re-baseline for the new scope through change control, keeping a record of the old baseline

    A baseline changes for new or removed scope or a formal replan. The hackathon is new scope, so after the change is agreed, the baseline is updated and the old one kept for the record.

  7. Question 7 of 10 In the fest's Gantt chart, four activities are at work on the same days of week 2. What should the project manager check first?

    Choose one answer.

    Show the answer: Question 7 of 10

    Answer: Whether the same people or rooms are needed by more than one of them

    A crowded week is a question about resources: who owns C, E, G and K, and can they all work at once? The next lesson shows what to do when the answer is no.

  8. Question 8 of 10 A sponsor drags the bar of "hold the fest" in a scheduling tool to an earlier week. What has really happened to the schedule?

    Choose one answer.

    Show the answer: Question 8 of 10

    Answer: A date constraint now overrides the logic, so the float of everything before it may turn negative

    Dates should come from durations and links. To finish earlier, change the work, the links or the scope, then recalculate.

  9. Question 9 of 10 In GAO's guide, which characteristic does a schedule with simple, complete logic, a valid critical path and realistic float meet?

    Choose one answer.

    Show the answer: Question 9 of 10

    Answer: Well constructed

    Sequencing, a valid critical path and reasonable float are the well-constructed part of GAO's table.

  10. Question 10 of 10 A schedule is complete, well linked and updated weekly, but nobody has run a schedule risk analysis on it. Which characteristic is it weakest on?

    Choose one answer.

    Show the answer: Question 10 of 10

    Answer: Credible

    Without a risk analysis there is no level of confidence in the finish date, which GAO's guide puts under credible.

Interview questions

Warm-up (fresher to 2–5 years): what is a schedule baseline, and why keep it once the plan has changed?

A baseline is a saved copy of the agreed schedule, kept as it was when the work began. The current schedule changes at every update; the baseline does not, so comparing the two shows each activity’s variance: the fest’s day 20 update showed the finish 3 working days later than the baseline. Without the baseline, a slip would simply become the new plan and nobody could say how far the project had drifted or which slips moved the finish. A baseline is changed only for new or removed scope or a formal replan, and rarely.

Two harder questions follow, about a team that updates the baseline every week and about a Gantt chart that looks on time while the project is not. Decide what you would check first, then open each first step:

Model answers open with any pass: ₹79 for 1 week ($2.99), one payment that never renews.

  1. Fresher to mid

    A vendor's Gantt chart for your office fit-out shows every bar finishing a week before the move-in date, and the vendor says the project is on time. What would you ask to see before you believe it?

    Model answer, Pro. Model answers open with any pass; prices are in the notice on this page. First step and follow-ups

Flashcards · 4 cards

Recall it, then check

Say the answer to yourself before you look: recalling it is what makes it stick.

  1. What is a Gantt chart, and what does it hide?

    A view of the schedule: each activity drawn as a bar on a calendar, from the dates the network and calendar give. It shows slips and crowded weeks but hides the logic, so read it with the links or a network check and never fix a date by dragging a bar.

  2. What is a schedule baseline, and what is statusing?

    A baseline is a saved copy of the agreed schedule, kept unchanged for comparison (GAO's 10th best practice). Statusing is the update at each status date with actual starts and finishes and remaining durations, then recalculating through the links. Re-baseline only for new/removed scope or a formal replan.

  3. What are GAO's four characteristics of a reliable schedule?

    Comprehensive (all work, with resources and durations), well constructed (simple complete logic; real critical path and float), credible (horizontally and vertically traceable; backed by a risk analysis) and controlled (updated with actual progress and compared with a baseline). Ten best practices group under these four.

  4. Why does the project calendar matter so much on an Indian team?

    The Central Government, states and the RBI all publish different holiday lists, and India Standard Time has no daylight saving (IANA Asia/Kolkata since 1945). Teams spread across states need one calendar per place or a project calendar everyone agrees to; partners abroad move clocks twice a year.

Key takeaways

  • A Gantt chart is a calendar view of the network: the working days come from the passes and the dates from a calendar, so two calendars give the same bars and different dates.
  • A baseline is the saved, agreed schedule; each update records actual dates and remaining work at a status date and measures the forecast against the baseline.
  • A Gantt chart shows slips and crowded weeks but hides the logic, so read it with its links or a network check, and never fix a date by dragging a bar.
  • GAO’s four characteristics, comprehensive, well constructed, credible and controlled, group its ten best practices into a health check of any schedule.

Terms in this lesson

Gantt chart
A view of a schedule that draws each activity as a bar on a calendar, from its start date to its finish date; the dates come from the network, not from the chart.
project calendar
The rule that says which days a schedule may use for work: the working week and the holidays. A person or a resource may have a calendar of its own.
schedule baseline
A saved copy of the agreed schedule, kept unchanged so that each update can be compared with it; it changes only for new or removed scope or a formal replan.
status date
The date up to which a schedule update records actual starts, finishes and remaining work; forecasts are calculated from it.

References

Related tools

Report a problem with this lesson

Quick answers and tool search

Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.