Revenue Recognition Mistakes (And How to Avoid Them)
The revenue recognition mistakes that distort manufacturers' financials — and how to avoid them under ASC 606.
Most manufacturers think revenue recognition is simple: you sell something, you book the sale. Done.
It isn't. And the gap between when you get a purchase order, when you ship, when you get paid, and when you're actually allowed to record revenue is where financials go wrong.
I've seen clean, profitable companies look like they're swinging wildly month to month — not because the business changed, but because revenue was booked in the wrong period. Let's fix that.
Why Revenue Recognition Matters
Here's the core idea, and it's the one most people get wrong:
Recognizing revenue is not the same as getting paid. It's not the same as shipping. It's not the same as receiving a purchase order.
Revenue recognition is an accounting decision about when you've earned the money — when you've done what you promised the customer. The cash can show up before, during, or long after.
Why does this matter? Three reasons:
- Your profit is wrong if your timing is wrong. Book revenue too early and you report profit you haven't earned. Book it too late and you look weaker than you are.
- Your lender reads these numbers. Banks set covenants on revenue and profit. Distorted revenue timing can trip a covenant you didn't actually breach in reality.
- Your decisions follow the numbers. If March looks like a blowout and April looks like a collapse — but it was the same job split badly across two months — you'll make bad calls on hiring, pricing, and cash.
The rulebook that governs this in the US is ASC 606. It sounds intimidating. It's actually a clear, five-step way of thinking. Let's walk through it.
The ASC 606 Five-Step Model in Plain English
ASC 606 is the accounting standard for "revenue from contracts with customers." Every sale you make is, in accounting terms, a contract. Here are the five steps:
Step 1 — Identify the contract. A contract is simply an agreement with a customer that creates enforceable rights and obligations. A signed PO, a master supply agreement, even a clear email chain can qualify. You need to know: is there a real, approved deal with commercial substance?
Step 2 — Identify the performance obligations. A performance obligation is a distinct promise to the customer — a thing you've agreed to deliver. One contract can contain several. "Build the machine," "install it on site," and "service it for two years" are three separate promises, not one.
Step 3 — Determine the transaction price. This is the total amount you expect to be entitled to. Sounds easy, but it has to account for discounts, rebates, returns, and anything else that might change the final number (we'll come back to this — it's mistake number five).
Step 4 — Allocate the transaction price to the performance obligations. Split the total price across each distinct promise, based on what each would sell for on its own (its standalone selling price). The $500,000 deal becomes, say, $400,000 for the machine, $60,000 for install, and $40,000 for service.
Step 5 — Recognize revenue as you satisfy each obligation. You record revenue when (or as) you actually deliver each promise — when control passes to the customer. The machine portion when it's accepted, the install portion when install is done, the service portion spread across the two years.
That's the whole model. Now here are the five places manufacturers reliably get it wrong.
Mistake 1 — Recognizing Revenue Too Early
The symptom: You book the full sale when the PO lands, or the moment the truck leaves your dock — regardless of whether you've actually satisfied your promise to the customer.
A PO is just an order. Shipment might transfer control, or it might not. If the customer's contract says they pay on acceptance after a test run at their site, you haven't earned the revenue when the truck pulls away. You've earned it when they accept.
Book it early and you pull profit into this period that belongs in the next one. The classic tell: a strong quarter-end followed by a soft start to the next quarter, repeating like clockwork.
The fix: Tie recognition to control transfer, not paperwork. Ask one question for each sale: has the customer obtained control — can they direct the use of and get the benefit from what we delivered? Read the shipping terms (FOB shipping point vs. FOB destination) and any acceptance clauses. When acceptance is required, wait for acceptance.
Mistake 2 — Ignoring Multiple Performance Obligations in Bundled Deals
The symptom: You sign a single $500,000 deal for a machine plus installation plus a two-year service plan, and you book the entire $500,000 the day the machine ships.
That's Step 2 and Step 5 failing together. You had three distinct promises and treated them as one. The install isn't done. The two years of service haven't been provided. You've recognized revenue for work you still owe.
Here's the corrected version using Step 4 allocation:
| Performance obligation | Allocated price | Recognized when |
|---|---|---|
| Machine | $400,000 | Customer accepts the machine |
| Installation | $60,000 | Install is completed |
| 2-year service plan | $40,000 | Spread evenly: $1,667/month for 24 months |
So on the ship-and-accept date you recognize $400,000, not $500,000. The install $60,000 lands when install finishes. The $40,000 service drips in at roughly $1,667 a month. The rest sits in deferred revenue until earned.
The fix: Break every bundled deal into its distinct promises and allocate the price across them by standalone selling price. Recognize each piece only as you deliver it.
Mistake 3 — Mishandling Deferred Revenue and Customer Deposits
The symptom: A customer wires a 30% deposit on a custom order, and it shows up as revenue.
It isn't revenue. It's a deferred revenue — money you've collected but haven't earned. In plain terms: it's a liability. You owe the customer a product. Until you deliver, that cash is a promise outstanding, not a sale.
Worked example. You take a $300,000 deposit on a $1,000,000 custom line that will take five months to build and deliver:
- Day the deposit lands: Cash up $300,000, Deferred revenue (a liability) up $300,000. Revenue recognized: $0.
- When you deliver and the customer accepts: you recognize the full $1,000,000 of revenue, clear the $300,000 deferred revenue, and book the remaining $700,000 as a receivable or collect it.
Book that deposit as revenue on day one and you've reported a sale five months before you earned it.
The fix: Route every deposit and prepayment to a deferred revenue (liability) account. Release it to revenue only when the obligation is satisfied. Reconcile the deferred revenue balance every month — it should equal the value of everything customers have paid for but not yet received.
Mistake 4 — Percentage-of-Completion and Over-Time Recognition Errors
The symptom: You have a long, custom job that runs eight months, and you either book nothing until the end or book it in lumpy, gut-feel chunks.
Some obligations are satisfied over time rather than at a single point — typically long, custom builds where the customer controls the asset as it's made, or where the asset has no use to anyone but that customer. For those, you recognize revenue as the work progresses. The common method is percentage-of-completion: you recognize revenue in proportion to how far along the job is, usually measured by costs incurred versus total estimated costs.
Worked example. An $800,000 custom job with $600,000 of total estimated cost:
| Through month | Costs incurred | % complete (cost-to-cost) | Cumulative revenue | Revenue this period |
|---|---|---|---|---|
| Month 3 | $150,000 | 25% | $200,000 | $200,000 |
| Month 6 | $390,000 | 65% | $520,000 | $320,000 |
| Month 8 | $600,000 | 100% | $800,000 | $280,000 |
The errors creep in two ways. First, stale cost estimates — if your total estimated cost is wrong, your percentage is wrong, and so is every revenue figure built on it. Second, counting costs that don't reflect progress — dumping a big pile of materials on site that haven't been installed inflates your percentage without real progress.
The fix: Confirm the job genuinely qualifies for over-time recognition before you use it. Update your total cost estimate every month. Exclude uninstalled materials and prepayments from the cost-to-cost measure so your percentage reflects actual work performed.
Mistake 5 — Booking the Full Price When There's Variable Consideration
The symptom: A customer has a volume rebate, a right of return, or an early-pay discount — and you book the full list price anyway.
This is Step 3 failing. The transaction price is what you actually expect to keep, not the sticker price. Anything that can reduce the final amount is variable consideration, and you have to estimate it and reduce revenue up front.
Worked example. You sell $1,000,000 of product to a distributor with a 10% rebate if they hit an annual volume tier you expect them to hit, and you estimate 3% will be returned:
- Gross list price: $1,000,000
- Less expected rebate (10%): ($100,000)
- Less expected returns (3%): ($30,000)
- Revenue you should recognize: $870,000
The $130,000 difference sits as a liability (a refund/rebate obligation), not revenue. Book the full $1,000,000 and you'll be clawing back revenue later when the rebate and returns actually hit — exactly the kind of restatement that rattles a lender.
The fix: For every customer arrangement, list what could reduce the final amount — rebates, returns, discounts, price concessions, penalties. Estimate them, reduce the transaction price, and park the difference as a liability. Revisit the estimate each period as actuals come in.
Why This Bites Manufacturers Specifically
These rules apply to everyone, but manufacturers get hit harder than most, for three reasons:
- Deposits are normal. Custom and long-lead orders almost always come with upfront payments. That's a deferred revenue balance to manage every single month — and a tempting pile of cash to mistake for a sale.
- Custom, long-lead jobs are the business. Eight-month builds with evolving cost estimates put you squarely into over-time recognition, where stale estimates quietly distort revenue.
- Bundling is everywhere. Equipment plus install plus warranty plus a service contract is a standard manufacturing sale — which means multiple performance obligations and allocation on most of your big deals.
Stack those together and you have the perfect conditions for lumpy, misstated revenue. Which is exactly why getting this right is worth real money.
Bottom Line
Revenue recognition isn't about cash hitting the bank or a truck leaving the dock. It's about when you've actually earned the money by keeping your promise to the customer.
Run every meaningful deal through the five steps. Watch the five mistakes: too early, ignored bundles, mishandled deposits, sloppy over-time estimates, and ignored variable consideration. Get those right and your monthly numbers stop swinging for no reason — and start telling you the truth about the business.
That's the foundation everything else — forecasting, covenant management, pricing — gets built on.
Want a structured way to pressure-test your numbers? Get our Financial Analysis Checklist →