How to Calculate MRR for an Ecommerce Subscription

MRR is straightforward until you have prepaid plans, varying frequencies and skips. How to normalise them, and what the movement breakdown tells you.

Monthly recurring revenue is simple for a SaaS product where everyone pays monthly. It is less simple for an ecommerce subscription where plans run every two weeks, every eight weeks, or are prepaid six months at a time.

Normalise everything to a month

Convert each active subscription to a monthly-equivalent value:

PlanPriceMonthly equivalent
Every 2 weeks₹800₹800 × 26 ÷ 12 = ₹1,733
Every 4 weeks₹1,499₹1,499 × 13 ÷ 12 = ₹1,624
Monthly₹1,499₹1,499
Every 8 weeks₹2,400₹2,400 × 6.5 ÷ 12 = ₹1,300

Note the every-4-weeks row: it bills thirteen times a year, not twelve. Treating four-weekly as monthly understates MRR by about 8%, which compounds into every downstream number.

Prepaid needs a decision

A subscriber who paid ₹8,994 for six months is not generating ₹8,994 of MRR.

Two defensible treatments:

Recognise it across the term. ₹8,994 ÷ 6 = ₹1,499/month for six months. This is the right answer for understanding the recurring base and comparing against monthly plans.

Exclude prepaid from MRR entirely and report it separately as committed revenue.

Either is fine. What is not fine is counting the full amount in the month it was received, which produces a spike that looks like growth and a subsequent cliff that looks like collapse.

Skips and pauses

A subscriber who skips this cycle is still an active subscriber. Do not remove them from MRR — they have not churned.

But if skipping is common, MRR will overstate the cash you actually collect in any given month. Track billed revenue alongside MRR so you can see the gap. A widening gap means skip rates are rising, which is worth knowing early.

Paused subscribers are a judgement call. The honest approach: exclude them from MRR, report them as a separate “paused” count, and watch what proportion return. A business with a large hidden paused population is not as healthy as its active count suggests.

The movement breakdown

MRR as a single number is nearly useless. The movement is where the information is:

Opening MRR
  + New          (first-time subscribers)
  + Expansion    (upgrades, added products, frequency increases)
  + Reactivation (returning subscribers)
  − Contraction  (downgrades, reduced frequency)
  − Churn        (cancellations and failed-out subscriptions)
= Closing MRR

Flat MRR with large new and large churn is a leaky bucket that will stop growing the moment acquisition slows. Flat MRR with small new and small churn is a stable, mature base. The single number cannot distinguish them; the breakdown does immediately.

Net revenue retention

NRR = (Opening MRR + Expansion − Contraction − Churn) ÷ Opening MRR

Above 100% means your existing subscribers are worth more over time even with no new acquisition. For ecommerce subscriptions that usually requires expansion — added products, higher frequency, upsells — because pure replenishment rarely expands on its own.

Do not confuse MRR with cash

MRR is a normalised measure of the recurring base. Cash collected in a month includes prepaid lump sums, excludes skips, and is affected by failed payments and recoveries.

Both matter. Confusing them is how a business with healthy MRR runs out of money.