Review six ASC 606 examples with worked calculations, journal entries, contract considerations, red flags, and implementation steps for growing businesses.
ASC 606 revenue follows the transfer of promised goods or services, not the invoice or cash receipt. A $12,000 upfront subscription is recognized at $1,000 per month across 12 months, so these six examples show how to calculate and record the difference.
Cash received is not revenue earned. If you record an upfront invoice or milestone payment as revenue immediately, you can overstate growth, distort margins, and face an audit adjustment when the accounting team matches the books to the actual delivery of services.
ASC 606 became mandatory for most U.S. public companies for annual and interim reporting periods beginning after December 15, 2017. Calendar-year public filers therefore reflected it starting January 1, 2018, while private entities generally received a one-year delay for annual statements beginning after December 15, 2018 and interim statements beginning after December 15, 2019. The standard's five steps are straightforward: identify the contract, identify performance obligations, determine transaction price, allocate that price, and recognize revenue as obligations are satisfied, as summarized by BDO's ASC 606 overview.
The practical issue for a $500K to $20M SaaS company, digital agency, or professional services firm isn't learning the five steps in isolation. It's connecting contracts, sales terms, billing data, delivery records, journal entries, and audit evidence. As the SEC filing example illustrates, a 12-month SaaS subscription sold for $1,200 upfront produces $1,200 of cash and deferred revenue at billing, followed by $100 of revenue each month as service is delivered.
Expert guidance: “Revenue is recognized when goods or services are delivered to customers,” explains the practical summary of ASC 606 in RightRev's revenue recognition examples.
Use the examples below to build a contract register, monthly schedules, and reconciliations. They aren't a substitute for a contract-specific accounting assessment, particularly when contracts contain implementation, usage, incentives, refunds, renewals, or modifications. For payment-to-ledger matching, document the connection between your billing platform and your accounting records, including the reconciliation principles described in this payment reconciliation guide.
A customer pays $12,000 upfront on January 1 for a 12-month SaaS subscription. The customer receives continuous access throughout the term, so the performance obligation is satisfied over time at $1,000 per month.
At receipt, the entry is:
The balance sheet now shows cash of $12,000 and a contract liability of $12,000. The income statement shows no subscription revenue solely because cash arrived. At the end of each month, recognize the service delivered:
After the first monthly entry, deferred revenue falls to $11,000. After the final month, the balance reaches zero, assuming the customer receives the full contracted service and no modification or refund changes the arrangement.
This treatment also applies to familiar commercial structures such as a Slack annual plan at $1,200 upfront, recognized at $100 per month, or a HubSpot Pro tier at $1,200 per year, recognized on the same monthly basis. Those examples show why bookings, billings, collections, and GAAP revenue aren't interchangeable management metrics.

Set up a subscription revenue schedule in your accounting system and connect billing data from Stripe or Paddle so new contracts populate the schedule without manual rekeying. Your monthly close should include a deferred revenue aging report. Flag any balance that doesn't move when the related service period has elapsed.
For a clear explanation of the balance-sheet liability created by upfront billing, review deferred revenue and its accounting treatment. The control objective is simple: every material deferred balance should have a contract, a service period, a recognition method, and evidence that the monthly entry posted correctly.
A three-year subscription priced at $3,600 total is billed annually at $1,200 per year. The customer receives access for 36 months, so the revenue schedule is $100 per month, regardless of the annual invoice dates.
Suppose the first annual invoice is issued at signing and collected immediately. You record:
Each month, recognize $100:
The next annual invoice increases deferred revenue when billed or collected. It doesn't create a second year of revenue on the invoice date. At the end of the first year, the company has recognized $1,200 and should carry the remaining unrecognized contract balance for the remaining service period.
The same logic applies to a mid-market SaaS company with 15 customers signing three-year contracts at $5,000 per year. The total contracted value is $15,000 per customer, and the schedule recognizes the service over 36 months. An agency retainer paid annually for a three-year engagement follows the same principle when the agency provides continuous services throughout the term.
Maintain a contract register with:
Use the roll-forward every month:
Beginning deferred revenue + new contracts and billings minus recognized revenue = ending deferred revenue.
If a customer cancels, don't leave the original schedule running automatically. Assess the remaining obligation, refund terms, and contract modification treatment with your CPA. The ACV versus ARR explanation can also help keep operating metrics separate from recognized revenue. ARR describes a recurring commercial run rate, while ASC 606 revenue reflects the service transferred during the reporting period.
Usage-based contracts create a different problem. The fixed base fee is usually easy to schedule, but API calls, messages, minutes, hosts, compute, or other overage charges create variable consideration that must be estimated and constrained.
Assume a monitoring platform charges a fixed monthly base fee plus an overage based on hosts. The base fee is recognized as access is provided during the month. For usage, the finance team needs reliable usage records and a defensible conclusion that the amount is probable of collection and won't require a significant reversal. If the estimate changes when the final usage file arrives, record the true-up.
For example, if the estimated usage revenue for the month is $2,400 and the final billable usage is $2,500, record the initial estimate and then the additional $100:
Initial estimate:
True-up:
If the final amount is lower, reverse the excess instead. The account classification depends on whether your right to consideration is unconditional or still depends on something other than the passage of time.
Twilio's model, with base fees and per-message or per-minute charges, shows why the usage ledger must connect to billing and revenue accounting. A general-purpose CRM or billing system may record what was sold, but it won't necessarily identify distinct performance obligations or apply variable-consideration constraints when usage changes, as discussed in enterprise revenue recognition challenges.

