If you sell physical products online, roughly one in five things you ship will eventually come back. The average ecommerce return rate in 2026 sits around 20.8%, more than double the brick-and-mortar rate. For apparel, it's closer to 25%. Returns are no longer a rounding error — they're a structural line item that shapes how your business actually performs.
And yet a surprising number of small businesses still book returns the wrong way. They debit "Sales" directly when a customer brings something back, quietly erasing the original transaction from the books. The top-line revenue number on the income statement looks cleaner. Gross margin looks healthier. Investors and lenders see a company that ships less than it really does. Auditors, when they show up, see something else: a control problem.
This guide walks through the right way to account for returns, allowances, and discounts — the contra-revenue accounts that sit between gross sales and the net sales figure that actually matters. We'll cover the journal entries, the ASC 606 refund liability that trips up most first-time adopters, and the common mistakes that turn an honest accounting choice into a restatement.
What "contra-revenue" actually means
A contra account is a paired account that carries a balance opposite to the account it offsets. Accumulated depreciation is a contra-asset. Treasury stock is a contra-equity account. And sales returns and allowances, sales discounts, and refund liabilities are contra-revenue accounts — they reduce the revenue line without erasing the original sale.
The point of using a contra account instead of just debiting Sales is information preservation. When you net everything against the top-line revenue figure, you lose the ability to see how much you actually invoiced versus how much customers gave back. That signal matters. A company with $1 million in gross sales and $250,000 in returns has very different operational problems than a company with $750,000 in gross sales and no returns — even though both report $750,000 in net revenue.
On the income statement, the structure looks like this:
Gross sales $1,000,000
Less: Sales returns and allowances (200,000)
Less: Sales discounts (30,000)
Net sales $770,000
Less: Cost of goods sold (462,000)
Gross profit $308,000The contra-revenue accounts have normal debit balances. Revenue accounts have normal credit balances. Subtracting one from the other gives the net revenue figure that flows into margin calculations.
The three contra-revenue accounts most businesses need
Sales returns
A return is a customer giving back the physical product, expecting either a refund, a replacement, or credit toward a future purchase. The customer is exiting the transaction. You need to reverse the sale, reverse the cost of goods sold, and put the item back into inventory (if it's resaleable) or write it off.
Sales allowances
An allowance is a price concession on a product the customer keeps. The shirt arrived with a small flaw, but the customer doesn't want to bother shipping it back, so you knock 20% off the invoice. No inventory comes back. No COGS reverses. You just reduce revenue and accounts receivable.
Sales discounts
A discount is typically a payment-term incentive — "2/10, net 30" means the customer can take 2% off if they pay within 10 days. Some companies lump volume discounts and promotional discounts in here too. Like allowances, discounts reduce revenue without affecting inventory.
The reason to keep these as three separate accounts (rather than one giant "Adjustments to Sales" bucket) is diagnostic. High returns point to product quality or sizing problems. High allowances point to fulfillment damage or expectation gaps. High discounts point to pricing power or collection issues. The accounts let you see which lever is moving.
Recording an actual return: the journal entries
Assume you sell a $500 lamp that cost you $300 to buy. The original sale, on credit:
Dr Accounts Receivable 500
Cr Sales Revenue 500
Dr Cost of Goods Sold 300
Cr Inventory 300A week later, the customer returns the lamp in perfect condition for a full refund. You need two entries — one for the revenue side, one for the inventory side:
Dr Sales Returns and Allowances 500
Cr Accounts Receivable 500
Dr Inventory 300
Cr Cost of Goods Sold 300Notice what didn't happen: you didn't debit Sales Revenue. The original $500 sale is still sitting in gross sales for the period. The $500 contra-entry sits beneath it. Both show up on the income statement, and the netting happens visibly.
If you already received cash and now have to refund it, swap Accounts Receivable for Cash. If the customer keeps the lamp but you give them a $100 allowance for a scratch:
Dr Sales Returns and Allowances 100
Cr Accounts Receivable 100No inventory entry, because no inventory moves.
Don't forget the sales tax
A surprisingly common mistake is forgetting to reverse the sales tax portion of the original transaction. If you collected $40 of sales tax on the $500 sale, your original entry was a $540 receivable, $500 to revenue, and $40 to a Sales Tax Payable liability. On the refund, you reverse all three:
Dr Sales Returns and Allowances 500
Dr Sales Tax Payable 40
Cr Accounts Receivable 540Skipping the tax reversal means you've overstated what you owe the state. The remittance check goes out wrong, and the discrepancy compounds across the quarter.
The ASC 606 wrinkle: estimating returns before they happen
Under the old rules, you simply waited for returns to come in and recorded them as they happened. ASC 606, the revenue recognition standard now in effect, requires something more forward-looking when your customers have a right of return. At each reporting date, you have to estimate the returns you expect to receive on sales you've already made and adjust revenue accordingly.
The mechanics:
- Recognize revenue only for the portion you expect to keep. If you booked $4,000,000 of December sales and your historical return rate is 5%, you recognize $3,800,000 of revenue and set up a $200,000 refund liability for the expected returns.
- Recognize a right-of-return asset for the inventory you expect to get back. At a 60% gross margin, that's $80,000 of inventory cost you expect to recover.
- Reverse the same amount of COGS because that cost will be recoverable inventory, not consumed inventory.
The adjusting entry at period-end looks like this:
Dr Sales Revenue 200,000
Cr Refund Liability 200,000
Dr Right to Recover Returned Goods (asset) 80,000
Cr Cost of Goods Sold 80,000When actual returns come in during January, you debit the Refund Liability (not Sales Returns and Allowances) and credit cash or accounts receivable. The Right-to-Recover asset gets cleared as you actually receive inventory back. At the end of the next period, you re-measure both the liability and the asset based on updated expectations and true up the difference through revenue.
Which estimation method to use
ASC 606 gives you two sanctioned approaches:
- Expected value method. A probability-weighted average across the range of possible outcomes. Use this when you have a large volume of similar transactions and good historical data. A retailer with ten thousand monthly orders and a stable 5% return rate is the textbook case.
- Most likely amount method. The single most probable outcome. Use this when a contract has essentially two outcomes — the customer keeps it or returns it — like a single large B2B sale on approval.
In practice, the most common technique among small and mid-sized businesses is a historical percentage of sales, which is a simplified form of the expected value method. Look at your trailing twelve months of returns as a percentage of trailing twelve months of sales, apply that rate to current sales, and book the entry.
The refund liability is presented separately from the right-of-return asset on the balance sheet. Don't net them.
Common mistakes to avoid
After looking through enough small-business books, the same handful of errors show up over and over:
Debiting Sales directly instead of using a contra account. This is the cardinal sin. You lose the audit trail, you understate gross sales, and you make your return rate invisible to anyone reading the financials. Use Sales Returns and Allowances, always.
Forgetting to restore inventory and reverse COGS. If the returned item is resaleable, it has to go back into inventory at its original cost. Failing to do this leaves inventory understated and COGS overstated, dragging your gross margin down for no good reason. If the item is damaged or obsolete, write it off through a separate inventory write-down entry rather than just not booking it.
Letting the refund liability go stale. ASC 606 requires you to re-measure the refund liability at every reporting date. If your return rate has crept from 5% to 8% over the year and you're still booking 5%, you're overstating revenue and current-period earnings. Auditors look hard at this account — it's one of the easier places for management to quietly inflate earnings by low-balling the estimate.
Not tracking returns by reason. The accounting entry is the same whether a customer returned the item because it didn't fit, because it arrived broken, or because they just changed their mind. But operationally, those are completely different problems. Tag returns in your order system with a reason code so the accounting data feeds back into product, fulfillment, and merchandising decisions.
Missing the sales tax reversal. Already covered above, but worth repeating because it's the single most common cleanup item bookkeepers find in client files.
Recording chargebacks as bank fees. When a customer disputes a charge through their card issuer and wins, that's economically a return — the revenue should reverse through Sales Returns and Allowances, not get buried in a generic Bank Fees expense line. Bank fees are the processor's penalty for the dispute; the underlying chargeback is a contra-revenue event.
Why this affects gross margin more than people realize
Returns hit profitability twice. First, the obvious way: net sales go down. But there's a second effect that's easy to miss. Processing a single return costs between $10 and $65 once you factor in inbound shipping, labor to inspect and restock, packaging waste, and the carrying cost of inventory that arrives back in less-than-pristine condition. Those costs don't reduce revenue — they hit operating expenses, fulfillment costs, or get baked back into COGS depending on how you classify them.
So a 20% return rate doesn't just turn $1,000,000 of gross sales into $800,000 of net sales. It also adds somewhere between $10,000 and $65,000 of return-processing cost on the expense side. The gross margin number you report becomes meaningfully worse than what you'd compute from list price alone.
Tracking returns through proper contra-revenue accounts is the foundation for measuring this honestly. Once you can see returns as a percentage of gross sales over time, by product, by channel, by reason — you can make real decisions about which SKUs to rationalize, which suppliers to push back on, and which return policies to tighten.
Keep Your Books Honest from Day One
Clean contra-revenue accounting is the kind of discipline that pays off slowly and then all at once — invisible until you're trying to close a financing round, sell the business, or pass an audit. Beancount.io gives you plain-text, version-controlled accounting where every journal entry — including your sales returns, allowances, and refund liabilities — is fully transparent and reviewable in source form. No black-box ledgers, no vendor lock-in, no surprises when you finally look under the hood. Get started for free and see why developers and finance professionals are switching to plain-text accounting.