launches

Verified MRR: what the badge proves, and what it doesn't

Launches can show their monthly recurring revenue, checked with Stripe every night. How we calculate it, keep it honest, and where its limits are.

The launches team· 18 Oct 2026· 4 min read

Why show revenue at all

Votes tell you what people like. Revenue tells you what people pay for. For a lot of visitors, whether they're other makers, early adopters or someone deciding whether a tool will still be around next year, the second is the more useful signal. But a revenue figure typed into a profile is just a claim, and claims are easy to make. So we built a way to show it that's checked.

Once your launch has a , you can connect Stripe and show your on your launch page and next to your launch on the board. We check the figure every night. If we can't check it, it comes off. It's optional, and most launches won't show one, which is fine: a launch without the badge is not a launch without revenue.

How we calculate it

You create a in Stripe that can only read subscriptions and coupons, and paste it into your launch's settings. That key can't charge anyone, issue refunds or change anything in your account. Before we keep it, we use it once to check that it works and has the right permissions; a key that can't read is never stored.

Every night we read your active subscriptions and add up what they bill per month. The rules are the ones you'd expect if you worked it out yourself:

  • Active and past-due subscriptions count. Trials don't.1
  • Each plan is converted to a monthly amount: a yearly plan counts as a twelfth, a quarterly plan as a third.
  • Prices billed per seat are multiplied by the number of seats.
  • Coupons that keep applying are taken off; one-time coupons are ignored.2
  • Usage-based and tiered prices are left out, because they have no fixed monthly amount.

If you bill in more than one currency, we keep a total for each and show the largest. We don't convert between currencies, because the exchange rate would move the number from day to day for reasons that have nothing to do with your business.3

Why some revenue is left out

Leaving out usage-based prices means the badge can understate a business that charges mostly by usage. We chose that over guessing. A figure that is sometimes lower than reality is more useful than one that is sometimes higher, because the first can only surprise a visitor pleasantly.

Ranges by default

Not everyone wants to publish an exact figure, and for most visitors a range says enough. So by default the badge shows the band your MRR falls into, and you can choose to show the exact figure instead. You can switch between the two at any time from the same panel.

$5K–10K MRR
<$1K$1–5K$5–10K$10–25K$25–50K$50–100K$100–250K$250K–1M$1M+
The bands a verified MRR badge can show; makers can choose the exact figure instead

The bands get wider as the numbers grow. Early on, small differences in revenue say a lot about a product's traction; later, the same difference says very little. Hovering over the badge shows when Stripe last confirmed the figure, so a visitor can see it's current.

Keeping it honest

A badge that never changes isn't verified, it's decoration. So the check runs every night, and the badge comes off as soon as it can't be trusted:

  • If the key stops working, because it was deleted, rolled or lost its permissions, the badge disappears after the next check and your panel tells you why.
  • If a week passes without a successful check for any reason, the badge disappears until a check works again.
  • When you disconnect, we delete the key and the figure straight away, and the badge comes off.

The key itself is stored encrypted and used for nothing except this calculation. We don't read customer names, emails or individual payments, and we don't keep a history of your figures beyond the latest one.

If the badge disappears

Your launch's panel shows the reason whenever a check fails. The usual causes, and what to do about each:

  • The key was rolled or deleted in Stripe. Create a new restricted key and connect again; the old figure is replaced.
  • The key lost a permission. Edit it in Stripe so it can read both subscriptions and coupons, then connect again.
  • Stripe couldn't be reached that night. Nothing to do: the next nightly check usually clears it.

What it doesn't prove

We'd rather say this plainly than have you find out later. The badge proves that a Stripe account connected to this launch bills that amount in subscriptions. It doesn't prove that the Stripe account belongs only to this product. A maker who runs several products from one Stripe account, or who connects the wrong one, will show a figure that isn't this product's alone.

We reduce that risk by asking for a verified domain first, so the person connecting Stripe has shown they run the product's website. We may add more checks later, such as comparing the website listed on the Stripe account with the launch's domain. No check makes a self-connected account perfect, though, and we won't pretend otherwise. Read the badge as strong evidence, not as an audit.

Setting it up

Open your launch from your submissions, verify your domain if you haven't already, then find Verified MRR further down the page. The panel links to the right place in Stripe and lists the two permissions to tick. Paste the key, choose whether to show a range or the exact figure, and connect. The whole thing takes a few minutes, and you can disconnect whenever you like.

The badge is shared across every launch of the same product, so if you relaunch later it carries over to the new page without reconnecting. If you're planning a relaunch, when to relaunch, and what counts as new explains how the pages connect.

Notes

  1. 1Past-due subscriptions are counted because they're still active in Stripe and often recover. Trials aren't counted, because nobody has paid yet. ↩
  2. 2One-time coupons are ignored because they don't change what renews. Coupons that last, for a set number of months or for the life of the subscription, are taken off. ↩
  3. 3We store only the monthly total per currency and the date it was checked. We never store customers, invoices or payments. ↩

Share this article

Keep reading

The weekly newsletter

Last week's top launches, once a week in your inbox.

you@company.com