Methodology · Shopify app revenue

MRR should explain the movement, not hide it.

A useful MRR report has a reproducible definition, preserves currency boundaries and keeps relevant merchant lifecycle evidence close.

The base definition

Monthly recurring revenue is the monthly value of active recurring subscriptions at a point in time. It is not transaction revenue, cash collected, payout value or a currency-converted total.

MRR = Σ monthly value of active recurring subscriptions

Normalize before summing

  1. 01Monthly plan: use the recurring monthly amount
  2. 02Annual plan: divide the recurring annual amount by 12
  3. 03Trial: contribute zero until conversion
  4. 04One-time and usage charges: report separately from basic MRR
  5. 05Currencies: calculate one MRR total per currency

Explain the bridge

For any period, the closing value should be explainable from its opening value and named movements.

Closing MRR
= Opening MRR
+ New + Expansion + Reactivation
− Contraction − Churn − Frozen movement

The exact frozen-shop convention can vary; the important part is that it is written down and applied consistently.

Keep context nearby

Movement categories become more useful when they are compared with merchant, lifecycle and transaction views for the same period. Marlo keeps those views in one workspace; its MRR movement summary is aggregated rather than a direct record-level drill-through.

  1. 01Review customers in the selected period
  2. 02Compare previous and current plan values
  3. 03Check lifecycle event dates and types
  4. 04Keep the reporting currency fixed
  5. 05Preserve exclusions and incomplete-range warnings

Use the method on your own data

Marlo keeps definitions beside the relevant report and detail views.

Start 7-day trial