How we calculate Ghost MRR

The calculator is an estimator, not a measurement. This page documents the formula, says which inputs are facts and which are assumptions, and sets out what the tool deliberately doesn't try to capture.

The formula

Ghost MRR = Σ ( P(would_pay_full_price) × discount_amount )

Expanded into the five things you can actually look up, plus the one you can't:

conversions
  × share_discounted
  × p_would_have_paid
  × (plan_price × discount_pct)
  • conversionstrials that converted to paid in the last 30 days. Not signups.
  • share_discountedhow many of those received a discount or offer: the day-7 email, the win-back coupon, a negotiated rate.
  • p_would_have_paidof the people you discounted, the share who would have paid full price anyway. This is the counterfactual, and it is the only input that is not a fact about your business.
  • plan_price × discount_pctthe discount itself, in dollars per month.

The one number nobody can look up

Four of those inputs are in your billing data. The fifth — p_would_have_paid — is not in anyone's billing data, because it asks what would have happened in a world where you didn't send the discount. You only observe the world where you did.

So the calculator does not assert it. It ships with a 55% default and puts it on a slider between 20% and 80% on the result page. Move the slider and the number moves with it. That range is the answer at this level of information, and anyone telling you they know the figure precisely from five inputs is selling something.

We don't offer an industry benchmark for it either. There is no public dataset on what share of discounted SaaS trials would have converted at full price, and inventing a reassuring number to put under your result would undermine the only thing this page is for.

Why the discount's duration changes the answer

A first-month-only discount costs you once per customer. A discount that runs for the life of the plan costs you every month that customer stays — so each month's cohort adds to the last.

The headline figure is the same either way: the margin given away on one month's conversions. But if you told the calculator the discount is for the life of the plan, the result page also shows what the monthly run-rate looks like after a year of cohorts accumulating — twelve times the headline.

That second figure assumes nobody churns, which makes it an upper bound rather than a forecast. Your real number sits between the two, and where exactly depends on retention we can't see from here.

What this calculator does not measure

  • Discounts that worked — the ones that genuinely saved a conversion. Those are money well spent and are not Ghost MRR.
  • Trials that never converted at all. That's a different problem with a different fix.
  • Churn on existing paid customers, expansion, or upsell.
  • The second-order cost of training your best customers to wait for a coupon — real, and not something five inputs can price.

How the product estimates it instead

Installed, KaQuill doesn't ask you to pick one counterfactual for everyone. It estimates conversion probability per trial user from behavioural events, and only intervenes where the intervention plausibly changes the outcome.

That is still an estimate, and it's worth being exact about why: a model predicting who would have converted without help cannot be verified case by case, because you never observe both branches for the same user. What you can do is check it in aggregate — hold out a random slice of otherwise-eligible trials, send them nothing, and compare conversion against the treated group. That difference is observed rather than inferred, and it is how the assumption gets corrected over time.

So the dashboard figure is a better-informed estimate than this page's, not a measurement. Treat Ghost MRR as a directional decision metric — good enough to change a discounting policy, not an accounting entry.

See it on your own trials

The calculator rests on a number you guessed once. The product estimates it per user, and shows you the confidence and the decision path behind every call.

Try KaQuill free →