Consider a business whose revenue rises by 20% while its blended gross margin falls from 60.0% to 57.5%. That looks weaker until one more number appears: operating income has risen by 70%.

There is no contradiction. Revenue, gross margin and operating profit answer different questions, and the relationship between them depends on what sort of revenue was added and what it cost the company to support it. A top-line growth rate cannot settle that on its own.

The useful task is to trace the economics through the statements: establish what the revenue represents, understand the cost boundary behind the margin, see how the cost base responds to activity, then explain the period-on-period movement rather than attaching a story to the headline percentage.

Revenue Growth flows through Revenue Quality, Margin Boundary, Cost Behaviour & Operating Leverage, and Bridge & Mix before Business Economics Judgment.

Recognition sets the accounting boundary; quality is a separate judgement

IFRS 15 provides the accounting logic for when revenue may be recognised. The model identifies the contract and its performance obligations, determines and allocates the transaction price, and recognises revenue as those obligations are satisfied. Cash timing is not the governing test; the model follows the transfer of promised goods or services to the customer. IFRS 15

The area also attracts particular audit scrutiny. PCAOB AS 2110 requires auditors assessing fraud risk to presume a fraud risk involving improper revenue recognition and to identify the revenue transactions or assertions that may give rise to it. PCAOB AS 2110

Those rules tell us whether reported revenue has an accounting basis. They do not produce a commercial quality score. Revenue quality is an analytical judgement rather than a single GAAP or IFRS metric.

A 30% growth rate driven by many renewing customers is economically different from 30% growth produced by one large, non-recurring project with heavy delivery costs. The comparison needs context: recurrence, customer concentration, contract durability, margin economics and cash conversion all affect how much confidence to place in the growth.

A gross-margin percentage is only as comparable as its cost boundary

The arithmetic behind gross margin is straightforward. Revenue less COGS or cost of revenue gives gross profit; gross profit divided by revenue gives gross margin. The accounting presentation underneath that calculation is less uniform.

A company decides which costs sit in cost of revenue and which remain in operating expenses according to its business model, accounting policy and presentation. Direct versus indirect cost is another classification altogether: it depends on the cost object and whether the cost can be traced to it. ACCA material likewise treats direct/indirect and fixed/variable as separate dimensions. ACCA

So two businesses can both report a 70% gross margin without the two figures describing identical economics. The notes and accounting policies matter before the percentages do.

Contribution margin shifts the question from presentation towards operating economics:

Contribution Margin = Revenue − Defined Variable Costs

OpenStax defines contribution margin from sales revenue less variable costs. For company analysis, however, Defined does much of the work. The variable-cost boundary and denominator need to be explicit before comparisons become meaningful. OpenStax: Contribution Margin

Customer support, for example, may be treated as variable in one internal model and not in another. One analyst may calculate a ratio against revenue, another against orders. The label alone does not standardise the measure.

What operating leverage says about the next increment of revenue

Suppose a software company has already funded its product, database infrastructure, finance team and office capacity. If it can add customers without expanding all of those costs immediately, incremental contribution margin can flow into operating income faster than revenue grows.

That mechanism is operating leverage. It depends on cost behaviour. Variable costs tend to move with activity; fixed costs remain broadly stable within a stated range; mixed costs contain both elements; step costs stay flat until a capacity threshold forces a jump. These descriptions hold within a relevant range, not indefinitely. OpenStax: Cost Behaviour

A higher fixed-cost share can therefore amplify profit growth once the business is above break-even. It also amplifies the downside when revenue contracts and those costs remain in place.

One common expression is:

DOL = Contribution Margin / Operating Income

The ratio is state-dependent. It describes the business at a particular sales level, and it becomes especially unstable near break-even because operating income approaches zero. OpenStax: Operating Leverage

Capacity additions, sticky costs, restructuring, hiring cycles and changes in mix can all alter the relationship from one period to the next. DOL is useful for understanding sensitivity, not for stamping a permanent multiplier onto a company.

The same model can show a weaker gross margin and stronger economics

