When a transaction involves three parties — you, a third-party supplier, and your customer — you have to determine whether you are the principal (reporting gross revenue) or the agent (reporting only your fee or commission as net revenue). The dollar impact can be enormous, and for any SaaS company with a marketplace, reseller channel, or bundled third-party services, this analysis is non-optional.
Why It Matters
Consider a $1,000 transaction where you pay a third-party provider $700 and keep $300. As a principal, you report $1,000 of revenue and $700 of cost of revenue — 30% gross margin. As an agent, you report $300 of revenue and no COGS line for the pass-through — 100% gross margin on that $300. The bottom line is the same, but gross margin, revenue growth, and valuation multiples look very different. Investors, lenders, and auditors all care about the distinction.
The Control Test
Both ASC 606 (paragraphs 606-10-55-36 through 55-40) and IFRS 15 (paragraphs B34–B38) use a single overarching test: does the entity control the specified good or service before it is transferred to the customer?
Control means having the ability to direct the use of, and obtain substantially all of the remaining benefits from, the good or service. If you control it before transfer — you are the principal. If you arrange for the third party to transfer it — you are the agent.
Indicators of Control (Principal)
The standards provide three main indicators that a company controls the good or service and is therefore a principal:
- Primary obligation. The entity is primarily responsible for fulfilling the promise to the customer. If the third-party supplier fails to deliver, is the customer coming to you to fix it?
- Inventory risk. The entity has inventory risk before or after the good or service is transferred — it can be left holding the cost if the customer doesn't take the goods.
- Pricing discretion. The entity has discretion in establishing the price for the goods or services — it can set its own price independently of what it pays the supplier.
These are indicators, not a checklist. All three point to principal status, but you might have principal status without all three. The weight of evidence matters. The control test drives the conclusion; the indicators support it.
Working Example: SaaS Marketplace Platform
Consider a SaaS company that operates a platform where third-party software integrations are available. Customers purchase integrations through the platform at prices set by the platform company.
Scenario A — Curated Marketplace with Control
The platform sets the retail price (e.g., $99/month for a Salesforce integration). It collects payment, manages customer support for billing and access issues, handles refunds, and bears the risk if the third-party provider has an outage — the customer's SLA is with the platform, not the provider. The platform pays the third-party a revenue share ($70/month) after collecting from the customer.
→ Principal. Report gross revenue of $99, COGS of $70. The platform controls the customer experience, sets prices independently, is primarily responsible to the customer, and bears performance risk.
Scenario B — Pass-Through App Store
The platform hosts third-party integrations but the third-party sets the price, handles all customer support, and the platform simply processes payment and takes a 20% transaction fee. The third-party is the primary contact for service issues; the platform just facilitates discovery and billing.
→ Agent. Report net revenue of $19.80 (20% of $99). The platform arranges the transaction but does not control the integration before transfer. The third-party remains primarily responsible for delivery.
Scenario C — Reseller Channel
An enterprise SaaS company resells a third-party data enrichment service as part of its platform bundle. It buys blocks of API credits at wholesale prices, bundles them into its own subscription, sets the customer-facing price, and is the only point of contact for customers. If the enrichment service is down, the platform vendor is liable under the customer's MSA.
→ Principal. Report gross on the bundled price. The SaaS company controls the API credits before transfer (inventory risk), sets the price (pricing discretion), and bears primary obligation to the customer.
The App Store Case: A Common Gray Area
App stores (like Salesforce AppExchange, AWS Marketplace, Shopify App Store) create a genuinely contested gray area. Whether the marketplace operator is principal or agent depends on:
- Who sets the price — the marketplace or the app developer?
- Who bears inventory/performance risk to the end customer?
- Who handles refunds and customer support for service failures?
Most large app store operators conclude they are agents and report net revenue (their platform fee or take rate). But a marketplace that sets prices, bundles third-party apps into a curated suite, and takes primary responsibility for delivery may be a principal for at least a portion of those arrangements.