
Start with a control-first sequence for asc 606 revenue recognition merchant of record platform decisions: map contract terms to performance obligations, set principal vs agent and transaction price rules, then enforce close checkpoints before posting. Use Topic 606 logic to tie recognition timing to satisfaction evidence rather than payment receipt. Keep a judgment memo for mixed facts, and route conflicts between legal terms and operating records to finance, legal, risk, and CPA review.
If you run a Merchant of Record flow, cash movement is not your revenue policy. Under ASC 606, the hard part is that customer payment, processor settlement, and the point when revenue is actually earned can sit on different dates and in different records.
That mismatch can create reporting risk for MoR teams. A platform can collect funds and see processor activity, yet still need a different recognition outcome under GAAP because Topic 606 ties revenue to what was promised and when that promise was satisfied. The standard is commonly applied through a five-step model. In practice, the real work is control: which contract governs, what the performance obligation is, what data proves satisfaction, and who signs off when the facts are mixed.
For a Merchant of Record, legal responsibility matters, but it does not answer the accounting question on its own. The red flag is simple: if your contract language, order-to-cash cycle, and settlement data tell different stories, do not force them into one policy just because the operational flow feels familiar. That is especially true when processor data only tells the cash side of the story. In Adyen-based setups, for example, the processor may hold the records needed for the cash portion of the order-to-cash cycle, but you still need separate evidence for recognition timing and journal support.
This guide is for compliance, legal, finance, and risk owners who need a control-first way to handle the ASC 606 revenue recognition problem in a Merchant of Record platform. The goal is not to turn it into a giant accounting project before the basics are stable. It is to help you reach a repeatable close position using records you already own or can reasonably produce.
Before the later steps are useful, make sure you have three things:
Start with one recent transaction and ask three questions: what document defines the promise, what event proves that promise was satisfied, and what record supports the cash movement? If those answers come from different places, that is normal. If nobody can connect them, stop and fix that before month end.
The rest of the guide follows a practical sequence: map contracts and performance obligations, set principal versus agent and transaction price rules, build close controls and an evidence pack, then assign ownership and escalation rules. The outcome should be a working structure, not just theory. You want decision steps, approval boundaries, escalation triggers, and a copy-paste month-end checklist tied to operating records that auditors can trace.
Under ASC 606, the main change for a Merchant of Record is not the five-step model itself. It is the need to document control, performance obligations, and revenue presentation choices for each arrangement with traceable records.
Evaluate each arrangement on its own facts. Reseller and platform arrangements can produce different accounting outcomes based on specific facts and circumstances, especially when third parties are involved. Identify the specified distinct good or service being transferred, then tie it to the governing contract and your order-to-cash records.
Run principal-versus-agent analysis at the specified good or service level. This judgment often drives the presentation outcome even when operations look similar. ASC 606-10-55-36A points the analysis to the specified goods or services, so your support should show what was transferred, who controlled it before transfer, and what operating evidence supports that conclusion. If contract terms and operating behavior conflict, treat that as a red flag and escalate to a CPA before finalizing policy.
Use IFRS 15 alignment for consistency, not as a shortcut. Alignment can help across jurisdictions, but you still need a GAAP-ready Topic 606 rationale and support. If terms change through contract modifications, reassess rather than carrying forward the prior conclusion.
If you want a deeper dive, read ASC 606 for Merchant-of-Record Platforms: Principal vs Agent Revenue Recognition.
Before month one close, make your ASC 606 judgments traceable from contract to entry without manual reconstruction.
| Step | Action | Details |
|---|---|---|
| Step 1 | Assemble a minimum evidence set | Keep one compact evidence pack for each contract type or selling motion you expect in month one; include the contract with the customer, a payment flow map, clear performance-obligation definitions, and the rule used to determine transaction price |
| Step 2 | Define system-of-record boundaries | Assign one authoritative source per close question with the exact reports or exports the team will use; keep cash movement evidence separate from revenue-recognition evidence and avoid using multiple exports for the same metric in the same close cycle |
| Step 3 | Create a control log for Topic 606 judgments | Record the owner, approval date, review cadence, related contract template or market, where the conclusion is documented, and the supporting evidence used for that conclusion |
| Step 4 | Pre-agree escalation paths | Name finance, legal, and risk/compliance approvers; define triggers such as new contract language, new markets, pricing-rule changes, or repeated close exceptions |
Step 1: Assemble a minimum evidence set. Keep one compact evidence pack for each contract type or selling motion you expect in month one. Include the contract with the customer, a payment flow map, clear performance-obligation definitions, and the rule used to determine transaction price. If discounts, credits, or variable amounts apply, document how they affect recognized revenue, not just billing display.
Run a trace test on one sample order before close. Follow customer acceptance through billing, processor records, and the draft accrual output. If you cannot show where the performance obligation is identified and satisfied, you are not ready for close.
Step 2: Define system-of-record boundaries. Assign one authoritative source per close question and write it down with the exact reports or exports the team will use. Keep cash movement evidence separate from revenue-recognition evidence so settlement timing does not override ASC 606 logic. Avoid using multiple exports for the same metric in the same close cycle.
Step 3: Create a control log for Topic 606 judgments. For each judgment, record the owner, approval date, review cadence, related contract template or market, and where the conclusion is documented. Include the supporting evidence used for that conclusion.
That is what lets you react when terms or pricing logic change. You can quickly identify which conclusion is affected and who must review it.
Step 4: Pre-agree escalation paths. Name finance, legal, and risk/compliance approvers before month one starts. Define what triggers escalation, such as new contract language, new markets, pricing-rule changes, or repeated close exceptions. If legal terms and operational evidence diverge, pause and escalate before finalizing policy.
If you use automated revenue reports, treat them as operational output, not evidence on their own. Automation can help with accrual accounting and ASC 606/IFRS 15 reporting, but it does not replace the evidence pack or control ownership.
You might also find this useful: A Guide to Revenue Recognition for SaaS Companies.
Map each contract to observable order-to-cash events at the performance-obligation level so recognition decisions are traceable in practice. Under ASC 606, Step 1 is identifying the contract with a customer, Step 2 is identifying performance obligations, and Step 5 is recognizing revenue when or as the performance obligation is satisfied. Build your map so each obligation is tied to the event that shows control transferred.
If one contract template supports different product motions, split recognition logic by obligation type instead of forcing one rule across all flows. The legal paper may be the same, but the satisfaction event may not be.
For each contract type or selling motion, capture the same fields:
Do not stop at labeling an obligation. Record the specific evidence for the recognition trigger and make sure it aligns to when control transfers to the customer.
Use one sample order per contract type as a trace check: accepted terms, billed item, trigger event record, journal line. If that path depends on manual reconstruction, the map is not ready.
Related: Subscription Revenue Recognition for Bundles and Discounts: ASC 606 Allocation Rules.
Treat this as a control judgment first: in a Merchant of Record flow, principal versus agent under ASC 606 depends on who controls the good or service before transfer to the customer, not on contract labels or who collected cash.
Use one decision table per selling motion, market, or contract variant when operating facts differ. Pair contract terms with operating evidence so the conclusion is based on how the flow actually works.
| Indicator | Principal-leaning evidence | Agent-leaning evidence | Evidence to retain |
|---|---|---|---|
| Fulfillment responsibility | Your entity is responsible for delivering the promised good or service to the customer | Another party fulfills and you mainly connect buyer and seller | Customer terms, support obligations, fulfillment logs, service records |
| Inventory risk | Your entity bears risk before transfer or around returns or nonperformance | Another party bears the underlying risk | Commercial terms, refund or return responsibility notes, exception handling records |
| Pricing authority | Your entity sets the final customer price | Another party sets the final price and you earn a fee or commission | Pricing approvals, rate cards, marketplace settings, order records |
Treat this as a documented judgment, not a weighted scorecard. If indicators are mixed, do not force a numeric result, and do not rely on contract naming alone.
Checkpoint: sample one real order per scenario and confirm the evidence supports who fulfilled, who set final price, and how revenue was presented. If that requires a manual narrative rebuild, the classification is not close-ready.
Write the transaction price policy before the edge cases arrive. ASC 606 treats variable consideration and changes in transaction price as explicit topics, so define both in policy and approvals.
| Case | Routing |
|---|---|
| Preapproved commercial discounts | Can stay with the business only when finance has already defined allowed terms and accounting treatment |
| Nonstandard discounts or credits | Should route to finance because they can change transaction price and affect timing or amount of revenue |
| Changes to customer terms, market structure, or seller responsibilities | Should route to legal; novel cases should go to CPA review before final policy sign-off |
For each adjustment type, document what it is, when it changes revenue, what evidence is required, and who approves exceptions. At minimum, cover standard discounts, customer credits, and variable components.
Tool settings can support processing, but they do not establish the ASC 606 conclusion by themselves.
Use a hard if-then rule: if control indicators are mixed, or facts are inconsistent across markets for the same flow, escalate and pause policy finalization until legal and CPA review.
Keep a separate judgment memo for each scenario. Include the ASC 606 logic, the GAAP position, operating facts, evidence reviewed, approvers, and effective date, then revisit the memo when contracts or business models change so the audit trail stays current.
This pairs well with our guide on What is a Merchant of Record (MoR) and How Does It Work?.
Build the close so revenue journals are posted only after processor activity, subledger output, and accrual entries reconcile, and the ASC 606 judgment is reproducible.
Create one month-end pack per material selling motion or processor setup. Include processor exports, subledger outputs, final revenue journals, and the reconciliation tying them together. If you run multiple processors, reconcile each one separately before rolling up to the general ledger.
| Fee item | Amount | Scope |
|---|---|---|
| Domestic cards | 2.9% + 30¢ | Standard pricing can include this for domestic cards |
| Manually entered cards | +0.5% | Add-on |
| International cards | +1.5% | Add-on |
| Currency conversion | +1% | Add-on |
| Managed Payments | 3.5% per successful transaction | In addition to standard processing fees; country-specific pricing can supersede listed Managed Payments tables |
For Stripe flows, reconcile fee logic by pricing model rather than as a flat deduction. Standard pricing can include 2.9% + 30¢ for domestic cards, with add-ons like +0.5% for manually entered cards, +1.5% for international cards, and +1% for currency conversion. Managed Payments adds 3.5% per successful transaction in addition to standard processing fees, and country-specific pricing can supersede listed Managed Payments tables.
Use explicit sign-off gates before final posting:
| Checkpoint | What you test | Evidence to retain |
|---|---|---|
| Completeness | Processor activity is fully captured in subledger and journals | Processor exports, control totals, reconciliation workbook |
| Cutoff | Transactions are recognized in the correct close period | Period-end exception list, timestamp/fulfillment support |
| Classification | Gross/net presentation, fees, and deductions follow approved policy | Journal detail, account mapping, policy memo reference |
| Exception sign-off | Nonstandard items are approved before posting | Finance approval records, legal/CPA review where required |
If completeness, cutoff, or classification is unresolved, hold the final revenue posting.
Add a monthly variance review for performance-obligation mix, transaction price adjustments, and reversal patterns. Large shifts can be commercial, but they can also indicate mapping breaks or policy drift.
Automation can help at scale (for example, Stripe Revenue Recognition), but keep manual review checkpoints for high-risk judgments and exceptions. Archive the same audit bundle each close cycle: source reports, reconciliations, journal support, exception approvals, and final reviewer sign-off.
We covered this in detail in Merchant of Record for Platforms and the Ownership Decisions That Matter.
ASC 606's five-step model tells you what to assess, but it does not assign decision owners. Your team still needs an internal governance layer across finance, legal, and risk. Keep that layer explicit and documented so contract, pricing, and revenue-policy decisions are reviewed before they create close noise.
Use the model as the shared frame: Step 1 covers identifying the contract, Step 4 covers allocating transaction price to performance obligations, and Step 5 covers recognizing revenue when or as obligations are satisfied. Then map your internal owners to those decisions in your own policy documentation, since that assignment is an operating choice rather than a rule stated in the standard excerpts.
Set escalation criteria in writing for changes that could alter your ASC 606 conclusion, contract interpretation, or control execution. Keep the criteria visible to teams that ship contract and pricing changes so accounting review happens before go-live, not after month-end exceptions.
Track each escalated decision in a consistent log with the issue, conclusion, approvers, and decision date. That record helps prevent policy drift and makes your month-end evidence easier to trace back to the underlying ASC 606 judgment.
Most audit surprises in this area come from repeatable control failures, not unusual accounting edge cases. Use these four checks to recover before you finalize close.
Recovery: Re-anchor recognition to when the performance obligation is satisfied. Payment can support evidence of an arrangement, but you still need support that delivery or service completion occurred. For each material revenue stream, confirm you can show the contract terms, the trigger event, and the record that supports satisfaction.
Recovery: Segment policy by scenario, then retest your close outputs against those scenarios. If market setup, terms, or control patterns changed, do not assume legacy mapping still applies.
Recovery: Use automation to improve accuracy and reduce manual effort, but keep explicit judgment reviews in your close process. Add specialist sign-off points when facts change, indicators are mixed, or outputs cannot be explained from the contract and recognition logic.
Recovery: Enforce a minimum evidence checklist before final posting, including current terms, recognition support, proof of delivery or service completion, reconciliations, and documented exception approvals. If required support is missing, hold the journal and log the gap.
For a step-by-step walkthrough, see How to Choose a Merchant of Record Partner for Platform Teams. Want a quick next step? Browse Gruv tools.
Use a close checklist that mirrors ASC 606's five-step structure and your actual records. At minimum, anchor it to Step 1: Identify the Contract With a Customer, Step 2: Identify the Performance Obligations in the Contract, and Step 5: Recognize Revenue When or as the Performance Obligation is Satisfied, and make sure your support also covers presentation and disclosures.
Related reading: Building Subscription Revenue on a Marketplace Without Billing Gaps. Want to confirm what's supported for your specific country/program? Talk to Gruv.
ASC 606 does not become a separate MoR standard in the material provided here. The cited guidance presents one five-step model for revenue recognition, beginning with identifying the contract with a customer. These excerpts do not provide MoR-specific decision rules.
The excerpts do not say that receiving customer cash by itself determines when revenue is recognized. They frame recognition through the ASC 606 five-step model instead.
These excerpts do not provide principal-vs-agent indicators or tie-break rules for mixed facts. Treat this as outside what is supported here.
The sources here do not define a minimum ASC 606 control set for market expansion. They establish the principle-based framework and the five-step model, but not a universal control checklist.
The cited material does not assign Topic 606 ownership across finance, legal, or risk functions. Departmental role design is not specified in these excerpts.
The grounded point here is timing context: ASC 606 (IFRS 15) is described as being in full effect for public and private companies as of December 15, 2018. These excerpts do not set CPA-escalation thresholds.
No. Stripe Revenue Recognition is presented as automation to configure revenue reports and simplify accrual-accounting close and ASC 606/IFRS 15 compliance reporting. The excerpts do not support treating automation as a replacement for manual review controls.
A financial planning specialist focusing on the unique challenges faced by US citizens abroad. Ben's articles provide actionable advice on everything from FBAR and FATCA compliance to retirement planning for expats.
With a Ph.D. in Economics and over 15 years of experience in cross-border tax advisory, Alistair specializes in demystifying cross-border tax law for independent professionals. He focuses on risk mitigation and long-term financial planning.
Includes 1 external source outside the trusted-domain allowlist.
Educational content only. Not legal, tax, or financial advice.

For merchant-of-record teams, the **ASC 606 principal vs agent merchant of record** call is a high-stakes judgment, not a presentation preference. It can move revenue from gross to net and raise the level of judgment finance, audit, and compliance teams need to defend.

For subscription platforms, bundle discount allocation is a revenue recognition decision, not a pricing cleanup exercise. Under ASC 606, the default approach is often to allocate discounts across performance obligations using relative standalone selling prices. The harder part is deciding when that default still fits and when a contract needs a higher level of internal review.

Use revenue recognition as an operating control, not a year-end cleanup task. If you make decisions from cash balance alone, you can spend against cash that is not earned yet. Under ASC 606, cash collected before you transfer the promised service is a [contract liability](https://dart.deloitte.com/USDART/home/codification/revenue/asc606-10/roadmap-revenue-recognition/chapter-14-presentation/14-2-contract-liabilities), commonly called deferred revenue, until that service is delivered.