# Revenue Recognition Explained: ASC 606 & IFRS 15 Guide

Published: 2026-04-19
Author: Warren Team
URL: https://www.heywarren.com/blog/revenue-recognition

---
When does a company actually "earn" revenue — when the contract is signed, when cash arrives, or when the work is done? The answer matters enough that ASC 606 and [IFRS](https://www.ifrs.org/) 15 — the modern [revenue recognition](/blog/recognise-revenue) standard — took a decade to develop and forced thousands of companies to overhaul their accounting systems. Revenue recognition is the single most consequential judgment in any financial statement, shaping reported growth, margins, valuation multiples, and even executive bonuses.

Yet for most investors and founders, the rules feel like a black box. When can a SaaS company book that $12,000 annual subscription? Why did Sunbeam, Computer Associates, and a parade of other firms blow up over revenue timing? How do construction firms record work that spans years? This guide unpacks the principle, walks through the official five-step framework with worked examples, surfaces the industry-specific quirks, and flags the red flags that signal aggressive accounting. By the end, you will read an income statement the way a CPA does — knowing exactly which revenue lines deserve trust and which deserve scrutiny.

## What Is Revenue Recognition?

Revenue recognition is the accounting principle that determines the specific conditions under which a company records revenue as earned in its income statement. The core idea: revenue belongs to the period in which the company actually delivered value to a customer — not necessarily when cash changed hands.

![A SaaS company collects $12,000 on day one but recognizes only $1,000 in month one under ASC 606, illustrating why cash receipt and earned revenue diverge.](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20210%22%20width%3D%22800%22%20height%3D%22210%22%20role%3D%22img%22%3E%3Ctitle%3EComparison%3C%2Ftitle%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22%23f8fafc%22%2F%3E%3Ctext%20x%3D%22230%22%20y%3D%2257.5%22%20text-anchor%3D%22end%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2214%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3ECash%20Collected%20%28Jan%201%29%3C%2Ftext%3E%3Crect%20x%3D%22240%22%20y%3D%2225%22%20width%3D%22450%22%20height%3D%2255%22%20rx%3D%226%22%20fill%3D%22%232563eb%22%2F%3E%3Ctext%20x%3D%22702%22%20y%3D%2257.5%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2214%22%20font-weight%3D%22700%22%20fill%3D%22%232563eb%22%3E%2412K%3C%2Ftext%3E%3Ctext%20x%3D%22230%22%20y%3D%22152.5%22%20text-anchor%3D%22end%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2214%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3EMonth%201%20Revenue%20Earned%3C%2Ftext%3E%3Crect%20x%3D%22240%22%20y%3D%22120%22%20width%3D%2237.5%22%20height%3D%2255%22%20rx%3D%226%22%20fill%3D%22%237c3aed%22%2F%3E%3Ctext%20x%3D%22289.5%22%20y%3D%22152.5%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2214%22%20font-weight%3D%22700%22%20fill%3D%22%237c3aed%22%3E%241.0K%3C%2Ftext%3E%3C%2Fsvg%3E)

*A SaaS company collects $12,000 on day one but recognizes only $1,000 in month one under ASC 606, illustrating why cash receipt and earned revenue diverge.*

That distinction is everything. Cash accounting tracks dollars in the door. Accrual accounting, which governs every public company under GAAP and IFRS, requires that revenue be matched to the economic event that produced it. A magazine that collects $120 today for a 12-month subscription has not earned $120 today — it has earned $10 and owes the customer 11 more issues. The remaining $110 sits on the balance sheet as [deferred revenue](/blog/deferred-revenue), also called [unearned revenue](/blog/unearned-revenue) or a contract liability.

### The Two Classic Tests

Before ASC 606 unified the rules, US GAAP relied on a simple two-prong test: revenue could be recognized when it was both (1) earned — meaning the seller had substantially completed what it promised — and (2) realized or realizable — meaning collection of payment was reasonably assured. Both conditions had to be met. A signed contract alone was not enough. Cash in hand was not enough. The work itself was the trigger.

### Why It Matters So Much

Revenue is the top line, and almost every other metric flows from it. Gross margin, [operating margin](/blog/calculate-operating-margin), growth rate, EV/revenue multiples, and sales-based covenants all depend on when revenue gets booked. Move a few million dollars from Q4 into Q1 and you can save a quarter — or destroy a career. That fragility is exactly why regulators wrote a 700-page standard.

## The Old World: SAB 104 and a Patchwork of Rules

For roughly two decades before 2018, US companies followed a patchwork of revenue rules anchored by SAB 104 (Staff Accounting Bulletin 104), supplemented by industry-specific guidance for software (SOP 97-2), construction, real estate, and dozens of other verticals. Multiple-element arrangements — say, hardware bundled with software and support — required complex vendor-specific objective evidence rules.

The result was inconsistency. A software company and a hardware company selling economically identical products could report wildly different revenue patterns. International peers operating under IAS 18 followed yet another playbook. Cross-border comparability was poor, and judgment-heavy industries like aerospace and biotech invited abuse.

The [FASB](https://www.fasb.org/) and IASB spent more than ten years jointly developing a single, principles-based replacement: ASC 606 in the US and IFRS 15 internationally. The standards became effective for public companies in 2018 and private companies in 2019. They apply to nearly every contract with a customer, regardless of industry.

## The 5-Step Revenue Recognition Framework

ASC 606 and IFRS 15 collapse all revenue recognition into a single five-step model. Memorize these steps and you can analyze almost any contract. The framework moves from the legal arrangement down to the precise dollar that hits the income statement in a given period.

![The five sequential steps of the ASC 606 / IFRS 15 revenue recognition framework, from contract identification to revenue recorded on the income statement.](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20800%20149%22%20width%3D%22800%22%20height%3D%22149%22%20role%3D%22img%22%3E%3Ctitle%3ETimeline%3C%2Ftitle%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22%23f8fafc%22%2F%3E%3Cline%20x1%3D%22120%22%20y1%3D%2255%22%20x2%3D%22680%22%20y2%3D%2255%22%20stroke%3D%22%23cbd5e1%22%20stroke-width%3D%223%22%2F%3E%3Ccircle%20cx%3D%22120%22%20cy%3D%2255%22%20r%3D%2224%22%20fill%3D%22white%22%20stroke%3D%22%23cbd5e1%22%20stroke-width%3D%222%22%2F%3E%3Ctext%20x%3D%22120%22%20y%3D%2260%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2215%22%20font-weight%3D%22700%22%20fill%3D%22%230f172a%22%3E1%3C%2Ftext%3E%3Ctext%20x%3D%22120%22%20y%3D%22101%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2212%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3EIdentify%20Contract%3C%2Ftext%3E%3Ctext%20x%3D%22120%22%20y%3D%22119%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2210%22%20fill%3D%22%2364748b%22%3EStep%201%3C%2Ftext%3E%3Ccircle%20cx%3D%22260%22%20cy%3D%2255%22%20r%3D%2224%22%20fill%3D%22white%22%20stroke%3D%22%23cbd5e1%22%20stroke-width%3D%222%22%2F%3E%3Ctext%20x%3D%22260%22%20y%3D%2260%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2215%22%20font-weight%3D%22700%22%20fill%3D%22%230f172a%22%3E2%3C%2Ftext%3E%3Ctext%20x%3D%22260%22%20y%3D%22101%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2212%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3EIdentify%20Obligations%3C%2Ftext%3E%3Ctext%20x%3D%22260%22%20y%3D%22119%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2210%22%20fill%3D%22%2364748b%22%3EStep%202%3C%2Ftext%3E%3Ccircle%20cx%3D%22400%22%20cy%3D%2255%22%20r%3D%2224%22%20fill%3D%22white%22%20stroke%3D%22%23cbd5e1%22%20stroke-width%3D%222%22%2F%3E%3Ctext%20x%3D%22400%22%20y%3D%2260%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2215%22%20font-weight%3D%22700%22%20fill%3D%22%230f172a%22%3E3%3C%2Ftext%3E%3Ctext%20x%3D%22400%22%20y%3D%22101%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2212%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3ETransaction%20Price%3C%2Ftext%3E%3Ctext%20x%3D%22400%22%20y%3D%22119%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2210%22%20fill%3D%22%2364748b%22%3EStep%203%3C%2Ftext%3E%3Ccircle%20cx%3D%22540%22%20cy%3D%2255%22%20r%3D%2224%22%20fill%3D%22white%22%20stroke%3D%22%23cbd5e1%22%20stroke-width%3D%222%22%2F%3E%3Ctext%20x%3D%22540%22%20y%3D%2260%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2215%22%20font-weight%3D%22700%22%20fill%3D%22%230f172a%22%3E4%3C%2Ftext%3E%3Ctext%20x%3D%22540%22%20y%3D%22101%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2212%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3EAllocate%20Price%3C%2Ftext%3E%3Ctext%20x%3D%22540%22%20y%3D%22119%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2210%22%20fill%3D%22%2364748b%22%3EStep%204%3C%2Ftext%3E%3Ccircle%20cx%3D%22680%22%20cy%3D%2255%22%20r%3D%2224%22%20fill%3D%22%232563eb%22%20stroke%3D%22%232563eb%22%20stroke-width%3D%223%22%2F%3E%3Ctext%20x%3D%22680%22%20y%3D%2260%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2215%22%20font-weight%3D%22700%22%20fill%3D%22white%22%3E5%3C%2Ftext%3E%3Ctext%20x%3D%22680%22%20y%3D%22101%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2212%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3ERecognize%20Revenue%3C%2Ftext%3E%3Ctext%20x%3D%22680%22%20y%3D%22119%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2210%22%20fill%3D%22%2364748b%22%3EStep%205%3C%2Ftext%3E%3C%2Fsvg%3E)

*The five sequential steps of the ASC 606 / IFRS 15 revenue recognition framework, from contract identification to revenue recorded on the income statement.*

### Step 1: Identify the Contract

A contract exists when both parties have approved it, the rights and payment terms are identifiable, the contract has commercial substance, and collection is probable. Verbal contracts count if they create enforceable rights. Master service agreements with separate purchase orders typically generate one contract per PO.

### Step 2: Identify the Performance Obligations

A performance obligation is a promise to transfer a distinct good or service. "Distinct" means the customer can benefit from it on its own (or with readily available resources) and it is separately identifiable from other promises in the contract. A software license, a year of hosting, training hours, and an installation service may each be separate obligations — or may be bundled if they are highly interdependent.

### Step 3: Determine the Transaction Price

The [transaction](/blog/what-is-a-transactions) price is the amount of consideration the entity expects to receive in exchange for transferring goods or services. It includes fixed amounts plus estimates of variable consideration (discounts, rebates, performance bonuses, refunds, penalties), adjusted for any significant financing component and noncash consideration.

### Step 4: Allocate the Transaction Price

If the contract has multiple performance obligations, the transaction price is allocated across them based on relative standalone selling prices. If a standalone price is not observable, the company estimates it using an adjusted market assessment, expected cost plus margin, or a residual approach.

### Step 5: Recognize Revenue

Revenue is recognized when (or as) the entity satisfies a performance obligation by transferring control to the customer. Some obligations are satisfied at a point in time; others are satisfied over time. This is where dollars finally land on the income statement.

## Revenue Recognition Examples: Two Worked Cases

The framework feels abstract until you push real numbers through it. Here are two scenarios that cover the most common patterns CFOs and auditors encounter.

### Example 1: SaaS Annual Subscription

A SaaS company sells a $12,000 annual subscription, billed upfront on January 1.

- **Step 1:** Customer signs an annual contract. Enforceable rights exist.
- **Step 2:** One performance obligation — provide continuous access to the software platform for 12 months.
- **Step 3:** Transaction price is $12,000.
- **Step 4:** All $12,000 is allocated to the single performance obligation.
- **Step 5:** Because the customer simultaneously receives and consumes the benefit, revenue is recognized over time — $1,000 per month for 12 months.

On January 1, cash increases $12,000 and deferred revenue increases $12,000. Each month, $1,000 moves from deferred revenue to recognized revenue. By December 31, deferred revenue is zero and the income statement reflects $12,000 in subscription revenue.

### Example 2: Software with Installation, Training, and Hosting

An enterprise software company sells a $500,000 package: a perpetual license ($300,000 standalone), professional installation ($50,000), training ($50,000), and one year of hosting ($100,000).

There are four distinct performance obligations. The transaction price is allocated by relative standalone selling price — in this case the prices already total $500,000, so allocation is straightforward. Recognition splits as follows:

- **License:** Recognized at a point in time when the customer gains control (typically delivery of activation keys) — $300,000.
- **Installation:** Recognized at a point in time when installation is complete — $50,000.
- **Training:** Recognized as training sessions are delivered — $50,000.
- **Hosting:** Recognized over time, ratably across 12 months — $100,000 spread at roughly $8,333 per month.

A naive cash-basis view would book $500,000 on day one. ASC 606 spreads it correctly across the periods in which value is actually delivered.

## Point in Time vs. Over Time

A central judgment under ASC 606 is whether a performance obligation is satisfied at a point in time or over time. Get this wrong and the revenue pattern is off by months or years.

![Any one of these three criteria qualifies a performance obligation for over-time revenue recognition under ASC 606.](data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20600%20211%22%20width%3D%22600%22%20height%3D%22211%22%20role%3D%22img%22%3E%3Ctitle%3EHierarchy%3C%2Ftitle%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20fill%3D%22%23f8fafc%22%2F%3E%3Crect%20x%3D%22220%22%20y%3D%2220%22%20width%3D%22160%22%20height%3D%2258%22%20rx%3D%228%22%20fill%3D%22%232563eb%22%2F%3E%3Ctext%20x%3D%22300%22%20y%3D%2254%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2214%22%20font-weight%3D%22700%22%20fill%3D%22white%22%3EOver%20Time%3C%2Ftext%3E%3Cpath%20d%3D%22M%20300%2078%20L%20300%20105.5%20L%20120%20105.5%20L%20120%20133%22%20stroke%3D%22%23cbd5e1%22%20stroke-width%3D%222%22%20fill%3D%22none%22%2F%3E%3Crect%20x%3D%2240%22%20y%3D%22133%22%20width%3D%22160%22%20height%3D%2258%22%20rx%3D%228%22%20fill%3D%22white%22%20stroke%3D%22%230891b2%22%20stroke-width%3D%222%22%2F%3E%3Ctext%20x%3D%22120%22%20y%3D%22158%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2213%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3ECustomer%20Consumes%3C%2Ftext%3E%3Ctext%20x%3D%22120%22%20y%3D%22176%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2210%22%20fill%3D%22%2364748b%22%3Eas%20entity%20performs%3C%2Ftext%3E%3Cpath%20d%3D%22M%20300%2078%20L%20300%20105.5%20L%20300%20105.5%20L%20300%20133%22%20stroke%3D%22%23cbd5e1%22%20stroke-width%3D%222%22%20fill%3D%22none%22%2F%3E%3Crect%20x%3D%22220%22%20y%3D%22133%22%20width%3D%22160%22%20height%3D%2258%22%20rx%3D%228%22%20fill%3D%22white%22%20stroke%3D%22%230891b2%22%20stroke-width%3D%222%22%2F%3E%3Ctext%20x%3D%22300%22%20y%3D%22158%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2213%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3ECustomer%20Controls%3C%2Ftext%3E%3Ctext%20x%3D%22300%22%20y%3D%22176%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2210%22%20fill%3D%22%2364748b%22%3Easset%20being%20created%3C%2Ftext%3E%3Cpath%20d%3D%22M%20300%2078%20L%20300%20105.5%20L%20480%20105.5%20L%20480%20133%22%20stroke%3D%22%23cbd5e1%22%20stroke-width%3D%222%22%20fill%3D%22none%22%2F%3E%3Crect%20x%3D%22400%22%20y%3D%22133%22%20width%3D%22160%22%20height%3D%2258%22%20rx%3D%228%22%20fill%3D%22white%22%20stroke%3D%22%230891b2%22%20stroke-width%3D%222%22%2F%3E%3Ctext%20x%3D%22480%22%20y%3D%22158%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2213%22%20font-weight%3D%22600%22%20fill%3D%22%230f172a%22%3ENo%20Alt%20Use%3C%2Ftext%3E%3Ctext%20x%3D%22480%22%20y%3D%22176%22%20text-anchor%3D%22middle%22%20font-family%3D%22system-ui%2C-apple-system%2Csans-serif%22%20font-size%3D%2210%22%20fill%3D%22%2364748b%22%3Eright%20to%20payment%20exists%3C%2Ftext%3E%3C%2Fsvg%3E)

*Any one of these three criteria qualifies a performance obligation for over-time revenue recognition under ASC 606.*

### Point in Time

Revenue is recognized at the moment the customer obtains control of the good or service. Indicators of control include the customer having legal title, physical possession, the right to accept or reject, the risks and rewards of ownership, and a present obligation to pay. Most retail sales, hardware deliveries, and software licenses fit here.

### Over Time

Revenue is recognized over time if any one of three criteria is met: (1) the customer simultaneously receives and consumes benefits as the entity performs (typical for routine services and SaaS); (2) the entity creates or enhances an asset the customer controls; or (3) the asset has no alternative use and the entity has an enforceable right to payment for performance to date. Long-duration construction contracts use the percentage-of-completion method, measuring progress by costs incurred, labor hours, units produced, or milestones reached.

## Variable Consideration, Financing, and Modifications

Real-world contracts rarely lock in a single fixed price delivered in a single moment. ASC 606 layers in three adjustments that frequently trip up preparers: variable consideration, significant financing components, and contract modifications. Each can shift recognized revenue meaningfully.

Variable consideration includes discounts, rebates, refunds, credits, performance bonuses, royalties, and penalties. Companies must estimate the amount using either the **expected value** method (probability-weighted) or the **most likely amount** method, whichever better predicts the consideration. The estimate is then subject to a **constraint**: include only the amount you are highly confident will not have to be reversed later. Pharma royalties tied to sales-based milestones, for instance, often sit outside the constraint until the underlying sales actually occur.

A significant financing component arises when payment timing creates an effective loan between the parties — say, a customer pays three years upfront for services delivered later. The transaction price is adjusted to separate the financing portion from the goods or services portion, and interest expense or income is recognized accordingly.

Contract modifications are evaluated three ways: (1) treat as a separate new contract if the modification adds distinct goods or services at standalone prices; (2) treat as termination of the old contract and creation of a new one if remaining goods are distinct; or (3) treat as a continuation with a cumulative catch-up adjustment if remaining goods are not distinct.

## Industry Applications

Although the framework is unified, application varies sharply by industry. Each vertical has recurring patterns that auditors and analysts learn to recognize.

- **SaaS and subscription:** Almost always over-time recognition, ratable across the term. Setup fees and implementation services often must be deferred and recognized over the expected customer life.
- **Construction and engineering:** Long-duration projects use over-time recognition via cost-to-cost or output measures. Estimates of total cost drive the percentage complete.
- **Pharma and biotech:** Upfront license fees, milestone payments, and sales-based royalties each get separate treatment. Milestones are constrained variable consideration.
- **Telecom:** Bundled handset-plus-service plans require allocating the bundled price across the device (point in time) and the service (over time) by standalone selling prices — a major change from prior practice.
- **Retail:** Loyalty programs create separate performance obligations; gift cards generate breakage estimates.
- **Real estate:** Sales of property generally point in time at closing; certain development contracts may qualify for over-time treatment.
- **Healthcare:** Variable consideration is pervasive — payer mix, contractual allowances, and bad debt estimates all flow through the transaction price.
- **Media:** Advertising recognized as impressions are delivered; subscriptions recognized ratably.

Disclosure requirements under ASC 606 are far more extensive than under SAB 104. Companies must disaggregate revenue by category, disclose contract balances and significant judgments, and reconcile remaining performance obligations.

## Red Flags, Fraud Cases, and Common Mistakes

Revenue is the most manipulated line in financial statements, and history offers a hall of fame of cautionary tales. Understanding the patterns helps investors spot trouble before it lands on the front page.

### Famous Fraud Cases

**Computer Associates** ran the infamous "35-day month," booking revenue from contracts signed days after the quarter ended to hit Wall Street targets. **Sunbeam**, under Al "Chainsaw" Dunlap, engaged in massive channel stuffing — shipping product to distributors who had no end-customer demand, just to book the revenue. **MicroStrategy** restated years of revenue in 2000 after aggressively front-loading multi-year contract revenue. **WorldCom** is best known for capitalizing operating expenses, an adjacent abuse that similarly inflated reported earnings.

The common thread: every one of these companies pulled revenue forward, recognized obligations not yet satisfied, or hid variable consideration. ASC 606 was written, in part, to make these games harder.

### Investor Red Flags

- **DSO trending up:** Days sales outstanding rising faster than revenue suggests collections are slowing or revenue was booked aggressively.
- **Deferred revenue declining while sales grow:** May indicate revenue is being pulled forward rather than billed and earned over time.
- **Quarter-end customer concentration:** Large deals closing in the final week of every quarter is a stuffing pattern.
- **Recurring "one-time" items:** True one-timers do not repeat. Repetition signals classification games.
- **Aggressive percentage-of-completion estimates:** Optimistic cost-to-complete forecasts inflate near-term revenue.
- **Channel stuffing signals:** Distributor inventory rising faster than sell-through.

### Common Mistakes (Even Without Fraud)

Honest accounting errors include recognizing revenue too early before control transfers, missing distinct performance obligations and bundling them incorrectly, mishandling variable consideration by ignoring the constraint, failing to identify a significant financing component in long-dated contracts, and applying inconsistent treatment from period to period.

## Authoritative Sources

For deeper background and primary-source data on this topic, the following authoritative sources are useful starting points:

- [AICPA](https://www.aicpa-cima.com/)
- [Public Company Accounting Oversight Board](https://pcaobus.org/)

## Conclusion

Revenue recognition is where accounting stops being arithmetic and starts being judgment. The five-step framework under ASC 606 and IFRS 15 — identify the contract, identify the performance obligations, determine the transaction price, allocate it, and recognize revenue as obligations are satisfied — gives every preparer a common language. But the judgment calls inside each step, especially around variable consideration, point-in-time versus over-time delivery, and contract modifications, drive the actual numbers.

Three takeaways to carry forward:

1. **Cash is not revenue.** Earned and realizable, not collected, is the trigger.
2. **Performance obligations are the unit of analysis.** Bundle wrong and the timing breaks.
3. **Red flags cluster.** DSO drift, deferred revenue compression, and quarter-end deal lumps rarely appear alone.

As AI-native finance tools shorten the gap between the contract, the ledger, and the disclosure, expect revenue recognition to become more transparent in real time — and aggressive games to get caught faster. Investors who understand the rules will read income statements with the same skepticism a seasoned auditor brings to a fourth-quarter close.

Ready to put this knowledge to work? Try Warren, your AI financial advisor — get personalized, conflict-free guidance at heywarren.com

---


## Related Reading

**More from Warren**:

**Authoritative sources**:
- [SEC Investor.gov — Investing Basics](https://www.investor.gov/introduction-investing/investing-basics)
- [FINRA — Investor Education](https://www.finra.org/investors)