Automate usage capture and connect the usage system to billing and the general ledger. Each month, compare:
Investigate variances above 3%, using the threshold specified for this operating control. Apply historical dispute and forgiveness patterns when estimating variable consideration, and retain the usage extract, rate table, estimate, approval, invoice, and final true-up entry. The variable consideration guide provides a useful framework for documenting the estimate rather than treating the invoice as the accounting conclusion.
A $50,000 digital agency project can be billed at milestones while revenue is recognized according to work performed. The billing schedule tells you when to request payment. It doesn't automatically tell you when the customer receives the service.
Assume the agency is building a custom e-commerce site and uses labor hours as an input method. If the project plan supports recognition based on progress, and the team has completed 40% of the work at month-end, recognized revenue is $20,000:
$50,000 contract price × 40% complete = $20,000 revenue.
If the agency has billed $30,000 by that date, the balance sheet carries a contract liability of $10,000 because billing exceeds revenue recognized:
The net contract liability is $10,000. It represents consideration billed for work not yet transferred. If the agency has recognized $20,000 but billed only $15,000, the difference may be a contract asset, subject to the rights and conditions in the agreement.
A consulting engagement with quarterly payments should not wait for the quarterly invoice if the company performs and transfers services throughout the period. Track hours weekly, compare actual hours with the approved project budget, and update the completion estimate when scope or delivery assumptions change.
For audit support, retain time reports, project plans, approved change orders, client communications, deliverables, acceptance records, and the calculation supporting the percentage complete. A milestone approval can support a point-in-time conclusion for a distinct deliverable, but an internal belief that a milestone is complete isn't enough if the contract requires customer acceptance.
Practical rule: Treat milestones as billing mechanics unless the contract and delivery evidence show that the milestone represents a satisfied performance obligation.
Use a project revenue schedule showing total transaction price, expected duration, labor budget, actual hours, progress percentage, recognized revenue, billings, and the resulting contract asset or liability. The performance obligations guide helps frame the distinction between a promised service and a payment event.
A two-year software license sold for $24,000 produces a monthly recognition amount of $1,000 when the obligation is to provide continuous rights to use the software throughout the term.
At upfront payment:
Each month for 24 months:
The balance sheet begins with cash and a contract liability. The liability declines as the customer receives the right to use the software. The income statement recognizes revenue ratably across the license term, assuming the contract terms support that pattern and no separate performance obligations require different treatment.
Don't confuse this example with every software license. A perpetual license, implementation service, maintenance arrangement, hosting service, and term-based right of use can produce different accounting conclusions. Separate the promises in the contract first. If a license and support are distinct, allocate the transaction price using relative standalone selling prices rather than using the line-item amounts on the quote.
Deloitte's allocation example makes the calculation concrete. Products A, B, and C have standalone selling prices of $50, $25, and $75, while the bundled contract price is $100. The total standalone value is $150, so the relative allocation is:
The Deloitte guidance on standalone selling prices explains why you can't assign the bundle discount to whichever line produces the preferred revenue timing.
Distinguish perpetual and term licenses in the contract language and product catalog. Maintain a license register with customer, product, start date, end date, amount, monthly recognition, renewal date, and support obligations.
Flag renewals 90 days before expiration so sales and finance can review the commercial opportunity and the accounting treatment. A renewal is not just a continuation of the old schedule. It creates a new contract or modification that requires its own assessment.
ASC 606 turns each revenue scenario into a documented chain from contract terms to calculation, journal entry, balance-sheet effect, audit evidence, and operating control.
Apply the model to the accounting records. For an upfront SaaS payment, debit cash and credit deferred revenue, then debit deferred revenue and credit revenue as service is delivered. For a project, retain approved milestones, time records, deliverables, and acceptance evidence. A contract register should connect each schedule to its performance obligations and remaining balance-sheet liability.
Allocation requires judgment. In one licensing example, two licenses have standalone selling prices of $800 and $1,000, and a variable royalty tied to one license is estimated at $1,000. When the allocation criteria are met, the royalty is assigned entirely to that license. In another example, three obligations have standalone selling prices of $100, $200, and $300 and share $300 of variable consideration. Relative SSP allocation produces $50, $100, and $150, respectively, as shown in Deloitte's variable consideration examples.
See our guide to ASC 606 revenue recognition for the full five-step framework.
For modifications, document the decision. Distinct additions priced at standalone selling price may form a separate contract. Otherwise, reallocate the revised transaction price to unfulfilled obligations using their standalone selling prices, consistent with Stripe's contract modification guidance.

Keep the signed contract, approved change order, pricing evidence, schedule revision, journal entry, and reviewer approval together. Version control supports every audit conclusion.
ASC 606 can raise recurring compliance costs. A FASB post-implementation review found that 8 entities, or 62%, reported no change in audit fees, while 5 entities, or 38%, reported higher audit fees after adoption. Two expected the increase to remain recurring, according to the revenue recognition case study. Automate recurring schedules and document judgment areas before the audit begins.
| Scenario | Implementation Complexity 🔄 | Resource Requirements 💡 | Expected Outcomes 📊 | Ideal Use Cases ⚡ | Key Advantages ⭐ |
|---|---|---|---|---|---|
| SaaS Annual Subscription with Upfront Payment and Monthly Revenue Recognition | Low, straight-line monthly amortization and routine monthly entries | Billing system + deferred revenue schedule; automation recommended | Predictable monthly recognized revenue; cash collected upfront, P&L timing gap | Annual prepaid SaaS (per-seat, tiered plans) | Predictable cash inflow; easy audit trail; simple reconciliation |
| Multi-Year Subscription with Annual Billing (3-Year Deal at $3,600) | Moderate, multi-year schedules, cross‑fiscal tracking, proration and cancellation handling | Contract register, multi‑year recognition schedule, automation to avoid manual errors | Strong initial cash; deferred liability spans years; steady monthly revenue recognition | Mid‑market/enterprise multi‑year commitments and retainers | Improves retention/LTV; upfront cash boosts working capital |
| Usage-Based Pricing with Monthly True-Up (Variable Consideration) | High, variable consideration estimates, probability assessments, monthly true‑ups | Automated usage tracking, billing integration, conservative estimation controls | Revenue aligns to usage; month‑to‑month variability; true‑ups common | API platforms, metered services, consumption‑driven products | Aligns pricing to delivered value; signals expansion; flexible go‑to‑market |
| Professional Services Project with Milestone-Based Billing (Performance Over Time) | High, percent‑complete (input method) tracking, evidence for audit, complex estimates | Timesheets, project management, weekly sync to accounting, variance analysis | Revenue recognized by % complete; smooths P&L but risk if project overruns | Custom development, consulting engagements, long projects with milestones | Matches revenue to work performed; early detection of budget overruns |
| Licensing Software with Right‑of‑Use Over 2 Years (Term License) | Low–Moderate, ratable recognition over term; requires contract classification | License register, contract review, renewal alerts, monthly amortization schedule | Predictable monthly revenue; deferred liability amortized over term | Term licenses, enterprise term agreements with upfront payment | Predictable recognition; cashflow benefit when prepaid; clear renewal cadence |
| ASC 606 Core Principles, Common Audit Red Flags and Best Practices | Variable, foundational policy work and documented judgments across scenarios | Contract register, reconciliations, automation, documented judgments for auditors | Consistent recognition across contract types; reduced audit adjustments and risk | Applies to all revenue arrangements; essential for audit readiness | Standardizes recognition, reduces audit risk, clarifies judgment areas |
Start with an inventory of every active customer contract, not just the contracts that generated invoices during the month. Include SaaS subscriptions, implementation work, agency retainers, term licenses, usage-based pricing, renewals, credits, cancellations, and signed amendments.
Then apply a repeatable sequence:
Your month-end file should preserve the calculation and the evidence behind it. General-purpose CRM and billing systems often capture the commercial deal but not the distinct performance obligations, variable-consideration constraint, or modification history. That operational data chain is where many errors begin, especially when CPQ, billing, project management, and accounting systems hold different versions of the same contract.
Cash collection and invoicing don't determine revenue. They determine when money changes hands or when you establish a receivable. Revenue follows the transfer of promised goods or services, and the journal entry must follow that conclusion.
If your company is preparing for fundraising, an audit, or a faster close, ask Jumpstart Partners about an ASC 606 workflow, QuickBooks cleanup, or revenue-recognition implementation designed for a $500K to $20M business. Bring your active contracts, billing export, deferred revenue report, and latest reconciliation so the review can identify schedule gaps and control failures quickly.
Jumpstart Partners provides outsourced controller and bookkeeping services for SaaS, agencies, professional services firms, and other growing businesses, including ASC 606 documentation, revenue schedules, contract-balance reconciliations, and audit-ready close packages. Visit Jumpstart Partners to discuss the workflow you need, whether that's a QuickBooks cleanup, monthly close support, or revenue-recognition implementation.