Business Metrics
Intermediate 14 min read Business Metrics

Revenue Metrics

Each revenue family answers a different question

Revenue is not one number: MRR, bookings, billings, GMV and net revenue each answer a different question. Mixing them is the classic analytics crime against boards.

MRRARRGMVbookingsbillingsnet revenuecontracted revenuerefunds
Before we start

What you will learn

  • Distinguish MRR, bookings, billings, GMV and net revenue
  • Compute each from the same order data
  • Choose the right revenue metric per audience
Introduction

What is this?

Revenue metrics differ by what is counted and when: MRR/ARR are recurring contracted value, bookings are signed contract value, billings are what was invoiced/collected, GMV is the gross value flowing through a marketplace, and net revenue is MRR minus refunds and discounts. Each serves a different boss: pipelines (bookings), cashflow (billings), product health (MRR), marketplace size (GMV).

Motivation

Why do you need it?

  • A board deck mixing GMV with MRR is indefensible to a sharp finance partner.
  • Cashflow reality (billings) and commercial hype (bookings) tell opposite stories in some months.
  • Refund and discount treatment changes net revenue by material amounts.
  • Analytics candidates are screened on knowing which number to show when.
Think about it

Mental model

Imagine

Restaurant ticket management

Think of

Revenue metrics

Bookings are the signed reservation book; billings are the invoices sent for the evening; MRR is the monthly-ticket subscriptions; GMV is the total value of all dinners sold including comps before discounts; net revenue is what actually lands after refunds.

Mechanics

How it works

  • Bookings: total contract value signed in the period, regardless of delivery.
  • MRR: recurring amount of active subscriptions at a point in time.
  • Billings: invoices issued or payments collected in the period.
  • GMV: gross merchant value before deductions like coupons and refunds.
  • Net revenue: top-line accounting revenue after deductions.
  • Each metric keeps its own table/query in the metric dictionary.

Revenue families and what they count.

Contract signed
Subscription active
Invoice / payment
Marketplace flow
After deductions
Hands-on

Examples

MRR vs billings in one query

MRR vs billings in one query
-- MRR: active subscriptions at end of Feb
SELECT SUM(price) AS mrr
FROM subscriptions
WHERE status = 'active'
AND start_dt <= '2026-02-28';
-- Billings: invoiced in Feb
SELECT SUM(invoice_amount) AS billings
FROM invoices
WHERE invoice_date BETWEEN '2026-02-01' AND '2026-02-28';

The first query counts the standing book of active subscriptions; the second counts cash-flow paperwork issued in the window. Both derive from the order base but measure different realities.

Real world

In production

  • A board packs MRR, ARR and net revenue on one page with clean definitions and a footnote about refunds.
  • A marketplace tracks GMV growth for the press while finance reads net revenue for the P&L.
  • A sales team targets bookings in the pipeline review and the CFO reads billings in the cash review.
Guidelines

Best practices

  • Keep the revenue metric dictionary with a query per family.
  • Present MRR vs billings separately with 'why they differ' notes.
  • Exclude paused/refunded/one-time from MRR mechanically and document it.
  • Add a trend of net-to-gross to expose discount pressure.
Watch out

Common mistakes

  • Reporting GMV where net revenue belongs in an investor context.
  • Averaging bookings month-over-month as if they were recurring.
  • Including one-time setup fees in MRR.
  • Labeling a chart 'Revenue' without saying which family it is.
Root cause analysis

Common issues

Error
MRR jumps when a big one-time fee lands
Root cause

One-time fees included in the MRR query

Fix

Segment MRR by recurring lines only; report one-time separately.

Error
Net revenue reads negative for a month
Root cause

Refunds and adjustments larger than gross in that window

Fix

Check refund timing vs billing date and present nets with a note.

Error
GMV and billings diverge after a discount campaign
Root cause

Coupons reduce billings but not GMV

Fix

Publish both and show the net-of-discount line explicitly.

When things break

Debugging tips

  • Diff the WHERE clauses: 'active and not refunded' vs 'any contract' explains most gaps.
  • Recompute one month by hand from the order table to validate the formula.
  • Check for duplicated row keys before comparing families.
  • Separate timezone questions: when did the business month end for each metric?
Interviews

Interview checkpoint

Practice

Hands-on lab

Compute the Revenue Family Tree
25 min · intermediate
In progress
Objectives
  • Load orders with contracts, invoices and refunds
  • Compute bookings, MRR, billings and net revenue
  • Explain a divergence between two families

Compute the Revenue Family Tree

25 min · intermediate

0/5 steps
0%
sandbox · Linux sandbox
$
Try these commands
Test yourself

Quick quiz

0/2
1

Which metric measures gross value flowing through a marketplace before deductions?

2

Bookings and billings always move together in the same month.

Go deeper

Official documentation