Subscription MRR

Normalize subscription billing plans to recurring monthly revenue and annualized run rate.

Description

Monthly recurring revenue normalizes subscription billing to a monthly run rate.

Monthly recurring revenue normalizes subscription billing to a monthly run rate. Annual billing contributes its monthly equivalent rather than the whole invoice each month.1

Normalize subscription billing plans to recurring monthly revenue and annualized run rate.

When to use Subscription MRR

Use this for the following task: Normalize subscription billing plans to recurring monthly revenue and annualized run rate.

Prepare the scenario values in one currency and consistent time periods. Use fractions for fraction fields and percentage points for percent fields.

How to use Subscription MRR and understand its results

  1. Prepare the scenario values in one currency and consistent time periods. Use fractions for fraction fields and percentage points for percent fields.
  2. Enter planNames, subscriberCounts, billingAmounts, billingPeriodMonths using the field table, then run the tool.
  3. Read planMrr, totalMrr, annualizedRunRate. Interpret flags, units, ordering and placeholder values using the rules below.
  4. Review any reported issue or failed check, correct the supplied values when appropriate, and verify the result in its intended context.
Input fieldMeaningValue type and boundsRequirement
planNamesPlan nameslist of string; each entry: stringRequired
subscriberCountsSubscriber countslist of number; each entry: numberRequired
billingAmountsBilling amountslist of number; each entry: numberRequired
billingPeriodMonthsBilling period monthslist of number; each entry: numberRequired

Align plan names, nonnegative subscriber counts/amounts and positive integer billing periods. Normalize each plan and sum.2

plan MRR=subscribers×billingAmount/billingPeriodMonths; annualizedRunRate=12 totalMRR

This summarizes the declared operation. Units, indexing, inclusivity and exceptional cases are explained in the surrounding text.

Output fieldMeaningValue type
planMrrPlan mrrlist of number
totalMrrTotal mrrnumber
annualizedRunRateAnnualized run ratenumber
json
{
  "input": {
    "planNames": [
      "monthly",
      "annual"
    ],
    "subscriberCounts": [
      10,
      5
    ],
    "billingAmounts": [
      20,
      120
    ],
    "billingPeriodMonths": [
      1,
      12
    ]
  },
  "output": {
    "planMrr": [
      200,
      50
    ],
    "totalMrr": 250,
    "annualizedRunRate": 3000
  }
}

Limitations and assumptions

Use a consistent currency. This is recurring run rate, not recognized revenue, cash receipts or a forecast.

These outputs describe the supplied scenario; accounting definitions, capitalization terms and time periods must match the intended use. Malformed requests produce input errors. A successfully evaluated request can still contain false flags, empty result lists or a result outside the supplied threshold; those outcomes have the meanings stated above.

Alternative or Complementary methods

Choose MRR Movement Bridge for this operation: Reconcile starting MRR with new, expansion, contraction, and churn movements. For a complementary task, use Net Revenue Retention for this operation: Compute net revenue retention including expansion within the starting customer cohort.

Further background: Billing analytics dashboard.

References

  1. Billing analytics dashboard — Stripe

  2. Subscription MRR — tool.io

Similar or alternative tools

  • MRR Movement Bridge

    Reconcile starting MRR with new, expansion, contraction, and churn movements.

  • Net Revenue Retention

    Compute net revenue retention including expansion within the starting customer cohort.

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies