Skip to content
Log in

Theory

Case: estimates versus actuals

Use three earlier Klasna launches and the three-point estimates of the chain to tell Leo whether physics can open on 1 February, and how sure you are.

~8 min read · 9 exercises · 250 points

Before you start

Can Leo promise the date?

Marketing wants "Physics opens 1 February" on the landing page next week, and once families see it, Leo can't take it back. In this case you'll answer him from two datasets, the chain to opening and three earlier launches: can he promise the date, and how sure are you?

The outside view from launches like yours

A date check starts from history, not hope. Pick the past projects that look like yours: physics has a curriculum, a review, demo lessons and tutor onboarding, like Klasna's two earlier subject launches (exam math and programming for teens). The simulator, mostly a platform build, stays out.

Then pick the rows that are comparable with your plan. The chain to opening is planned at most likely values, so take the past tasks without padding: those estimates were meant the same way.

Dataset · 17 rows

Three earlier Klasna launches: estimates and actuals

One row per task, in working days. The exam math and programming launches were subject launches; the simulator was mostly a platform build.

launchfinishedtaskkindestimate_dayspaddedactual_days
exam_math_launch2025-02curriculum_draftcurriculum10no12
exam_math_launch2025-02curriculum_reviewreview5no9
exam_math_launch2025-02demo_lessonstutors15yes16
exam_math_launch2025-02tutor_onboardingtutors8yes8
exam_math_launch2025-02landing_pageplatform6no7

First 5 of 17 rows

Download CSV

For those rows, exam math estimated 25 days and took 33; programming estimated 25 and took 34. Together 67 ÷ 50 = 1.34: most likely estimates in launches like ours ran about a third over. That ratio is what you will apply to the physics chain.

  • Do
    Subject launches, unpadded rows: 67 ÷ 50 = 1.34
  • Don't
    Mix in the simulator and the padded rows

    They don't match how the chain was estimated.

Divide totals, don't average ratios

When you turn past launches into one overrun factor, the arithmetic matters. Divide total actual by total estimate, not the average of each task's ratio.

The reason is weight. The chain to opening is measured in days, so a long task that runs over moves the date more than a short one. Totals respect that: a task estimated at 10 days that took 12 adds two days, a task estimated at 3 that took 6 adds three. An average of ratios would count the short task's ×2 as heavily as any long task's ×1.2, and a few small tasks that doubled could swing the factor far more than they ever moved a real date.

For Klasna's unpadded subject-launch rows: 67 actual ÷ 50 estimated = 1.34. That number answers the right question: on average, how many days did a planned day become?

Dataset: Three earlier Klasna launches: estimates and actuals · shown above

  • Do
    67 actual ÷ 50 estimated = 1.34
  • Don't
    Average of 1.2, 1.8, 1.17, 1.25 and so on

    Short tasks weigh as much as long ones.

What the padded rows prove

Six of the 17 past tasks were padded: their owners said in the retrospective that the estimate already held a private margin. If padding protected dates, at least some of these tasks should have finished early.

Dataset: Three earlier Klasna launches: estimates and actuals · shown above

None did. Together they were estimated at 78 days and took 85, about 9 % over even with the margin inside. The margin was used, and then some: the work spreads to fill the time, early finishes aren't handed on.

Six rows are a small sample, so don't claim a precise rate from them. But all six point the same way, and they match the reason padding fails. For the physics chain this settles one argument: the owners' padded total of 54 days isn't a safer plan, only a later one.

  • Do
    "0 of 6 padded tasks finished early; 85 vs 78 days."
  • Don't
    "Padded tasks were on time, so let's pad everything."

    They weren't; they ran 9 % over.

The chain from the inside: its expected value

The inside view of the chain uses the three-point estimates from Estimating in ranges: for each task, E = (O + 4M + P) ÷ 6, and for a chain, the expected values add up.

Klasna's five tasks to opening: the draft (2, 4, 6) gives 4 days; the outside review (4, 6, 14) gives 7; demo lessons (8, 11, 20) give 12; onboarding (5, 7, 9) gives 7; the dry run (3, 4, 11) gives 5. Total: 35 days.

Dataset · 5 rows

The chain to opening, as of 30 November 2026

Five tasks run one after another, in working days. From 30 November to 29 January there are 43 working days, after two days off at New Year.

taskownerowner_estimate_daysoptimistic_dayslikely_dayspessimistic_days
finish_curriculum_draftVira6246
outside_review_and_fixesVira124614
demo_lessonsRoman1881120
onboard_tutorsRoman10579
dry_run_with_bookingDanylo83411
Download CSV