Take a deliberately simple business with two revenue streams. Subscription revenue carries an 80% gross margin; transaction revenue carries a 30% gross margin.

MetricPeriod APeriod B
Subscription Revenue600660
Transaction Revenue400540
Total Revenue1,0001,200
Subscription Gross Margin80%80%
Transaction Gross Margin30%30%
Gross Profit600690
Blended Gross Margin60.0%57.5%
Variable Operating Cost100120
Contribution Margin500570
Fixed Operating Cost400400
Operating Income100170
Operating Margin10.0%14.2%

Unitless Period A to Period B example: Subscription Revenue, Transaction Revenue and Total Revenue rise while Gross Profit, Blended Gross Margin, Variable Operating Cost, Contribution Margin, Fixed Operating Cost, Operating Income and Operating Margin move differently. The bridge uses Volume first, Price second with Subscription Volume Effect, Transaction Volume Effect and Transaction Price Effect to reconcile the +200 revenue change.

Transaction revenue grows faster, so it becomes a larger share of the total and pulls blended gross margin down from 60.0% to 57.5%. Yet total revenue has risen from 1,000 to 1,200 and gross profit from 600 to 690.

After the defined variable operating costs, contribution margin increases from 500 to 570. If the business remains inside the same relevant range and fixed operating cost stays at 400, operating income reaches 170 from a base of 100. Revenue is +20%, operating income is +70%, and operating margin improves from 10.0% to 14.2%.

The falling gross-margin rate is therefore a mix effect in this example, not enough evidence by itself to call the business worse. Equally, the 70% increase should not be presented as something DOL mechanically predicted: the revenue mix changed between the two periods, so the conditions are not identical.

Reconcile the 200 increase in revenue before explaining it

The model’s revenue increase is 200. A bridge can separate that movement under a declared method.

In Period A, subscription revenue is 600 units × 1.00 = 600 and transaction revenue is 400 units × 1.00 = 400. In Period B, the corresponding figures are 660 × 1.00 = 660 and 480 × 1.125 = 540.

Using volume first, price second gives a +60 subscription volume effect, a +80 transaction volume effect and a +60 transaction price effect:

+140 volume +60 price = +200 revenue

The bridge therefore reconciles 1,000 to 1,200. Over the same periods, transaction revenue moves from 40% to 45% of the total, consistent with the pressure on blended gross margin.

There is no separate “mix = X” line in this particular stream-level decomposition because part of the mix movement is already embedded in the different volume changes of the two streams. Another price-volume-mix convention could isolate interactions differently. What matters is to fix the convention before attribution and make the components reconcile to the reported change.

A bridge organises attribution. It does not establish causality by itself.

A real-world version of the mix problem

Shopify’s 2025 Form 10-K provides a useful boundary check. The filing explains that payment-related Merchant Solutions generally carry lower gross margins than Subscription Solutions, partly because of third-party payment-processing costs. It also notes that Shopify Payments can require less incremental sales and marketing and research and development expense than the core subscription business. Shopify 2025 Form 10-K

That does not make low gross margin preferable. It shows why the economics of a revenue stream have to be followed below gross profit. A high-gross-margin stream may still require expensive acquisition, service, engineering or support; a lower-gross-margin stream may remain attractive when incremental operating costs are lighter and retention and cash conversion are sound.

A practical reading order for revenue growth

When a company reports strong growth, begin with the source of the revenue. Check recurrence, concentration, customer or contract durability, margin economics and cash conversion. Then read the cost boundary: what sits in cost of revenue or COGS, what remains in OPEX, and what definition is being used if contribution margin appears in the analysis.

Next, ask how the cost base will react to more or less activity. Fixed, variable, mixed and step costs, distance from break-even and available capacity all affect how much incremental contribution reaches operating income. Only after that is it worth building a bridge for volume, price, mix, FX, timing or a definition/accounting change and checking that the decomposition reconciles from start to finish.

This does not guarantee that growth is good or bad. It does something more useful: it shows which part of the economics deserves the next investigation. Revenue growth is the starting signal. The quality of the business is further down the chain.

References