Revenue growth is easy to quote and surprisingly easy to misread.

Suppose you open a company filing for the first time and see that the top line is up. The percentage tells you what happened to reported revenue, but not what produced the movement. You still need to know how the company earns, what activity sits underneath each stream, which management metrics describe that activity, and when the economics become accounting revenue.

Shopify is a useful place to start because its disclosures already resist the idea of one undifferentiated revenue engine. It reports Subscription Solutions and Merchant Solutions separately, while also defining GMV and MRR.Shopify FY2025 results A single total-revenue line cannot tell you whether growth came from a larger merchant base, more commerce flowing through the platform, a different rate, or some combination of those mechanisms.

For analysis, I would give every economically distinct stream its own row and record six things: how the company earns consideration; who pays and what the charge is attached to; the activity denominator underneath the stream; any useful commercial metric before recognition; the point at which activity becomes recognised revenue, including gross-versus-net presentation; and the drivers that can explain the change between periods. That is the working Revenue Architecture.

Salesforce gives the same idea a different shape. Its annual report discusses subscription and support, term software licences and professional services separately.Salesforce FY25 Annual Report The labels are not the important part. If two streams differ materially in who pays, what activity drives the charge, how revenue is recognised or what moves the result, they should not be analysed as one stream.

Revenue architecture relation map: Economic Activity / Revenue Stream passes through the Recognition Boundary into Recognized Revenue, while GMV, Gross Bookings, Bookings, MRR and RPO stay as Activity / Commercial Metrics; Revenue Bridge is later analysis and Residual remains unexplained.

Start with the activity base, not the headline number

Platform metrics make the denominator problem visible.

Airbnb’s 2020 Form 10-K defines Gross Booking Value as the value of bookings facilitated through the platform, including amounts that economically belong to hosts and taxing authorities.Airbnb 2020 Form 10-K Uber’s Gross Bookings includes taxes, tolls and fees and is not reduced for driver or merchant earnings.Uber Q1 2025 results

Both measures are useful descriptions of activity. Neither says that the entire amount belongs in the company’s revenue.

That distinction becomes practical as soon as someone calculates a take rate. eBay defines take rate as net revenues divided by GMV.eBay 2024 Form 10-K Before comparing the same-looking ratio across companies, I would check the revenue population in the numerator, what the denominator does with cancellations, refunds, taxes and fees, whether both sides use the same period and currency, and whether the issuer changed the definition.

Uber, for example, separately defines Revenue Margin as revenue divided by Gross Bookings and reports constant-currency growth measures.Uber FY2024 results Activity growth, monetisation and FX can therefore move independently. A cross-company comparison made before the denominators are aligned may be comparing measurement contracts rather than economics.

Recognition changes what reaches the top line

The next boundary is accounting recognition.

Under IFRS 15, the model begins with the customer contract and performance obligations, determines and allocates the transaction price, and recognises revenue when or as those performance obligations are satisfied.IFRS 15 US GAAP Topic 606 uses a closely related contract and performance-obligation framework.FASB ASU 2014-09

An analyst does not need to reproduce the standard for every company. The useful operating question is narrower: what event has to occur before the activity in this stream belongs in recognised revenue for the period?

Microsoft’s 2025 Annual Report illustrates why billing cannot answer that question on its own. Subscription billing cadence and revenue recognition can occur on different schedules, and some term-licence arrangements have their own invoicing and recognition patterns.Microsoft 2025 Annual Report Cash received, invoice issued and revenue recognised should therefore stay as separate events in the model.

Platforms add the principal-versus-agent test. FASB’s guidance centres on whether the entity controls the specified good or service before it is transferred to the customer. A principal may report revenue gross; an agent generally recognises the fee or commission to which it is entitled.FASB ASU 2016-08

This is one reason a simple revenue-to-GMV ratio can be deceptive. Two platforms may facilitate similar economic activity but report on different revenue bases because their roles in the transaction differ. Presentation and monetisation are not interchangeable explanations.

Commercial metrics need their own clocks

MRR, RPO, bookings and backlog often appear near revenue in investor materials, but they carry different time boundaries.

Shopify’s Q1 2024 disclosure defines MRR using plans in effect on the last day of the period and notes a methodology change involving paid trials.Shopify Q1 2024 results It is useful for the run-rate scale of the subscription engine at a point in time. It is not the quarter’s recognised revenue.

Salesforce defines Remaining Performance Obligation as contracted revenue that has not yet been recognised, with current RPO representing the portion expected to be recognised over the next twelve months.Salesforce FY25 results Snowflake’s definition shows why even RPO has to be read with its exclusions: it includes deferred revenue and non-cancellable contracted amounts but excludes on-demand arrangements and certain time-and-materials contracts.Snowflake FY2025 Q4 results

In a working sheet, I would keep three notes beside each of these metrics: its definition, the measurement date or period, and exclusions. A methodology change deserves a fourth note. This is often enough to show why a neat year-on-year comparison is not actually like for like.

Build the bridge around the business, then make it reconcile

Once the stream, denominator and recognition boundary are stable, the period movement can be decomposed without guessing what the percentage means.

Booking Holdings’ Q1 2026 filing is a good test case. Gross bookings and revenue grew at different rates, while the 10-Q discusses payment facilitation, flight mix, and booking-versus-travel timing as factors affecting revenue as a percentage of gross bookings.Booking Holdings Q1 2026 Form 10-Q Higher bookings belong in the explanation, but they do not finish it.

The driver set should follow the stream. Depending on the business, that may include volume or usage, effective price or rate, product or customer mix, FX, timing, and changes in scope such as acquisitions, disposals or classification. There is no analytical prize for forcing every company through all six.

Price-Volume-Mix, rate-volume-mix and constant-currency bridges are analyst methods, not accounting standards. Interaction effects can also be allocated under different conventions. Whichever convention is used, the arithmetic should still reconcile:

Opening revenue + explained driver effects + residual = closing revenue

A residual is useful precisely because it preserves what has not been explained. If the bridge leaves a gap, calling that gap “weaker demand”, “better pricing” or “unfavourable mix” does not make the evidence stronger. Those labels remain hypotheses until the bridge and the supporting disclosures carry them.

For an unfamiliar 10-K, 20-F or earnings release, that gives me a fairly short first pass. I split materially different revenue streams, identify the activity base beneath each one, annotate any commercial metrics with their timing and exclusions, check recognition and gross-versus-net presentation, and then build only the bridge drivers that the business can actually support. The bridge has to come back to the observed revenue movement; anything left over stays unresolved.

At that point, “revenue grew” has become something another analyst can inspect and challenge. It also exposes the next question without answering it for us: whether the growth was economically attractive at the unit level.

References