That is three days more than the most likely total of 32. So in expectation the chain uses 3 of its 11 buffer days before anything special goes wrong, and finishes around 19 January. This is normal, not alarming: most likely values leave out the long bad side, and the expected value puts it back. The next question is how far the chain can stretch.

  • Do
    "Expected 35 days: 3 of the 11 buffer days used, around 19 January."
  • Don't
    "Most likely total is 32, so we have 11 days spare."

    Ignores the long bad side.

How far the chain can stretch

The spread of the chain follows the rule from Estimating in ranges: each task's standard deviation is (P − O) ÷ 6, and you add the variances, then take the root.

For Klasna's chain the standard deviations are 0.67, 1.67, 2, 0.67 and 1.33 days. Their variances add to 0.44 + 2.78 + 4 + 0.44 + 1.78 = 9.44, and √9.44 ≈ 3.07 days. Adding the deviations instead (6.33) would double the spread.

Dataset: The chain to opening, as of 30 November 2026 · shown above

Two standard deviations above the expected 35 gives about 41 days, 27 January, still inside the 43 available. The widest task is the demo lessons (8 to 20 days), which is where Danylo expects trouble and where to look first.

Remember the condition behind the rule: it assumes the tasks are independent. A shared cause that could delay several of them belongs on the risk list, not inside this number.

  • Do
    "σ ≈ 3.07; 35 + 2σ ≈ 41 days, inside 43."
  • Don't
    "σ = 0.67 + 1.67 + 2 + 0.67 + 1.33 = 6.33"

    Adds deviations, not variances.

The chain from the outside

The outside view applies history to your own plan. Take the plan at the same kind of estimate the history measured, here the most likely values, and multiply by the past overrun factor.

For Klasna: the chain's most likely values add up to 32 working days, and the subject launches ran 1.34 times their most likely estimates. 32 × 1.34 = 42.88 days: nearly all of the 43 available. The same move works per task when the history has it: reviews ran 1.69 times their estimates, so Vira's likely 6 days becomes about 10.

Compare with the inside view: 35 expected, about 41 at the high end. The two views don't have to agree. When the outside view is tighter, it is usually telling you about surprises the plan hasn't imagined yet. Here it says the date is achievable, but there is no room for anything new in the chain, and the review is the task to watch first.

  • Do
    "32 × 1.34 ≈ 42.9 of 43 days: tight."
  • Don't
    Multiply the padded 54 days by 1.34

    The factor was measured on unpadded estimates.

When the two views disagree, say both

The inside view says the chain is comfortable: 35 days expected, about 41 at two standard deviations, 43 available. The outside view is tighter: the most likely 32 days times the subject launches' 1.34 gives about 42.9 days, and Vira's review, at the 1.69 that reviews ran, becomes about 10 days instead of the expected 7.

Neither view is "right". The honest answer holds both: the date is achievable but tight. Say it with its confidence and its conditions: it holds if nothing new is added to the chain and the review is done by mid-December.

The tempting answers each drop half the evidence. "Guaranteed" ignores the history. "Impossible, 54 days" treats padding as a plan. "Move to 15 February to be safe" gives up two weeks of the exam season for a risk that can still be managed.

  • Do
    "Achievable but tight: holds if nothing is added and the review ends by mid-December."
  • Don't
    "Guaranteed, we have 8 days to spare."

    Ignores the outside view.

A date comes with its signals

A date with moderate confidence is a promise with conditions, so the message to the sponsor names the signals that would change it, each checkable by a date.

For Klasna's 1 February: the outside review, the task history says overruns most, should be done by mid-December; the shared buffer, held by the lead, shouldn't be used faster than the chain is being completed; and nothing new may join a chain that has no room left. If any of these trips, Leo hears it that week, while there are still options: cut scope, add help where it really shortens the chain, or decide on the date with eyes open.

Hours logged and how confident the owners feel aren't such signals: both can look fine while the date slips.

How it fits together: the outside view, the three-point chain and one owned buffer turn "can we promise it?" into a date with confidence and conditions. The next module turns to the people around the plan: Leo's shifting priorities and the stakeholder nobody has talked to yet.

  • Do
    "If the review isn't done by 15 December, you hear it that week."
  • Don't
    "I'll tell you if I get a bad feeling."

    Not checkable by a date.

Ready to practise?

Answer the lesson's exercises and earn 250 points the first time you finish it.

Start the exercises