Skip to main content

Principal vs agent: do I recognize revenue gross or net for resold third-party items?

Gross or net depends entirely on whether you control the specified good or service before it transfers to the customer, per ASC 606-10-55-36 to 40 — not on who invoices the customer, who bears inventory risk, or who sets the price. If you control it first, you're principal and recognize gross. If you're arranging for someone else to provide it, you're agent and recognize net.

Zuny FesterBy Zuny Fester, Head of Operations and Marketing
Reviewed by Zuny Fester
Published Last reviewed Editorial policy

Part of the revenue recognition guide.

Governing guidanceFASB ASC 606-10-55-36 to 55-40
The testDo you control the specified good or service before it transfers to the customer?
Principal outcomeYou control it first → recognize revenue gross (full amount), cost of the item as an expense
Agent outcomeYou don't control it, you arrange for another party to provide it → recognize revenue net (your fee/commission only)
Not the testWho invoices the customer, who bears inventory or credit risk, or who sets the price are indicators, not the test itself

Why control, and not risk or invoicing, is the actual test

ASC 606-10-55-36 frames the question as: is your promise to provide the specified good or service yourself (principal), or to arrange for another party to provide it (agent)? The determination hinges on whether you control that good or service before it's transferred to the customer. Inventory risk, who sets the price, and who's named on the invoice are all indicators the guidance points to as evidence of control — but they're supporting evidence, not the test itself. A business can hold inventory risk and still be an agent, or invoice the customer directly and still be an agent, if it doesn't actually control the item before transfer.

Why holding legal title for a moment doesn't make you principal

The guidance is explicit on this: an entity does not necessarily control a good just because it obtains legal title to it momentarily before that title passes to the customer. A reseller that technically takes title to a third-party product for an instant as part of a pass-through transaction, without ever directing the item's use or obtaining its substantive benefits, hasn't established control in the sense the standard means — the momentary title is a mechanical step in the transaction, not evidence of the entity standing between the customer and the item as its actual provider.

Why the answer can differ item by item in the same contract

The control test applies per specified good or service, not once per contract. A single contract with a customer can include one item the entity controls before transfer (principal, gross) and another item it's merely arranging on a third party's behalf (agent, net) — a marketplace that sells its own private-label product alongside third-party sellers' inventory in the same order is a common real-world version of this, and it requires evaluating each line item on its own facts rather than applying one blanket conclusion to the whole contract.

What actually changes on the P&L, not just the label

Gross versus net isn't a presentation preference — it changes both revenue and cost of revenue, and it changes gross margin percentage even when net income is identical. A resold item recognized gross posts the full sale price as revenue and the cost of the resold item as cost of revenue; recognized net, only the margin or commission hits revenue at all, with no corresponding cost of revenue line. Getting the call wrong doesn't just mislabel a number — it overstates or understates revenue (and every ratio built on top of it) by the full resale price of every item misclassified.

Next step

Map the finance workflow with the most exposure and prove the automation path.

Bring the invoice, contract, payment reconciliation, or customer finance workflow you have to defend at audit. Loopfour can map the trigger, controls, integrations, and approval loop.

Book a workflow review

Checklist

Applying the control indicators to one resale scenario — and watching one changed fact flip the answer

Scenario: a company resells a third-party vendor's software licenses to its own customers at a markup. Facts as they stand: the company negotiates its own resale price independent of the vendor's list price; it's responsible for the customer relationship and support if the license doesn't work as expected; it takes on the risk of not being paid by the customer even after paying the vendor; and it never physically or functionally uses the license itself before the customer does.

Under 55-36 to 40: setting its own price and bearing collection risk are indicators of control, but the decisive fact is whether the company can direct the license's use or obtain its benefit before the customer does — and reselling a license it never activates, configures, or uses itself points toward agent, not principal, regardless of the pricing and credit-risk indicators pointing the other way. Now change one fact: the company instead purchases a block of licenses upfront, assigns them to customers as it sells them, and is contractually obligated to pay the vendor for the full block regardless of whether it resells all of them. That upfront, unconditional purchase obligation is a much stronger control indicator — the company has assumed the economic exposure of owning the licenses before any customer is identified, which is the kind of fact that flips the same basic resale relationship from agent to principal.

Frequently Asked Questions

No — inventory risk is one indicator of control, not a standalone test. An entity can bear inventory risk and still be found to be an agent if the overall facts show it doesn't control the good before transfer; the indicators are meant to be weighed together, not applied as a single deciding factor.

Customer awareness of the third party is one of the factors that can inform the analysis, but it isn't determinative on its own — a company can be principal even when the customer knows a manufacturer or supplier is behind the scenes, if the company otherwise controls the good before transfer.

Yes, if the underlying facts change — a renegotiated contract that shifts who bears inventory or credit risk, or who directs the item's use before transfer, can change the conclusion going forward, similar to how any other contract modification is reassessed against the current facts rather than the original ones.

Sources

Related

Topic

Revenue Recognition

Revenue recognition determines when — not just how much — revenue hits the books. Under ASC 606 (US GAAP) and its international counterpart IFRS 15, revenue is recorded as a company satisfies its perf…

Read more

How-to

How do you calculate a contract's transaction price under ASC 606?

Transaction price is the consideration a company expects in exchange for goods or services. Start with the stated contract price, add variable consideration using the expected-value or most-likely-amount method, constrained to amounts unlikely to reverse, adjust for any significant financing component, then subtract noncash consideration and amounts payable to the customer.

Read more

Definition

What is a performance obligation under ASC 606?

A performance obligation is a distinct promise to transfer a good or service to a customer. "Distinct" is the load-bearing word: it's only a separate obligation if the customer can benefit from it on its own (or with resources already available to them) and it's separable from everything else promised in the contract — otherwise it gets bundled with related items into one combined obligation.

Read more

Diagnostic

SaaS + implementation: is it one performance obligation or two?

Usually two. A good or service is distinct — and gets its own performance obligation — when the customer can benefit from it on its own or with readily available resources, AND the promise to transfer it is separately identifiable from other promises in the contract, per ASC 606-10-25-19 to 22. Implementation only merges into one obligation when it's so integrated the SaaS is unusable without it.

Read more