About seven weeks from now, your store could do a month of sales in four days. Last year, U.S. shoppers spent 44.2 billion dollars online across the five-day Cyber Week window, up 7.7 percent from the year before, and Shopify merchants alone rang up 14.6 billion dollars over the long weekend, up 27 percent. Cyber Monday took the crown as the biggest ecommerce day of the year at 14.25 billion dollars, with Black Friday close behind at 11.8 billion.
Here is the part nobody puts in the recap headlines: roughly one dollar in six of holiday sales comes back. Retailers expect about 17 percent of holiday merchandise to be returned, the online return rate runs near 19.3 percent, and early Black Friday returns were already up 12 percent over the prior year. Your record weekend is followed, like clockwork, by a December wave of refunds, exchanges, chargebacks, and restocking decisions — landing right on top of your year-end close.
This playbook covers the accounting side of BFCM 2026 (Black Friday on November 27, Cyber Monday on November 30): how to set up your books before the rush, how to record discounts and promo codes correctly, how to reconcile processor payouts when nothing ties out, how to keep margins honest when inventory is flying, and how to handle the returns wave without wrecking your January financials.
Why BFCM Breaks Normal Bookkeeping
A normal week of ecommerce bookkeeping is a steady trickle: orders in, payouts out, fees deducted, the occasional refund. BFCM breaks every assumption that routine rests on:
Volume compresses a month into days. Ten times the orders means ten times the transactions to categorize, and manual processes that feel fine in October collapse under Cyber Week. Anything you reconcile by hand needs to be automated or batched before the spike.
Revenue timing gets murky. Extended promotions, pre-orders, backorders, and delayed shipping mean the day you take the money is often not the day you earn it. Discounts stack — a sitewide sale plus a promo code plus free shipping — and each layer needs to land in the right account.
Cash and profit diverge. Payment processors may hold reserves or delay payouts during volume spikes, exactly when you need cash to restock and fulfill. Meanwhile buy-now-pay-later keeps growing — over 1 billion dollars of Cyber Monday spend alone went through BNPL last year — and those settlements arrive on their own schedule, net of their own fees.
Then the returns arrive. Gift returns, wrong sizes, buyer's remorse, and "buy now, return later" budget-stretching concentrate into a few December weeks. Every return reverses revenue, may restore inventory, triggers a fee you often cannot recover, and has to be matched to the original November sale.
None of this is a reason to dread the season. It is a reason to prepare the books the way you prepare inventory: deliberately, and before the rush.
Before the Rush: Set Up Your Chart of Accounts for Peak Season
The single highest-leverage hour you can spend in October is making sure your chart of accounts can absorb BFCM without improvisation. When a bookkeeper has to invent accounts mid-rush, consistency dies, and January reconciliation becomes archaeology.
Create contra-revenue accounts now. You need at minimum: Sales Revenue (gross), Sales Discounts, and Sales Returns and Allowances. Gross sales minus these two contra accounts equals net sales — the number your margins, tax estimates, and performance reviews should all use. If you sell across channels, consider sub-accounts per channel (Shopify discounts, Amazon discounts) so you can see which channel's promotions actually paid off.
Set up one clearing account per payment processor. Shopify Payments, Stripe, PayPal, Amazon Pay, and each BNPL provider each get their own clearing account. Orders, fees, refunds, and chargebacks post to the clearing account when they happen; payouts from the processor transfer out of it to your bank account. When the clearing account balance hovers near zero after all payouts settle, your books tie. When it drifts, the drift is your to-do list.
Separate every fee type. Processing fees, per-transaction fees, marketplace referral fees, BNPL provider fees, chargeback fees, and currency conversion adjustments should each be visible. Burying them in one "fees" line hides which channel is eating your margin — and BFCM, with its average-order-value swings, is when that mix shifts most.
Decide your inventory and COGS method for bundles. If you sell holiday bundles or kits, decide now whether you track them as assembled SKUs with their own cost or explode them into components at sale time. Either works; switching mid-December does not.
Record Discounts and Promo Codes as Contra Revenue, Not Expenses
This is the most common BFCM bookkeeping error, and it quietly inflates both your revenue and your expenses. A 20 percent off promo code is not a marketing expense. It is revenue you never earned, and accounting treats it as a direct reduction of sales.
When a customer buys 100 dollars of goods with a 20 percent code and pays 80 dollars, the correct entry is:
Dr Shopify clearing account 80
Dr Sales Discounts 20
Cr Sales Revenue 100Sales Discounts is a contra-revenue account: it carries a debit balance and sits against Sales Revenue on the income statement, so net sales report correctly at 80 dollars. Recording the 20 dollars as marketing expense instead would overstate both revenue (100 dollars you never collected) and expenses — distorting gross margin, conversion analysis, and any revenue-based tax or royalty calculation.
Three refinements that matter during BFCM:
Track codes separately if you run more than one. A sitewide SALE20, an influencer code, and a cart-abandonment offer teach different lessons. Tag discounts by campaign so January-you can answer which promotion moved profitable volume and which just trained customers to wait for codes.
Handle stacked discounts in the right order. When a sale price and a promo code combine, apply them in the sequence your platform actually computes (usually sale price first, then code). Recording a single blended discount is fine for the books, but keep the platform's breakdown in your records — you will need it if a partial return forces you to unwind one layer.
Do not confuse markdowns with write-downs. A planned promotion is a discount. Inventory you mark down because it is damaged, obsolete, or unsellable after the season is a different event — an inventory write-down that hits cost of goods sold, not revenue. Mixing the two flatters your sell-through story while hiding dead stock.
Reconcile Processor Payouts, Not Just Bank Deposits
During BFCM, your bank deposits will never match your sales reports, and chasing the difference sale-by-sale will consume your December. The fix is to reconcile at the payout level using the clearing accounts you set up in October.
Understand what a payout actually is. A processor payout is a net settlement, not a revenue event. One Shopify or Stripe deposit bundles gross sales from a batch of orders, minus processing fees, minus refunds issued from that batch, minus or plus adjustments, minus any reserve hold — and it lands days after the sales happened. Amazon settlements add marketplace fees, fulfillment fees, storage charges, and advertising costs to the same bundle. Booking the net deposit as revenue buries every one of those components.
Run the clearing-account workflow weekly through the season. For each processor: record gross sales, discounts, refunds, fees, and chargebacks individually to the clearing account as they occur (or via daily summary entries from platform reports), then record each payout as a transfer from clearing to bank. Reconcile weekly — not monthly — from mid-November through early January. A week of BFCM drift is diagnosable; six weeks is a forensic project.
Treat BNPL like any other processor. Record the full sale at checkout, record the provider's fee as a processing fee, and reconcile the provider's net settlement through its clearing account. BNPL is not a discount and not a payment plan on your books — the provider paid you (minus its fee) and the installment relationship is between the provider and your customer.
Watch for holds and reserves. Processors sometimes increase rolling reserves or delay payouts when a merchant's volume spikes suddenly. A hold is not a fee and not lost money — it is cash you have earned but cannot touch yet. Track held amounts in a separate receivable or reserve sub-account so your cash forecast reflects reality instead of pretending the money arrived.
Keep Inventory and COGS Honest While Units Are Flying
BFCM margins are won or lost in cost of goods sold, and COGS accuracy depends entirely on inventory discipline during chaos. Three failure modes spike every holiday season:
Overselling and phantom inventory. When orders flow from your store, Amazon, TikTok Shop, and a POS system at a holiday market simultaneously, any channel with a stale stock count will sell units you do not have. Every oversell becomes a cancellation or a backorder — a refund to process, a customer to appease, and a COGS entry to unwind. Real-time inventory sync across channels is not a nice-to-have in November; it is the difference between a record weekend and a record refunds week.
Bundle and kit costing drift. That holiday gift set assembled from three SKUs has a true cost equal to its components plus assembly labor and packaging. If your system relieves inventory at a stale or placeholder cost while components were replenished at higher prices, your reported margin is fiction. Freeze bundle costs before the promotion, document them, and true up after the season if component costs moved.
Returned inventory limbo. December returns pile up faster than anyone inspects them. Until a return is inspected, it is not sellable inventory — do not relieve the refund and restore the stock in one unthinking motion. The disciplined sequence is: record the refund when issued, hold returned units in a returns-inspection staging count, and restore to sellable inventory (reversing the original COGS) only for units that pass inspection. Damaged or unsellable units go to a loss account, not back on the shelf. Anything else overstates both your inventory asset and your margins.
If you want one number to watch through the season, make it gross margin by channel, computed weekly from net sales (after discounts and returns) minus true COGS — the kind of trend a visual dashboard like Fava makes obvious at a glance. When a channel's margin collapses mid-promotion, you still have time to pull the offer. In January, you only have time to regret it.
Watch the Nexus Tripwire: A Record Weekend Can Create New Tax Obligations
Here is a surprise thatambushes growing stores every January: a blowout holiday season can push you over a state's economic nexus threshold, creating a sales-tax collection duty you did not have in October.
Every state with a sales tax now has an economic nexus law: sell enough into the state and you must register, collect, and remit — even with no office, employee, or inventory there. The most common thresholds are 100,000 dollars in sales or 200 transactions into the state in a year, with major variations (California's line is 500,000 dollars in sales; Texas uses 500,000 dollars or 200 transactions). A quiet year followed by a huge BFCM can cross a transaction-count threshold in states where your dollar volume looks trivial.
Run a state-by-state sales report in early December. Rank states by both dollars and transaction counts against their current thresholds. Flag any state where BFCM put you over — or close enough that the rest of December will do it.
Know your marketplace split. Marketplace facilitator laws mean Amazon, Walmart, eBay, and Etsy generally collect and remit on their own platform sales. But your direct store, TikTok Shop (depending on the state), and wholesale shipments are your responsibility. Nexus is measured on your total activity; collection duty applies sale by sale. Do not assume the marketplace handled everything.
Register before you collect. In most states, collecting sales tax without a permit is itself a violation. When you identify a new nexus state, register promptly, configure collection in your platform from the effective date, and calendar the filing frequency the state assigns you. Add the review to your annual December checklist — nexus is an every-year question, not a one-time setup. Catching it in December beats learning about it from a notice in March.
After the Rush: Reconcile the December Returns Wave
January bookkeeping quality is determined by December returns discipline. With roughly one in six holiday sales coming back — and online returns running higher — treat returns processing as a first-class workflow, not cleanup.
Match every refund to its original sale. Refunds should post to Sales Returns and Allowances (your second contra-revenue account) against the period and channel of the original transaction. The entry for an 80-dollar refunded order:
Dr Sales Returns and Allowances 80
Cr Processor clearing account 80If the goods come back resellable, restore inventory and reverse COGS in the same breath. Batch this by weekly returns reports rather than transaction-by-transaction if volume demands it, but never net refunds against fresh sales in a single line — you will lose the return-rate data that tells you which products failed.
Handle exchanges as two events. An exchange is a return plus a new sale, and booking it that way keeps both product lines' economics honest. The returned item hits Returns and Allowances and (if restocked) inventory; the replacement ships as a fresh sale with its own COGS. Shortcuts here systematically overstate revenue on exchange-heavy categories like apparel.
Mind the year-end cutoff. December refunds of November sales belong to the fiscal year the original sale falls in under accrual accounting — which, for calendar-year sellers, usually means the same year, but late-December sales refunded in January still need to accrue. If you expect material post-holiday returns, accrual-basis sellers should record a refund liability (with a corresponding inventory recovery asset) at sale time rather than booking full revenue and reversing it later. Cash-basis sellers simply record refunds when paid, but should still track the rate for planning.
Staff the workflow like the volume deserves it. In one industry survey, nearly 44 percent of retailers said they hire extra staff specifically to handle holiday returns. If returns processing waits on one overwhelmed person, inspection lags, restocking lags, and your January inventory count inherits the backlog. Clear the returns queue before you count the shelves.
The BFCM Bookkeeping Mistakes Checklist
Tape this to the wall from November through January:
- Booking net processor payouts as revenue instead of recording gross sales, fees, and refunds separately.
- Recording promo-code discounts as marketing expense instead of contra revenue.
- Forgetting BNPL and marketplace fees in channel margin math.
- Letting bundle COGS drift while component costs move.
- Restoring returned units to sellable inventory before inspection.
- Ignoring new economic nexus states until the notice arrives.
- Treating exchanges as pure new sales without reversing the original.
- Skipping weekly reconciliation "until things calm down" — they calm down in February, and by then the trail is cold.
Keep Your Holiday Books Clean from Click to Close
A record BFCM only turns into record profit if your books can tell you what actually happened: which promotions earned their discount, which channel carried its fees, and how much of November's revenue December gave back. Set up the accounts now, reconcile weekly through the season, and clear the returns queue before year-end — your January self will thank you.
Maintaining that kind of clarity across thousands of holiday transactions is exactly what plain-text accounting is built for. Beancount.io gives you transparent, version-controlled books where every fee, refund, and adjustment is a readable entry you can audit — no black boxes, no mystery balances. Get started for free and head into the holidays knowing your numbers will hold up.





