Blog

How to Track MRR on Lemon Squeezy (Accurately) in 2026

· Chanbo

Lemon Squeezy is a great place to start selling — it's a merchant of record, so tax and compliance are handled for you. But once subscriptions start rolling in, one question gets harder than it should: what's my actual MRR, and can I trust the chart?

Here's how MRR works on Lemon Squeezy, the gotcha most people miss, and how to track it accurately — especially if you also sell on Polar or Paddle.

MRR = monthly recurring revenue, normalized

MRR is the recurring revenue you can expect each month from active subscriptions. The math is simple in principle:

  • A $20/mo plan contributes $20 to MRR.
  • A $240/year plan contributes $240 ÷ 12 = $20 to MRR (you normalize annual to monthly).
  • Sum that across all active subscriptions = your MRR.

The tricky part isn't the arithmetic. It's movement — how MRR changes over time — and what counts as a subscription ending.

The Lemon Squeezy gotcha: a snapshot isn't a history

Lemon Squeezy's built-in MRR/ARR has improved. Historically the charts were calculated in real time from the subscriptions active right now, which meant historical metrics weren't precise — they didn't properly account for subscriptions that were active in the past but have since cancelled. Lemon Squeezy now takes a daily snapshot of MRR/ARR to keep historical data accurate.

That's a real improvement, but it highlights the core issue: MRR is a story over time, not a single live number. To analyze trends, compare months, or explain a dip, you need a ledger of every change — not just today's total.

What accurate MRR tracking actually requires

To track MRR on Lemon Squeezy properly, you need to capture each event that changes recurring revenue and classify it:

MovementTriggered byEffect on MRR
NewFirst active subscription+
ExpansionUpgrade to a higher-priced plan+
ContractionDowngrade to a lower-priced plan
ChurnSubscription actually ends / access revoked
ReactivationA churned customer resubscribes+

Two things people consistently get wrong:

  1. Annual normalization. If you don't divide annual plans by 12, your MRR balloons every time someone buys a yearly plan, then looks like it crashes. Always normalize.
  2. Canceled ≠ churned. This is the big one (next section).

The mistake that wrecks your churn number

On Lemon Squeezy, a subscription can be cancelled but still active until the end of the paid period. That customer is still paying you. If your tracking counts that cancellation as churn immediately, you'll:

  • Overstate churn.
  • Record the revenue loss too early.
  • Panic about a retention problem that hasn't happened yet.

Churn should only be recorded when the subscription actually ends and access is revoked (in Lemon Squeezy terms, when it expires/ends rather than when cancelled is simply flagged true). And if a customer reverses a scheduled cancellation, that pending flag should just clear — no movement at all.

Lemon Squeezy webhooks also don't ship the per-cycle price and interval inline on every event, so accurate tracking means looking up the related product variant to get the real recurring amount. It's the kind of detail that's easy to miss in a hand-rolled spreadsheet.

Three ways to track it

  1. Lemon Squeezy's built-in charts. Good for a quick glance now that snapshots exist. Limited for deep trend analysis, and it only shows Lemon Squeezy.
  2. Spreadsheet from CSV exports. Total control, total maintenance. You'll own the normalization and churn logic forever, and it won't update live.
  3. A purpose-built MoR dashboard. Connect once, get correct movement automatically, and — crucially — combine Lemon Squeezy with your other platforms.

Tracking it accurately with Throughlines

Throughlines is a read-only dashboard built for merchant-of-record platforms, with Lemon Squeezy as a first-class integration.

  • Connect read-only. Paste your Lemon Squeezy API key; Throughlines backfills history and stays current via webhooks. It never modifies your store.
  • Correct movement, automatically. Annual normalized to monthly; new/expansion/contraction/churn/reactivation classified for you; variant lookups handled so per-cycle pricing is right.
  • Canceled ≠ churned, enforced. Pending cancellations keep counting until access is actually revoked.
  • Accuracy cross-check. Throughlines reconciles its computed MRR against Lemon Squeezy's own figure.
  • One number across platforms. Selling on Polar or Paddle too? See your consolidated MRR in a single view.

The takeaway

Lemon Squeezy's snapshot-based MRR is a solid glance, but accurate tracking means a proper ledger: normalize annual plans, classify every movement, and never count a scheduled cancellation as churn. Do that by hand and it's a chore that drifts out of sync; do it with a tool built for MoR platforms and you get numbers you can actually quote.

Track your Lemon Squeezy MRR in Throughlines →


Related reading: Why "canceled" isn't "churned" · Consolidating MRR across MoR platforms