⚠
Educational content only. This module is for informational purposes and does not constitute professional accounting, legal, or financial advice. Consult a qualified CPA for specific accounting decisions. RevLucid is not affiliated with IFRS Foundation, FASB, or NASBA.
1. What Is a "Contract" Under ASC 606 / IFRS 15?
The word "contract" means something very specific under the revenue recognition standards — and it doesn't mean the same thing as a signed document, a verbal agreement, or a handshake deal.
Under both ASC 606 and IFRS 15, a contract is:
Definition: An agreement between two or more parties that creates enforceable rights and obligations, and that meets all five criteria specified in the standard.
This matters because Step 1 is a gating criterion. If no contract exists under the standard's definition, you cannot recognize revenue — period. You defer everything until the contract criteria are met.
Common mistake: Many SaaS companies incorrectly recognize revenue at contract signing for deals that don't yet meet all five criteria — particularly for early-stage customers with uncertain credit or for agreements missing explicit payment terms. This is one of the most common revenue restatement triggers.
Why "contract" means more than "agreement"
A letter of intent, a term sheet, a pilot agreement with a vague SOW, or a framework agreement without order forms — none of these automatically qualify as contracts under ASC 606. The standard requires five specific conditions to be present simultaneously before the door to revenue recognition opens.
2. The 5 Criteria for Contract Existence
All five criteria must be satisfied. Failing any single criterion means no contract exists under the standard — and no revenue can be recognized.
1
Approval and Commitment (Enforceable Rights)
Both parties must have approved the contract and be committed to performing their respective obligations. This typically means a signed agreement, a purchase order, or a completed click-through acceptance that creates legally enforceable rights under applicable law.
SaaS example: A customer completing the checkout flow and accepting the Terms of Service creates an enforceable obligation — courts have consistently upheld click-through agreements as binding.
Fails this criterion: A verbal "let's move forward" without any written agreement. An email thread discussing a deal but without final sign-off.
2
Defined Payment Terms
The contract must identify each party's rights regarding the goods or services and specify the payment terms. Both parties need to agree on what is being provided and at what price — including for variable pricing structures.
SaaS example: "$0.01 per API call, invoiced monthly based on actual usage" qualifies — the formula is defined and deterministic even if the total is variable.
Fails this criterion: "Price to be determined by vendor at time of invoice" — unilateral price-setting without customer consent undermines this criterion.
3
Commercial Substance
The contract must have commercial substance — meaning that the risk, timing, or amount of the entity's future cash flows is expected to change as a result of the contract. Related-party transactions at non-market pricing, or circular transactions with no economic substance, fail this test.
Passes: An arm's-length SaaS subscription with market-rate pricing between unrelated parties.
Fails: A transaction between a parent company and subsidiary at non-market rates designed to inflate revenue figures.
4
Probable Collection
It must be probable (ASC 606: substantially all; IFRS 15: highly probable) that the entity will collect the consideration it is entitled to receive. This is an assessment of the customer's creditworthiness and payment intent — not just the contract terms.
Passes: A Fortune 500 enterprise customer with established payment history and a signed PO.
Fails: A startup customer that has already missed two prior payments, is in default on other obligations, or has publicly announced bankruptcy proceedings.
5
Identifiable Performance Obligations
The contract must identify the specific goods or services to be transferred. Obligations must be clear enough that both parties understand what they're exchanging. Vague or undefined deliverables fail this criterion.
Passes: "12-month access to the RevLucid analytics platform, defined by Exhibit A (feature list) and subject to the SLA in Exhibit B."
Fails: "General AI advisory services to be defined at a later date" — no identifiable obligations yet.
Memory device: A-P-C-C-I — Approval, Payment terms, Commercial substance, Collection probable, Identifiable obligations. All five must be YES for a contract to exist.
3. Combining Contracts
Multiple agreements signed around the same time with the same customer don't automatically stay separate. In some cases, they must be combined and accounted for as a single contract.
Combine contracts when any of the following apply:
- Negotiated as a package with a single commercial objective — the prices are interdependent (e.g., a deep discount on a SaaS license is contingent on also buying the professional services)
- Consideration in one contract depends on the price or performance of the other — the fee in Contract B changes based on what's delivered in Contract A
- The goods or services are a single performance obligation — the two agreements together describe what is effectively one deliverable
Practical tip for SaaS: If your sales team is signing a "separate" services agreement to avoid triggering software revenue recognition rules, but the service pricing is contingent on the software deal, you need to combine them. Auditors will look at this.
4. Contract Modifications
A contract modification is any change to the scope or price (or both) of an existing contract that is approved by all parties. Modifications are extremely common in SaaS and enterprise AI — plan upgrades, seat expansions, scope reductions, pricing adjustments.
| Modification Type | Common SaaS Example | Accounting Treatment |
| Expansion (distinct, market price) | Add 50 seats at market rate mid-term | New separate contract — recognize prospectively |
| Expansion (not distinct or below market) | Add seats at a discounted bundle rate | Modify existing — cumulative catch-up adjustment |
| Scope reduction | Remove implementation phase from deal | Prospective — reduce remaining transaction price |
| Price reduction / credit | Goodwill credit after service outage | Reduce transaction price prospectively |
| Term extension (same price) | Renew at same rate for another year | Often treated as a new contract (evaluate criteria) |
| Price increase | Annual price escalation clause triggered | If in original contract terms — already in transaction price |
Key rule: A modification creates a new separate contract only if: (1) it adds distinct goods/services AND (2) the additional price reflects the standalone selling price of those additions. If either condition fails, it's a modification of the existing contract.
5. Four Real Scenarios: Does a Contract Exist?
Let's apply the 5-criteria framework to common SaaS, AI, and API deal structures. For each scenario, we'll assess all five criteria and reach a conclusion.
Situation: A business user signs up for a $99/month SaaS product. They complete the checkout flow, enter a credit card, and click "I agree to the Terms of Service." Service is available immediately.
✓
Approval/Commitment — Click-through acceptance is legally binding in most jurisdictions
✓
Payment Terms — $99/month, charged monthly, defined in Terms
✓
Commercial Substance — Arm's-length SaaS transaction, market-rate pricing
✓
Probable Collection — Credit card on file, pre-authorized charge
✓
Identifiable Obligations — Platform access as defined in Terms and feature documentation
Revenue: Recognize $99/month as service is provided. Deferred revenue of $0 (monthly plan, billed in advance).
Situation: A Fortune 500 company signs a 3-year MSA for an AI platform license. $500K/year. Signed by both parties' legal representatives. Delivery terms, SLAs, and payment schedule all defined in an attached Statement of Work.
✓
Approval/Commitment — Executed MSA with authorized signatures
✓
Payment Terms — $500K/year, net 30, invoiced quarterly
✓
Commercial Substance — Market-rate enterprise transaction
✓
Probable Collection — Fortune 500 with verified payment history
✓
Identifiable Obligations — Platform access, defined uptime SLA, quarterly business reviews
Revenue: Evaluate whether obligations are distinct. License recognized over term; QBRs may be separate obligation. Allocate $1.5M across all obligations by SSP.
Situation: A developer integrates with an AI API. Pricing: $0.001 per token, charged monthly based on actual usage. They accepted the API Terms of Service at account creation. No minimum commitment.
✓
Approval — ToS acceptance creates enforceable rights (established precedent)
✓
Payment Terms — Deterministic formula ($0.001/token) even though variable in total
✓
Commercial Substance — Arm's-length, market-rate API access
✓
Probable Collection — Credit card authorization required at onboarding
✓
Identifiable Obligations — API access and token processing as defined in docs
Revenue: Recognize as usage occurs ($0.001 per token processed). No minimum to recognize upfront. Variable consideration recognized using the "as invoiced" practical expedient.
Situation: A prospect signs a Letter of Intent to purchase a $500K AI implementation. Both parties sign the LOI. No formal agreement, no SOW, no payment terms attached. The LOI states "this is non-binding and subject to final agreement."
✗
Approval/Commitment — LOI is explicitly non-binding; no enforceable obligation
✗
Payment Terms — No payment terms defined; $500K is aspirational only
✓
Commercial Substance — Would have substance if formalized
✗
Probable Collection — No obligation to pay exists yet
✗
Identifiable Obligations — SOW not yet defined
Revenue: Zero. Defer all recognition until a binding contract is executed. Record $0 in backlog — only log in pipeline/CRM. This is one of the most common revenue recognition errors at early-stage SaaS companies.
6. SEC Filing Case Studies
How do real public companies apply the contract identification framework? Here's how Salesforce and HubSpot describe their approach in their 10-K filings.
SALESFORCE — 10-K ANALYSIS
Multi-Year Enterprise CRM Contract
Deal structure: A 3-year enterprise CRM agreement at $2M/year. Customer is a mid-market financial services firm. Agreement includes platform access, named support, and annual true-ups based on actual user seat counts.
Criterion 1 (Approval): ✅ Executed MSA signed by both parties' authorized signatories.
Criterion 2 (Payment Terms): ✅ Base of $2M/year net-30 invoiced annually. True-up formula defined: additional seats at $X per seat/year, calculated at anniversary.
Criterion 3 (Commercial Substance): ✅ Arms-length, market-rate, financial services industry pricing verified against Salesforce's published price book.
Criterion 4 (Probable Collection): ✅ Customer is a regulated financial institution with investment-grade credit rating; no collection concerns.
Criterion 5 (Identifiable Obligations): ✅ Platform access (named feature set), named support SLA (4-hour response), and true-up mechanism — all defined in exhibits.
Result:
Contract exists. Revenue recognized over 36 months. True-up variable consideration estimated using expected value; constrained to avoid overstatement. $2M base creates $167K/month; true-up adjusted at each anniversary.
HUBSPOT — 10-K ANALYSIS
Usage-Based Contact Tier Subscription
Deal structure: 1-year subscription priced based on the number of marketing contacts managed. Base tier: 10,000 contacts at $800/month. Over-tier contacts: $0.05/contact/month above 10,000. Auto-renewal with 30-day cancellation notice.
Criterion 1 (Approval): ✅ Online subscription agreement accepted at checkout; legally binding click-through ToS.
Criterion 2 (Payment Terms): ✅ Base fee fixed at $800/month; overage formula deterministic. Both components clearly defined.
Criterion 3 (Commercial Substance): ✅ Market-rate, arm's-length transaction; pricing consistent with HubSpot's published rate card.
Criterion 4 (Probable Collection): ✅ Credit card authorized at signup with successful initial charge; no collection risk indicators.
Criterion 5 (Identifiable Obligations): ✅ CRM platform access, defined contact limit, overage pricing, and support tier all specified.
Result:
Contract exists. Base $800/month recognized ratably over 12 months. Overage (variable consideration) recognized as it occurs using the "as invoiced" practical expedient. Auto-renewal creates a new contract at each renewal date — evaluated against all 5 criteria again at that point.
7. Decision Tree: Is It a Contract?
Use this flowchart when evaluating whether an agreement qualifies as a contract under ASC 606 / IFRS 15. Work through each question in order.
IS IT A CONTRACT? — ASC 606 / IFRS 15 STEP 1
Do you have a written or click-through agreement?
NO
Defer revenue.
No contract yet.
YES
Are both parties committed with enforceable rights?
NO
Defer.
LOI / non-binding.
YES
Are payment terms clearly defined?
NO
Defer until
terms agreed.
YES
Is collection probable & substance real?
NO
Defer. Reassess
when conditions change.
YES
✓ Contract Exists.
Proceed to Step 2.
Flashcard Drill — Module 2
Click any card to flip it. These terms are commonly tested in revenue recognition assessments and audit walkthroughs.
Enforceable Rights
Criterion 1 for contract existence
Click to flip ↻
The ability to legally compel performance through courts or equivalent mechanisms. Both parties must be committed to their obligations. Click-through agreements generally qualify in most jurisdictions.
Payment Terms
Criterion 2 for contract existence
Click to flip ↻
Defined amounts and timing of payment that both parties have agreed to. Can be fixed or variable (usage-based), but must be deterministic enough that both parties know what they've agreed to pay.
Commercial Substance
Criterion 3 for contract existence
Click to flip ↻
The transaction must change the risk, timing, or amount of the entity's future cash flows. Eliminates round-tripping, non-economic transactions, and related-party deals at artificial prices.
Probable Collection
Criterion 4 for contract existence
Click to flip ↻
Reasonable expectation that the customer will pay the consideration they're entitled to. Assess at contract inception based on creditworthiness, payment history, and intent. Not the same as "will definitely collect."
Identifiable Obligation
Criterion 5 for contract existence
Click to flip ↻
Performance obligations must be clearly defined — both parties understand what is being delivered. SLAs, feature lists, and statement of work documents establish this. Vague "advisory services" without scope fail this test.
Contract Modification
Changes to existing agreements
Click to flip ↻
A change in scope or price approved by both parties. Creates a new separate contract if (1) it adds distinct goods/services AND (2) at standalone selling price. Otherwise modifies the existing contract prospectively.
Separate Contract
When modifications create new contracts
Click to flip ↻
A modification treated as an entirely new contract (rather than a change to the existing one) when distinct goods/services are added at their standalone selling price. Common for SaaS plan upgrades and seat expansions at market rates.
Non-Binding LOI
One of the most common mistakes
Click to flip ↻
A letter of intent that expresses intent to transact but creates no enforceable rights or obligations. Fails criterion 1 (and often 2, 4, and 5). Zero revenue may be recognized until a binding contract is executed.
Milestone-Based Payment
Variable consideration pattern
Click to flip ↻
Consideration contingent on achieving specific deliverables or benchmarks. Qualifies as a defined payment term if the milestone criteria are clearly specified. The variable amount must be estimated and constrained when recognizing revenue.
Auto-Renewal
Creates a new contract each period
Click to flip ↻
A clause that automatically extends the contract unless cancelled within a notice period. Each renewal creates a new contract (or extension) that must be evaluated against the 5 criteria. Most auto-renewals pass easily; watch for changes in customer creditworthiness.
Module 2 Quiz
Apply the 5-criteria framework to each scenario. Select an answer to see the explanation.
Question 1 of 3
A vendor's SaaS contract includes this clause: "Vendor reserves the right to adjust pricing at any time at its sole discretion, effective upon 30 days' notice." A customer signs this agreement. Does a valid revenue recognition contract exist?
A
Yes — there are still other enforceable terms in the contract
B
No — unilateral price adjustment rights undermine the payment terms criterion
C
Yes — courts would enforce reasonable price changes
D
Yes — if the customer has already made at least one payment
Correct: B. The payment terms criterion requires that both parties have agreed to the amount and timing of payment. A unilateral right to change pricing at the vendor's "sole discretion" means the customer hasn't meaningfully agreed to terms — they've agreed to whatever the vendor decides later. This fails the payment terms criterion (Criterion 2). Revenue should not be recognized beyond the current billing period, and the company should evaluate whether the current pricing (before any adjustment) constitutes agreed terms. Note: many SaaS ToS include price adjustment clauses — auditors look at whether these create material uncertainty about the transaction price.
Question 2 of 3
An enterprise customer requests a 25% scope reduction mid-contract (removing the implementation phase). The total contract value drops from $200K to $150K. There are no new goods or services added. How should this modification be accounted for?
A
Terminate the old contract, create a new contract at $150K
B
Retroactive restatement — restate all prior revenue to reflect $150K deal size
C
Prospective modification — reduce the remaining transaction price going forward
D
Recognize the $50K reduction as a loss contingency in the current period
Correct: C — Prospective modification. This modification reduces scope and price but does not add new distinct goods or services. It therefore fails the "new separate contract" test and is treated as a modification of the existing contract. Since the remaining goods/services are distinct from those already transferred, the modification is accounted for prospectively: the remaining transaction price is updated to $150K minus what's already been recognized, spread over the remaining performance period. No restatement of prior periods is required unless there's also a variable consideration constraint issue.
Question 3 of 3
A SaaS company's sales team has received an email from a prospect saying "We're planning to sign your $500K contract next quarter. Consider this our commitment." The email is countersigned by the prospect's VP of Procurement. No formal agreement has been executed. Can any revenue be recognized?
A
Yes — $500K is committed and very likely to close
B
Yes — if the finance team approves it and books it in the pipeline
C
No — an informal email commitment fails the enforceable rights criterion
D
Yes — the countersignature makes it legally binding
Correct: C — No revenue. This is a classic Step 1 failure. Despite the countersignature on the email, the communication explicitly states "planning to sign" and "consider this our commitment" — language that signals intent, not obligation. Until a formal contract with enforceable rights, defined payment terms, and identifiable performance obligations is executed, no revenue can be recognized. The probability of closing is irrelevant to this analysis. This scenario illustrates why Step 1 is a gating criterion — even high-probability deals must meet all five criteria before any revenue can flow through the income statement.