The Optimism Trap: Predicting Deadlines with Monte Carlo Simulations | Sanjana
Sanjana, a Humanitarians AI project manager, explains why single-number deadlines are always too optimistic and walks through building a 10,000-run Monte Carlo simulation with Claude to find a real P80 commit date.
Sanjana, a project manager at Humanitarians AI, tackles the one number every project comes down to: the deadline. She walks through Monte Carlo schedule risk, a method for letting a computer play out a project thousands of times so the team can see not just when they hope it finishes, but when it realistically will.
Why single-number deadlines are too optimistic
Most project plans give each task a single best-guess number of days, add them up, and call the sum the deadline: design five days, back end eight, testing four, release two, nineteen days done. The problem is that a best guess isn't a promise. Some tasks finish a little early, but others blow up by a week, and a task can only save a plan a day or two while it can cost many more. Add up enough of those lopsided guesses and the real finish date almost always lands later than the plan predicted. The single number isn't just rough, it's quietly too optimistic nearly every time.
The four-step Monte Carlo method
Instead of one guess per task, Sanjana lays out four steps. First, give each task three numbers instead of one: a best case, a most likely case, and a worst case, which together form the task's range. Second, let the computer pick a random length for every task inside its range and add them up, producing one possible version of the whole project. Third, repeat that ten thousand times, turning one guess into ten thousand outcomes. Fourth, instead of averaging, read the date the project hits eighty percent of the time, the P80, which is the date a team can actually promise.
Building it with Claude
The instructions given to Claude are short: take the list of tasks with their three numbers each, pick a random length for every task inside its range, add them up for one run, repeat that ten thousand times, and report the results. Because the instructions are specific about exactly what to do, the code Claude writes back is code that can be read and checked directly, a sampling function that leans toward the likely value while leaving room for the worst case, one trial that sums every task into a single run, and the whole thing repeated ten thousand times, printed next to the old single-number plan for comparison.
Why parallel tasks change everything
Running the simulation shows ten thousand outcomes stacking into a shape, with the original plan's date landing at the hopeful, early edge of that distribution and the true P80 further out. But the first version of the simulation quietly cheated by adding tasks as if they happened one after another. Real projects run tasks in parallel, back-end and front-end starting together after design, with testing unable to begin until both finish. When two paths join back up, the project has to wait for the slower one. Fixing this means telling Claude which task depends on which, so each task starts only once everything before it is done, each task starting at the latest finish time of the tasks that feed into it. Re-running the simulation with dependencies included shifts the distribution further right and wider, exactly what waiting for the slowest path predicts.
Key takeaways
- Single-number deadlines are systematically too optimistic because tasks can save a little time but lose a lot, and the losses dominate the sum.
- Giving each task a best case, likely case, and worst case turns one fragile guess into a realistic range.
- Running ten thousand randomized trials produces a distribution of outcomes instead of one number, from which P50, P80, and P90 can be read.
- P80, the date the project finishes eighty percent of the time, is the date a team can actually commit to, not the average or the original plan.
- Parallel task paths matter: a project has to wait for its slowest concurrent path, which pushes the real deadline out further than a simple sum suggests.
Who this is for
This is for project managers, team leads, and anyone estimating deadlines who wants a concrete, buildable method, using Claude to write the simulation code, for turning optimistic guesses into a defensible, statistically grounded commitment date.
Chapters
- 0:00The Optimism Trap: Why Single-Number Deadlines Fail
- 0:35The 4-Step Solution: Transitioning from Guesses to Ranges
- 1:05Coding with Claude: Building the 10,000-Run Simulation
- 1:35Visualizing the Risk: Understanding P50, P80, and Safety Buffers
- 2:05The Merge Bottleneck: Why Parallel Paths Increase Delay Risk
- 2:35Your Turn: Identifying and Estimating Your Riskiest Tasks
Full transcript(auto-generated, with timestamps)
The Optimism Trap: Why Single-Number Deadlines Fail
[0:00]Hi, I'm Sanjana, a project manager at Humanitarian's AI. And this video is about the one thing every project comes down to, the deadline. We'll look at a simple but powerful idea called Monte Carlo schedule risk. Don't let the name scare you. It just means letting a computer play out your project thousands of times, so you can see not only when you hope it finishes, but when it realistically will. Here's the trouble with most plans. We give each task our best guess number of days, add them up, and call that the deadline. Design five days, back end eight, test four, release two. 19 days. Done. But a
The 4-Step Solution: Transitioning from Guesses to Ranges
[0:37]Best guess isn't a promise. Some tasks finish a little early, and others blow up by a week. And here's the catch. A task can only save you a day or two, but it can cost you many. So, when you add up all those lopsided guesses, the real finish almost always lands later than the plan. That single number isn't just rough. It's quietly too optimistic nearly every time. So, instead of one guess, we use a method with four simple steps. Step one,
Coding with Claude: Building the 10,000-Run Simulation
[1:05]For each task give three numbers instead of one. A best case, a most likely case, and a worst case. That's the task's range. Step two, let the computer roll the dice once picking a random length for every task inside its range and add them up. That's one possible version of your whole project. Step three, do that 10,000 times. Now you don't have one guess, you have 10,000 outcomes. Step four, instead of the average, the date you'll hit 80% of the time. That's
Visualizing the Risk: Understanding P50, P80, and Safety Buffers
[1:35]The date you can actually promise. Let's build it with Claude. The instructions are short and clear. Take my list of tasks, and for each one use its three numbers, best, likely, and worst. Pick a random length for every task, add them up for one run, then repeat that 10,000 times, and tell me the results. Because I'm being specific about exactly what to do, the code Claude writes back is code I can read and check myself. Here's what it wrote. You don't need to read every line, just the shape of it.
The Merge Bottleneck: Why Parallel Paths Increase Delay Risk
[2:05]Up top is the list of tasks, each with its three numbers. The sample function picks one random length inside a task's range. It leans toward the likely value, but it leaves room for that long, painful worst case. One trial does that for every task and adds them up, giving one imagined run of the whole project. Then we run it 10,000 times and notice it also prints the old plan number, the simple sum of the best guesses, right next to the results, so we can see just how far off that single
Your Turn: Identifying and Estimating Your Riskiest Tasks
[2:36]Guess really is. Now, let's run it. Watch the 10,000 outcomes stack up into a shape. Each bar is how often the project finished on that day. Remember our plan said 19 days. Look where 19 lands, right at the hopeful, early edge. The middle of the pile, a true coin flip, is already later. And the date we'd actually commit to, the P80, is further out still. That gap between the plan and the P80 isn't extra padding. It's the risk that was hiding inside the single number the whole time, but our first version quietly cheated. It added the tasks up as if they happened one after another in a single line. Real projects don't work that way. Some tasks run at the same time. Here, back-end and front-end both start after design and run together, and
Testing can't begin until both are finished. And that's the key idea. When two paths join back up, the project has to wait for the slower one. So, let's fix it. We'll tell Claude which task depends on which, so each task only starts once everything before it is done. The whole fix is really just one line. Each task now starts at the latest finish time of the tasks before it. That little word max is the important part. It's the moment where paths join. You can't move forward until every path leading in is finished. It's also why adding more people to parallel work doesn't always help. Your finish is decided by the slowest path, and the more paths running at once, the better the chance that at least one runs late. Run it again. The new
Shape sits a little to the right of the old one, and it spreads out wider, exactly what waiting for the slowest path predicts. The date you can promise moves out by a few days, and that's not bad news. It's the truth showing up early while you still have time to plan around it. Now you can give a real answer, an 80% chance we're done by this day, instead of a single number everyone secretly knows will miss. So here's what to remember, and you can use it on any project. One number hides the risk. Instead, give each task a range, let the computer run it thousands of times, and read three numbers. P50 is a coin flip. P80 is the date you can safely commit to. And P90 is a date you'll almost never miss.
The gap between your old single number plan and the P80 is your safety buffer. And now, for the first time, you can actually see it, measure it, and defend it. Now it's your turn. Think of a project you're not quite sure about. Write down its tasks, give each one three honest guesses, best, likely, and worst, and note what has to happen before what. Then paste this prompt into Claude. It'll run the simulation, hand you back a date you can actually promise, and the most useful part, tell you which task's uncertainty is causing the most trouble, so you know exactly where a better estimate would help the most. Monte Carlo schedule risk with San Jana Rao for Humanitarian's AI. Give your plan a range, and let the simulation tell you the truth. Thanks for watching.
More from Humanitarians AI Fellows
1:1948 Hours to Air: Navigating Post-Approval Creative Compliance | Bhakti Save
2:26From Grief to Growth: Crafting a Volunteer Spotlight | Ankita
1:22Building from Zero: Designing Workflows That Stakeholders Actually Adopt | Bhakti Save
1:43Why SERS Needs Machine Learning: Overcoming Unreliable Signal Gaps | Karthik
1:53Digital Asset Management (DAM): The 6-Stage Lifecycle to Cure File Chaos | Bhakti Save
1:30