How the numbers are computed
About this article

Author: Dmitry Dugarev
A spreadsheet answers "what's the expected profit?" with a single cell:
=SUM(revenue) − spend − fees. For a funnel with plenty of monthly
conversions, that average is a reasonable stand-in for what actually
happens. For a small funnel — a handful of leads and one or two sales a
month — the average can describe a month you will almost never have.
Why the average misleads
Take the example funnel from the homepage: €1,100 a month of Google Ads at €2.50 a click buys 440 clicks in an average month, 5% of them book a free check, and 5% of the checks buy a €2,000 audit. End to end, 1 in 400 clicks buys. That's 1.1 clients in the average month, so the spreadsheet answer is an expected profit of +€1,100 a month. (The example has no payment fees, to keep the arithmetic simple.) That number is real — it's the mean of every possible month, weighted by how likely each one is. But no month sells 1.1 clients. A small funnel sells whole clients or none, so the months are lumpy:
| Clients in a month | Chance | Profit of that month |
|---|---|---|
| None | 33% | −€1,100 |
| One | 37% | +€900 |
| Two | 20% | +€2,900 |
| Three or more | 10% | +€4,900 or more |
On the scorecard, that reads:
| Readout | Value | What it means |
|---|---|---|
| Risk of none | 33% | One month in three sells nothing: −€1,100. |
| Typical month · P50 | +€900 | One client, after paying for the ads. |
| Good · P90 | +€3,890 | The best 5–15% of months: two clients in about half of them, three in the rest. |
The typical month makes a profit, but one month in three has no client at all. Judge this funnel after a single month and you'll kill a good offer a third of the time — not because the funnel is bad, but because you asked a single-point question of a distribution.
What FunnelCAD does instead
FunnelCAD doesn't stop at the average, and it doesn't guess the rest with trial runs either. It calculates the chance of every possible month straight from your inputs. There is no simulation and no random number anywhere — no runs to set, no seed to fix — so the same funnel always gives the same figures. For a funnel the size of the example, the whole calculation takes a few milliseconds, and the scorecard marks its results Exact.
It gets there in three steps.
1. A month's visitors are a matter of chance
"Budget ÷ CPC" and "visits a month" are what a month brings on average, not a promise. FunnelCAD treats the visitors of a month as a Poisson count around that average — the standard model for many people who each may or may not turn up. So 100 clicks at a 1% conversion rate aren't "one sale": they're a 36.8% chance of no sale at all (e−1).
The same rule gives the chance that nobody reaches a block in a month: e−Σ N·p, summed over the sources, where N is a source's average visitors and p is the chance that one of its visitors reaches the block by any path. For the audit in the example, that's e−440 × 1/400 = e−1.1 = 33.3% — the month without a client above. For this model, that is exact, not an approximation.
2. The whole month, not just its average
A month's profit is the sum of many small uncertain amounts: every path a visitor can take through the funnel, with its prices and costs. FunnelCAD lays the possible profits out on a fine grid of money values (a lattice) and adds the pieces together with a fast Fourier transform — the standard way to combine uncertain amounts exactly, without trying outcomes one by one. The result is the complete distribution of a month's profit: every outcome with its probability.
A year is built the same way, and so are the hours a month takes you (see capacity). The month of a funnel that has been running for a while also counts the subscribers of earlier months who are still paying.
Over a year, the luck partly evens out. The typical year of the example is about +€12,900, close to twelve average months (+€13,200), and about 2 years in 100 end in the red.
3. Typical values are averages over bands
From that distribution, the scorecard reads a few numbers:
- Expected profit is the average month — exactly the spreadsheet number.
- Typical month · P50 is the average of the middle 40–60% of months.
- Bad · P10 and Good · P90 are the averages of the worst and the best 5–15% of months.
- Risk of none is the chance of a month without a paying client — P(zero clients). Hits €3,000/mo is the chance of a month that reaches your profit target; the label names your target, €3,000 unless you set another one.
Why bands and not exact percentiles? A small funnel's months come in steps, and a strict percentile jumps from one step to the next. In the example, two clients or fewer happen in 90.04% of months, so the strict 90th percentile is +€2,900. Make the clicks one cent cheaper — €2.49 — and that share slips to 89.95%: the strict 90th percentile jumps to +€4,900, a €2,000 swing for one cent. The band average only moves from +€3,890 to +€3,910. The scorecard shows these typical values rounded to €10.
What the odds can't know
The odds are exact for the rates you typed. If a rate is a guess, the real spread of your months is wider than the one on the scorecard. That's what sensitivity is for: it shows which guess moves the profit most, so you know which one to test first. And capacity covers what happens when a good month is too good.