CadelAll Articles
Revenue Recognition

Gross vs Net Revenue: The Principal vs Agent Test

Under ASC 606, gross vs net revenue comes down to the principal vs agent test: who controls the good before transfer. The control rule, three indicators, examples.

Cadel Team6 min read
100100100100$

A SaaS company that resells third-party AI services for $100 (and pays the provider $80) can report $100 of revenue or $20 of revenue under ASC 606. Same cash. Same gross profit. Wildly different top line. The choice is not a discretionary policy. It is the principal vs agent test, and ASC 606 has a specific framework for making the call: who controls the good or service before transfer to the customer. That single answer decides whether revenue is reported gross or net, and the gap can be 5x or 10x at the top line.

This is the gross vs net revenue decision the five-step model leaves to Step 5, and one of the recognition calls that most often surprises mid-market finance teams (see ASC 606 revenue recognition for mid-market).

Gross vs net revenue, side by side

Principal — gross revenue
Revenue (gross)
$100,000
Cost of revenue
($80,000)
Gross profit
$20,000
Gross margin
20%
Agent — net revenue
Revenue (net commission)
$20,000
Cost of revenue
$0
Gross profit
$20,000
Gross margin
100%

The economic profit is identical. The narrative the income statement tells is not. A $100M business reporting gross looks like a $100M business; the same business reporting net looks like a $20M business with a 100% gross margin. Investors, lenders, and acquirers read them very differently, and auditors care about which one is the right answer.

The three indicators of principal status

01
Primary responsibility for fulfilment

The customer looks to the entity, not a third party, if the good or service fails to meet specifications, needs repair, or needs replacement.

02
Inventory risk

The entity bears inventory risk before transfer (it has purchased or committed to buy the good) or after transfer (it accepts returns and bears the resale loss).

03
Pricing discretion

The entity has discretion in setting the price the customer pays. The more pricing is fixed by the third-party provider, the more likely the entity is an agent.

No single indicator is determinative. Per ASC 606-10-55-37A through 55-39, the entity weighs all three alongside the overarching control assessment. An entity with pricing discretion but no inventory risk and no fulfilment responsibility is probably an agent; an entity with all three is almost certainly a principal.

Two worked examples

Ride-hailing marketplace
Customer pays for ride
$30
Driver receives
$24
Platform commission
$6
Fulfilment responsibility
Driver
Inventory risk
None
Pricing discretion
Limited
AgentRevenue net: $6 per ride
Software reseller (two scenarios)
List price to customer
$100K
Cost from vendor
$80K
A · Drop-shipNo inventory risk → Agent, $20K net
B · Holds inventorySets the price → Principal, $100K gross

Same product, same vendor. The control structure, not the product, changes the answer: the marketplace never controls the ride, so it is an agent, while the reseller flips from agent to principal the moment it takes on inventory risk and pricing discretion.

See it in motion

Cadel applying the principal vs agent test to a reseller arrangement

Cadel · Principal vs agent demo

Where the call goes wrong

Three patterns that flip the gross vs net answer in the wrong direction

01
Gross by default
Companies prefer the bigger top line and default to gross without running the indicator test. Auditors increasingly push back on revenue reclassifications late in the year, sometimes triggering restatements when the indicators clearly point to agent.
Fix: Run the three indicators and document the control conclusion at inception.
02
Drop-ship ignored
A reseller treating drop-ship arrangements as gross misses the inventory-risk indicator. Drop-ship typically means no inventory risk, no returns risk, and no fulfilment responsibility, all of which point to agent.
Fix: Treat drop-ship as agent unless control before transfer is demonstrable.
03
Revenue share misread
Revenue-share deals (the platform takes a percentage of seller revenue) almost always indicate agent. The platform does not control the underlying good or service. Treating these as gross inflates revenue and distorts the margin profile.
Fix: Default revenue-share to net; the platform rarely controls the good.

What good looks like

A clean principal vs agent assessment runs at contract inception with the three indicators evaluated and the control test concluded in a documented memo. The conclusion drives the recognition pattern, the gross vs net presentation, and the disclosure. When the arrangement changes (a new fulfilment partner, a pricing-model change, an inventory-risk shift), the assessment re-runs and any change in conclusion is documented with its effective date. Investors and auditors can trace any line of revenue back to the principal vs agent conclusion that drove it.

At Cadel, the principal vs agent assessment runs as a structured workflow at contract intake. The three indicators are scored against contract terms, the conclusion drives the journal entries automatically (gross vs net), and any later change in the arrangement triggers a fresh assessment with the prior conclusion preserved in the audit trail.

See how Cadel automates revenue recognition under ASC 606, or get in touch to walk through a gross vs net arrangement (marketplace, reseller, revenue-share, or drop-ship) you're unsure about.

#revenue-recognition#ASC-606#principal-vs-agent#gross-vs-net-revenue#rev-rec#marketplace-accounting

See it live

See Cadel automate your revenue close

20 minutes. Bring your ASC 606 schedule. We'll show you where Cadel eliminates manual SSP allocations, modification entries, and variance chasing.

Book a Demo
Gross vs Net Revenue: The Principal vs Agent Test | Cadel Blog