When I and my Co-Founder -who as you will see have an experience in marketing and sales that sums up to zero, used to evaluate a new product idea, we did it the way almost everyone does: we get excited, read a few blog posts, ask three friends, then settle on one number that felt right and call it a plan.

"We'll get 50 customers in three months."

That number is the problem. It isn't a plan — it's a wish rooted in feelings we got after a good development run. A single point estimate hides all the uncertainty underneath it, and it gives you nothing to actually work with when reality doesn't cooperate.

We had a reality check after trying to sell our first product, and we stopped trusting idea evaluation because most of it produces one confident answer and no error bars. So in the middle of the frustration, when you are trying to sell something that you think is valuable and everyone- that matters- disagrees, in addition to other personal events that led me to the one comfortable place I always run into, I built the opposite: a stress test. Here's how it works, and what I learned about what it can — and can't — tell you.

Takeaways up front:

  1. A range is more honest than a point estimate.
  2. The relative answer (which channel is cheaper) survives uncertain inputs far better than the absolute numbers do.
  3. The most useful output isn't the forecast — it's finding out which assumption your decision actually hinges on, and most importantly making an informed one.

Stress-testing isn't forecasting

A forecast says: this will happen. It gets judged by whether it was right.

A stress test says: if these assumptions hold, outcomes land in this range, and here's what moves them. It gets judged by whether it helped you decide.

Those are different jobs. The second one is honest about the fact that you don't know your conversion rates in advance — and it's designed to be useful despite that.

How the simulation works

The inputs split into two groups:

Fixed (from the founder): budget, team size, hours per week, the planning horizon, price, and the customer target.

Uncertain (rolled fresh every trial): reply rates, conversion rates at each funnel stage, cost per click, cost per contact, monthly churn, and sales-cycle delay. Each one is a range with a most-likely middle — a triangular distribution — not a single made-up number.

Then we run three go-to-market approaches (founder-led outreach, content & community, paid ads) across a few market conditions, and simulate each one thousands of times. The whole thing reduces to a loop like this:

function oneTrial(a: Assumptions): number { // roll each uncertain input from its range const replyRate = triangular(a.replyRate); // e.g. 4%–12%, peak 8% const closeRate = triangular(a.closeRate); // e.g. 15%–35%, peak 25% const churnWeekly = triangular(a.churnWeekly); // e.g. 0.3%–1.5%, peak 0.7% let customers = 0; for (let week = 1; week <= a.horizonWeeks; week++) { const contacts = a.capacityPerWeek; // fixed, from team size const newCustomers = contacts * replyRate * closeRate; // one week's funnel customers = customers * (1 - churnWeekly) + newCustomers; } return customers; } // run a thousand times, sort, read the range const results = Array.from({ length: 1000 }, () => oneTrial(a)).sort((x, y) => x - y); const median = results[500]; // middle result const low = results[100]; // P10 const high = results[900]; // P90 

(This is a simplified sketch of the idea, not the actual engine.)

A thousand trials give you a distribution, not a guess. The middle is the median; the middle 80% — between the 10th and 90th percentile — is the honest range. The line on the chart is the median week by week, and the shaded band around it is the range.

A real run for a $250k-funded, two-person startup over a 12-week horizon looks like this:

Approach (baseline) Median customers 80% range Cost per customer
Founder-led outreach 9 4–18 $320
Content & community 32 12–69 $113
Paid ads 41 19–81 $915

Paid ads reach the most people — at $915 per customer instead of $113. That trade-off is exactly the kind of thing a single point estimate hides.

What it can and can't tell you

It's good at:

  • The relative answer. Even if the absolute numbers are off, "paid is ~8x more expensive per customer than content" tends to survive.
  • The range. "Somewhere between 12 and 69" is more useful than "32" because it forces you to plan for the downside.
  • The hinge. Sensitivity analysis tells you which assumption your answer is most sensitive to — so you know the one thing worth going out and validating.

It can't:

  • Predict the future. If your conversion assumption is wrong, the range moves. That's not a bug; it's the whole point of showing the range instead of a point.
  • Fix bad inputs. The output is only as good as the assumptions it's built on — so being honest about where those assumptions come from matters more than the math.

What I built

I turned this into CrashTest: you type in an idea plus a few facts, and it runs the market research and the simulations, then hands you one recommended approach with the numbers behind it. The first report is free.
I have to add here that the Monte Carlo simulation is only one part of the analysis -as you probably will be able to guess- and my goal is to make this the starting point to make better decisions and help builders do a quick reality check that will help them either continue, pivot, or even stop in some cases.

But the reason I'm writing this isn't to sell you anything. It's the realization that sat underneath the whole build: I don't trust a single confident number about the future, from anyone — including myself. A range, with the assumptions laid bare, is the most honest thing a founder can hold when they're deciding where to point their time and money.

To recap

  1. A range beats a point estimate. It doesn't pretend to know what it can't know.
  2. The relative answer is the durable one. Which channel is cheaper survives sloppy inputs; the exact customer count doesn't.
  3. The best output is the hinge. Knowing which assumption to go validate is more valuable than any forecast.

If you've built or used something similar — or if you think simulation is overkill for a two-person startup — I'd genuinely like to hear it in the comments.