BlogGuide
Month-end close for retail and e-commerce: Checklist, payouts, inventory, and a worked month
28 min read

Key takeaways
- The month-end close for retail and e-commerce rests on four tie-outs: channel clearing accounts to platform balances, inventory by location to warehouse and FBA reports, the returns reserve, and the gift card liability.
- Payouts record cash, while revenue comes from shipped or delivered orders: Shopify's minimum settlement time is 3 business days plus 1–3 days at the bank, and under payments based on delivery date Amazon typically holds proceeds until 7 days after delivery, so a clearing balance at month-end is normal as long as you can explain it.
- In this guide's worked November close, every schedule ties: $17,595 left in Shopify clearing, $57,950 in Amazon clearing, $484,992 of inventory, a $21,060 refund liability, and a $53,726 gift card liability.
The month-end close for retail and e-commerce ties each sales channel's orders, payouts, and fees to your ledger, rolls inventory forward by location, and books the estimates on top: returns, gift card breakage, and accruals. Closing this way gives you channel margins you can trust and a balance sheet your auditors can trace back to Shopify, Amazon, your stores, and your warehouse. This guide covers a day-by-day checklist, payout reconciliations for Shopify, Amazon, Stripe, and PayPal, store cash and card batches, inventory and COGS across a 3PL and Amazon FBA, ASC 606 returns and gift cards, and one worked month where every number ties.
What is different about the month-end close for retail and e-commerce?
The month-end close for retail and e-commerce differs from a standard close because cash arrives net and late from several channels, inventory sits in stores, warehouses, and Amazon at the same time, and returns and gift cards create liabilities you estimate every period, so your ledger can't simply follow bank deposits. The steps of a standard month-end close still apply, but the matching volume and the number of estimates go up.
- Clearing accountA balance sheet account for each channel or processor that holds sales, refunds, and fees until the payout reaches your bank
- Payout or settlement reportThe platform's record of what it paid you and what it deducted, which explains cash but isn't a revenue report
- Inventory roll-forwardOpening units and cost, plus receipts and returns, less shipments and adjustments, equals ending inventory for each location
Here's where the work changes compared with a close for a services business.
| Area | Standard close | Retail and e-commerce close |
|---|---|---|
| Revenue | Invoices raised in the ERP | Orders from Shopify, Amazon, and POS, recognized when control transfers to the customer |
| Cash | Customer payments match invoices | Net payouts on each platform's schedule, often crossing month-end |
| Inventory | None, or one location | Stores, a 3PL, Amazon FBA, and goods in transit, each with its own report |
| Estimates | Accruals and depreciation | Also the returns reserve, gift card breakage, inventory write-downs, and chargebacks |
| Sales tax | Tax on invoices | Tax you collect, plus tax a marketplace collects and remits for you |
Ecommerce accounting at month-end is mostly this extra reconciliation work. At year-end you add physical counts, audit requests, and annual estimates on top; see the year-end close checklist for that timeline.
What should a retail and e-commerce month-end close checklist include?
A retail and e-commerce month-end close checklist should include channel cut-off, payout and processor reconciliations, store cash and card batches, inventory and COGS by location, the returns reserve, gift card and store credit liabilities, accruals and sales tax, and a channel margin review, each with an owner, a source report, and the evidence that proves it's done. Copy the table below into a spreadsheet to use it as your template.
| Day | Task | Owner | Source report | Evidence |
|---|---|---|---|---|
| Last day of the month | Confirm each channel's cut-off time zone, stop app syncs from backdating, and count store cash | Close lead and store managers | Channel settings and POS Z-reports | Cut-off memo and signed cash counts |
| Day 1 | Post summary sales, refunds, discounts, and fees for the calendar month | Revenue accountant | Shopify Finance reports, Amazon Date Range Transaction Report, and POS sales by tender | Summary entries tied to report totals |
| Day 1 | Reconcile bank accounts, including deposits in transit | Staff accountant | Bank statements | Signed bank reconciliation |
| Days 2–3 | Reconcile each clearing account and explain the closing balance | Revenue accountant | Shopify Payments activity report, Amazon Deferred Transaction report, and processor balance reports | Clearing roll-forward with $0 unexplained |
| Day 2 | Book revenue cut-off for paid-not-shipped and shipped-not-delivered orders | Revenue accountant | Fulfillment and carrier data | Cut-off schedule and entry |
| Days 2–3 | Roll inventory forward by location and investigate count variances | Inventory accountant | 3PL on-hand by SKU, FBA Inventory Ledger, and ERP inventory valuation | Roll-forward tied to the GL |
| Day 3 | Review landed cost, shrink, and lower of cost and net realizable value | Inventory accountant and controller | Aging and sell-through by SKU | Write-down memo |
| Day 3 | True up the returns reserve and return asset | Controller | Refund reports by channel | Reserve schedule |
| Day 3 | Reconcile gift card, store credit, and loyalty liabilities and book breakage | Revenue accountant | Gift card and POS reports | Subledger tied to the GL |
| Day 4 | Accrue 3PL, freight, ad spend, and platform fees, and tie out sales tax | Staff accountant | 3PL rate card and order counts, ad platform billing, and tax reports | Accrual schedule and tax reconciliation |
| Day 4 | Review flux and margin by channel | Controller | Trial balance and channel P&L | Flux commentary |
| Day 5 | Approve entries, sign off, and lock the period | Controller | Close checklist | Signed checklist and locked period |
On day 4, your key reports come together: net revenue and gross margin by channel, contribution margin after fulfillment and ad costs, refund rate, and inventory turnover and aging. For how to set thresholds and write explanations, see flux analysis.
For the general tasks every close shares, see the month-end close checklist, or build your own list in the free month-end close checklist tool. For the order of steps and a calendar, see the month-end close process.
How do you reconcile Shopify, Amazon, Stripe, and PayPal payouts at month-end?
You reconcile Shopify, Amazon, Stripe, and PayPal payouts at month-end by booking each channel's gross sales, refunds, and fees to its own clearing account, recording each payout as a transfer from clearing to the bank, and proving that the balance left in clearing equals money the platform still owes you. This keeps revenue on the dates control transfers and cash on deposit dates.
Shopify payouts go to the bank account set in Shopify Payments, net of refunds, fees, chargebacks, and any holds. That's why payouts never match the Shopify sales report: the sales report shows orders, while the payout shows cash after deductions, on a later date.
Payout timing by platform
Each platform releases cash on its own schedule, which is why month-end clearing balances are normal.
| Platform | When cash moves | What it means at month-end | Source (checked November 2026) |
|---|---|---|---|
| Shopify Payments (US) | Minimum settlement time of 3 business days, excluding weekends and holidays; Friday to Sunday payments are grouped into one payout; the bank can take another 1–3 days; higher-risk accounts can be on 5–20 business-day schedules | Late-month sales and payouts sent at month-end sit in clearing | Shopify Help Center, "Understanding Shopify Payments payout timing" |
| Stripe (US) | Initial settlement is typically 2 business days; payouts come from the available balance on a manual, daily, weekly, or monthly schedule | Pending balance, available balance, and payouts in transit explain clearing | Stripe Docs, "Receive payouts from Stripe" |
| Amazon | Under payments based on delivery date, Amazon typically reserves proceeds until 7 days after delivery; settlement reports are scheduled by Amazon and can't be requested by sellers | Settlement periods don't follow the calendar month, and deferred amounts sit in clearing | Amazon Seller Central announcement, "View your reserved payments in the new Deferred Transactions report"; Amazon SP-API docs, "Settlement Reports" (modified October 14, 2026) |
PayPal and any buy-now-pay-later provider get the same treatment: a clearing account of their own, reconciled to the provider's balance report each month.
Clearing accounts and the roll-forward
Set up one clearing account per channel or processor, such as Shopify Payments, Amazon, Stripe, PayPal, and store card batches. Add one per currency if a channel pays you in more than one. Shopify's Help Center ("Getting paid with Shopify Payments," checked November 2026) notes that payouts can be in a different currency from the one you sell in. Book the conversion difference when the payout lands.
- Clearing roll-forwardOpening balance + gross charges − refunds − fees − chargebacks − payouts received = closing balance
The examples on this page follow Harbor & Pine, an illustrative home-goods brand on NetSuite. It sells through Shopify Payments and Amazon FBA and ships Shopify orders from one 3PL. The month is November 2026, and every figure is made up.
Example
Harbor & Pine's Shopify orders for November, from Shopify's Finance reports.
| Line | Amount ($) |
|---|---|
| Gross product sales | 412,000 |
| Discounts | (28,400) |
| Net product sales | 383,600 |
| Shipping charged | 9,600 |
| Sales tax collected | 24,700 |
| Gift cards sold | 15,000 |
| Paid with gift cards instead of cards | (9,000) |
| Charged through Shopify Payments | 423,900 |
The Shopify Payments clearing account then rolls forward like this.
| Line | Amount ($) |
|---|---|
| Opening balance, November 1 | 18,400 |
| Charged through Shopify Payments | 423,900 |
| Refunds to cards ($20,000 product + $1,300 tax) | (21,300) |
| Processing fees | (12,480) |
| Chargebacks and dispute fees | (1,225) |
| Payouts received in the bank in November | (389,700) |
| Closing balance, November 30 | 17,595 |
| Payout sent November 30, not yet in the bank | 9,870 |
| Pending balance not yet paid out | 7,725 |
| Unexplained | 0 |
Check the $7,725 against the ending balance on the Shopify Payments activity report. Shopify's Help Center ("Shopify Payments activity report," checked November 2026) says the report shows your starting balance, earnings, fees, payouts, and ending balance for a date range. It has a 3-day data delay, so pull it on day 3 or later. Shopify built it for month-end reconciliation but says it isn't a revenue statement, so take revenue from the Finance reports.
Payouts and orders that cross month-end
Two cut-offs meet at month-end: cash timing, which the clearing balance absorbs, and revenue timing, which needs its own entry. Recognize revenue when control passes to the customer, usually at shipment or at delivery, depending on your shipping terms and policy. If your terms put control at delivery, orders shipped but not delivered by month-end are still unearned.
Example
Harbor & Pine's policy recognizes revenue at shipment. On November 30, $6,400 of November-paid orders hadn't shipped, so that amount moves to a contract liability. Another $5,100 of October-paid orders shipped in November, so that amount moves from the liability to November revenue. The net cut-off reduces November revenue by $1,300. Because NetSuite posts COGS when an order is fulfilled, the cost of unshipped orders stays in inventory without an extra entry. For how customer deposits and unearned amounts roll forward, see deferred revenue.
Amazon settlements and deferred transactions
To reconcile Amazon payments, book the month's activity from the Date Range Transaction Report, not the settlement report, and reconcile the Amazon clearing balance to deferred transactions plus the open settlement. The settlement report explains cash; the date range report explains the month. To check what Amazon is still holding, Amazon's announcement says deferred amounts show as Deferred transactions in the Payments dashboard, with detail in the Deferred Transaction report. In NetSuite or QuickBooks Online the method is the same for Amazon and Shopify: post one monthly summary entry from the channel's report to its clearing account, and record each payout or disbursement as a transfer to the bank.
Example
Harbor & Pine's Amazon activity for November, from the Date Range Transaction Report.
| Line | Amount ($) |
|---|---|
| Product sales | 268,000 |
| Promotional rebates | (6,200) |
| Marketplace-collected sales tax | 16,900 |
| Sales tax remitted by Amazon | (16,900) |
| Refunds | (14,800) |
| Referral fees | (40,200) |
| FBA fulfillment fees | (36,180) |
| Monthly storage fees | (3,950) |
| Sponsored Products ads deducted | (18,400) |
| FBA inventory reimbursements | 1,240 |
| Net proceeds | 149,510 |
The Amazon clearing account then rolls forward to a balance you can explain from two Amazon reports.
| Line | Amount ($) |
|---|---|
| Opening balance, November 1 | 61,300 |
| Net proceeds for November | 149,510 |
| Disbursements received in the bank in November | (152,860) |
| Closing balance, November 30 | 57,950 |
| Deferred transactions, per the Deferred Transaction report | 31,450 |
| Open settlement not yet disbursed | 26,500 |
| Unexplained | 0 |
Storage fees, subscription fees, and ads post on their own schedules, so take them from the date range report for the month rather than from whichever settlement they land in. Amazon's announcement also says an account-level reserve can still apply for claims, chargebacks, or account review. Map that reserve to a receivable on your balance sheet, not to expense.
Three-way match, fees, and Stripe in NetSuite
A three-way match ties each platform's orders to the payout that settled them and the payout to the bank deposit, using the payout ID. Book sales at gross and fees as expense, so your fee rate by channel stays visible and you can reconcile transaction fees across processors.
If you use Stripe's connector for NetSuite, Stripe Docs ("Stripe payouts in NetSuite," checked November 2026) describe how it posts. Each Stripe transaction posts a payment to Undeposited Funds. The connector creates one bank deposit per payout, with Stripe fees as Cash Back lines, and checks the deposit total and date against the bank statement. It needs automatic payouts; with manual payouts, items stay in Undeposited Funds. At month-end, anything left in Undeposited Funds is an item to investigate.
To audit a clearing account, age its balance. Anything older than one payout cycle points to an error or a hold. For the matching steps, see bank reconciliation, and for how to document each account, see account reconciliation.
How do you close store sales: POS tenders, cash, and card batches?
You close store sales by tying each store's POS Z-report to its tenders, matching cash to the counted deposit, card sales to the processor's batch settlement, and gift cards to the liability, then booking cash over or short and listing deposits made by month-end that the bank records afterward as deposits in transit. One summary entry per store per day keeps the ledger readable.
- Z-report by store and dayUse it as the source for sales, tax, and tenders, whether your POS feeds NetSuite or QuickBooks
- CashCompare the cash count with POS cash, book the difference to cash over and short, and set a review threshold in your policy that triggers investigation
- Card batchesBook card sales to a store card clearing account and clear it when the processor deposit lands, net of fees
- Deposits in transitList deposits actually made on or before month-end that the bank records in the next month. Cash counted on the last day but deposited the next day isn't in transit: it stays in cash on hand or undeposited funds until the deposit posts
- Transfers and gift cardsRecord stock moving between stores as in transit until received, and keep one gift card liability across stores and online
Example
Store 12, an illustrative store separate from Harbor & Pine, has a November 30 Z-report showing net sales of $21,700 and sales tax of $1,760, for a total of $23,460: $4,820 in cash and $18,640 on cards. The cash counted and deposited on December 1 is $4,805, so the store is $15 short.
| Account | Debit ($) | Credit ($) |
|---|---|---|
| Cash on hand (undeposited store cash) | 4,805 | |
| Store card clearing | 18,640 | |
| Cash over and short | 15 | |
| Product sales | 21,700 | |
| Sales tax payable | 1,760 | |
| Total | 23,460 | 23,460 |
The $4,805 wasn't deposited until December 1, so it isn't a deposit in transit at November 30. It stays in cash on hand until the deposit posts, when you move it to bank cash. The $18,640 stays in store card clearing until the processor deposits the batch in December. Book the fees from the processor statement when they're deducted, and accrue them at month-end when they're material.
How do you close inventory and COGS across stores, a 3PL, and Amazon FBA?
You close inventory and COGS by rolling units and cost forward for every location, including stores, the 3PL, Amazon FBA, and goods in transit, tying each location to its own report, posting approved count adjustments, and checking that the ledger matches the roll-forward before you test value against net realizable value. The same steps work in any ERP.
Roll-forward by location
- Inventory roll-forwardOpening units + receipts + returns restocked − units shipped ± transfers − count adjustments = ending units, for each location
Harbor & Pine uses weighted average cost. Its opening 30,000 units cost $14.00 each, or $420,000. It received 20,000 units at a landed cost of $15.00, made up of $14.00 of product and $1.00 of freight and duty, or $300,000. The month's average cost is ($420,000 + $300,000) ÷ 50,000 units = $14.40. NetSuite's average costing updates with each receipt; this example uses one monthly average so the math stays readable.
Example
Harbor & Pine's November roll-forward in units, by location.
| Movement | 3PL | Amazon FBA | In transit to FBA | Total |
|---|---|---|---|---|
| Opening, November 1 | 20,000 | 10,000 | 0 | 30,000 |
| Received from suppliers | 20,000 | 0 | 0 | 20,000 |
| Transferred from 3PL to FBA | (8,000) | 6,500 | 1,500 | 0 |
| Shipped to customers | (9,800) | (6,700) | 0 | (16,500) |
| Returns restocked | 520 | 310 | 0 | 830 |
| Count shortage, lost, or damaged | (140) | (60) | 0 | (200) |
| Ending, November 30 | 22,580 | 10,050 | 1,500 | 34,130 |
The sources: the 3PL's on-hand by SKU for the 3PL, the FBA Inventory Ledger's Summary View for Amazon FBA, and the transfer orders open in NetSuite for the units in transit.
The same movements in dollars give you the COGS build and the GL check.
| Line | Amount ($) |
|---|---|
| Opening inventory (30,000 × $14.00) | 420,000 |
| Receipts (20,000 × $15.00) | 300,000 |
| COGS on shipments (16,500 × $14.40) | (237,600) |
| Returns restocked (830 × $14.40) | 11,952 |
| 3PL count shortage (140 × $14.40) | (2,016) |
| FBA lost and damaged (60 × $14.40) | (864) |
| Lower of cost and NRV write-down | (6,480) |
| Ending inventory | 484,992 |
The check: 34,130 units × $14.40 = $491,472, less the $6,480 write-down, equals $484,992, the same as the GL.
When the 3PL or FBA count doesn't match the ledger
You should reconcile Amazon's FBA inventory for discrepancies every month, by SKU. Amazon's SP-API docs ("Fulfillment by Amazon (FBA) Reports," modified October 13, 2026) describe the FBA Inventory Ledger. Its Summary View shows starting balance, in transit between warehouses, receipts, customer shipments, customer returns, vendor returns, warehouse transfers, found, lost, damaged, disposed, other, and ending balance. Its Detailed View shows each event, with 18 months of history.
Don't force a 3PL or FBA count to match your ledger. Find the cause, fix the timing items, and post only the adjustments a person approves.
| Cause | What you see | What to do |
|---|---|---|
| Shipments not yet confirmed | 3PL shows fewer units than the ledger | Match by order ID; fix the fulfillment date if needed |
| Receipts not yet processed | Supplier goods arrived but aren't on the 3PL report | Hold as received in the ledger and confirm with the 3PL |
| Transfers in transit | Units left the 3PL but haven't reached FBA | Keep them in an in-transit location until received |
| Returns not processed | Returned units sit in a returns area | Count them separately until graded and restocked |
| Picking errors or unit-of-measure mismatches | One SKU over, a similar SKU under | Investigate before adjusting either SKU |
Harbor & Pine's 60 lost FBA units cost $864, and Amazon reimbursed $1,240, so the net effect is a $376 gain. Write off lost or damaged FBA units in the month the loss is confirmed, and record Amazon's reimbursement separately when it's recognized or received. A pending claim isn't a reason to hold the write-off.
Landed cost and lower of cost and net realizable value
Landed cost puts freight, duty, and other costs to bring goods to their location into inventory, so COGS carries them when the units sell. In the example, that's the $1.00 a unit added to the $14.00 product cost.
Under ASC 330, as amended by ASU 2015-11 (FASB, July 2015), inventory measured with FIFO or average cost is carried at the lower of cost and net realizable value. Net realizable value is the estimated selling price in the ordinary course of business, less reasonably predictable costs of completion, disposal, and transportation. Inventory measured with LIFO or the retail inventory method stays on lower of cost or market.
Example
Harbor & Pine holds 1,200 units of a discontinued SKU with an NRV of $9.00 against a cost of $14.40. The write-down is 1,200 × ($14.40 − $9.00) = $6,480. Review slow movers and discontinued SKUs every period, because the estimate changes as prices and sell-through change.
NetSuite, QuickBooks, and other ERPs
Your ERP decides when COGS posts and how cost is measured, which shapes what you check at month-end.
- NetSuiteOracle NetSuite Help ("Cost of Goods Sold (COGS) GL Impact," checked November 2026) says COGS posts when an item is fulfilled, debiting COGS and crediting inventory, not on invoice or payment. Costing methods are FIFO, LIFO, or Average, with Average the default. Compare the inventory valuation report with the GL inventory account at every close
- NetSuite negative inventoryOracle NetSuite Help ("System Cost of Goods Sold Adjustments," checked November 2026) says NetSuite estimates COGS when you sell an item while out of stock, then books a system COGS adjustment when inventory goes from negative to positive. Check for negative on-hand at 3PL and FBA locations before you close, or COGS will move in a later month
- QuickBooks OnlineQuickBooks Help ("Inventory valuation methods for cost accounting," last updated August 14, 2026) says you can use FIFO or Moving Average Cost, you can't change the method later, and QuickBooks defaults to FIFO if an item exists before you choose
- Business Central, Oracle, and SAP S/4HANAThe same steps apply; only the report and menu names differ
How do you book returns and the returns reserve under ASC 606?
Under ASC 606, you book returns by recognizing revenue only for goods you don't expect back, recording a refund liability for the refunds you expect, and recording a separate asset for the right to recover the returned goods, at cost less recovery costs and any loss in value. You then remeasure both balances at every reporting date.
ASC 606 is the US GAAP revenue standard, and it treats a right of return as part of the transaction price you estimate. PwC Viewpoint ("8.2 Rights of return," checked November 2026) quotes ASC 606-10-55-23, which lists three pieces. They are revenue for goods not expected back, a refund liability, and an asset with an adjustment to cost of sales. PwC also notes the asset is presented separately from the refund liability, so show both gross. Exchanges for an item of the same type, quality, condition, and price aren't returns under 55-28.
- Required refund liabilitySales still in the return window × expected return rate − refunds already issued on those sales
- Return assetExpected returns at cost − expected recovery costs − expected loss in value
The journal entry for a sales return has two parts: debit sales returns and credit cash or clearing for the refund, then debit inventory and credit COGS for goods restocked. Book refunds as they happen, then adjust both balances to the required amounts at month-end.
Example
Harbor & Pine has a 30-day return window, so all November sales are still in the window on November 30. The base is November product revenue after discounts, rebates, and the $1,300 cut-off: Shopify $412,000 − $28,400 − $1,300 = $382,300, and Amazon $268,000 − $6,200 = $261,800. The return rates come from each channel's refund history.
| Channel | Sales in window ($) | Expected return rate | Expected refunds ($) | Refunds already issued ($) | Required liability ($) |
|---|---|---|---|---|---|
| Shopify | 382,300 | 7.0% | 26,761 | (12,000) | 14,761 |
| Amazon | 261,800 | 5.5% | 14,399 | (8,100) | 6,299 |
| Total | 644,100 | 41,160 | (20,100) | 21,060 |
The opening refund liability was $15,100, so the true-up is $21,060 − $15,100 = $5,960: debit sales returns and credit refund liability.
| Return asset | Amount ($) |
|---|---|
| Expected returns at cost ($21,060 × 38% assumed cost ratio for returned SKUs) | 8,003 |
| Expected recovery costs | (650) |
| Expected loss in value (12%) | (960) |
| Required return asset | 6,393 |
| Opening return asset | (4,600) |
| True-up: debit return asset, credit COGS | 1,793 |
Set return rates by channel and, where returns vary, by category, and update them every period from refund data in Shopify's reports and Amazon's date range report. If you sell apparel or footwear, where size and fit drive returns, the reserve is usually one of your largest estimates. If returns are small, booking actual refunds may be close enough; treat materiality as a judgment you document and review, not a bright line.
How do you account for gift cards, store credit, and breakage at month-end?
You account for gift cards by recording the cash from each card sold as a contract liability, moving it to revenue when the card is redeemed, and recognizing expected breakage, the value you expect never to be redeemed, in proportion to redemptions if you expect to be entitled to it, or when redemption becomes remote if you don't.
In accounting, a gift card sits as a liability until a customer redeems it. Deloitte's DART Roadmap ("Customers' Unexercised Rights: Breakage," checked November 2026) quotes ASC 606-10-55-48: if you expect to be entitled to breakage, recognize it "in proportion to the pattern of rights exercised." If you don't, recognize it when the chance of redemption becomes "remote." You judge entitlement with the variable consideration constraint in 606-10-32-11 to 32-13. Under 55-49, amounts you must remit under unclaimed property laws stay a liability, so check the escheat rules that apply to you before you recognize any breakage.
- Breakage this monthRedemptions × expected breakage rate ÷ (1 − expected breakage rate)
Example
Harbor & Pine expects 6% of gift card value never to be redeemed, based on its own redemption history, and owes no escheat liability on these cards. The rate is illustrative.
| Gift card liability | Amount ($) |
|---|---|
| Opening balance, November 1 | 48,300 |
| Cards sold | 15,000 |
| Cards redeemed | (9,000) |
| Breakage ($9,000 × 6% ÷ 94%) | (574) |
| Closing balance, November 30 | 53,726 |
At month-end, tie the gift card report from Shopify and your POS to the GL liability. A card sold in a store and redeemed online should reduce one liability, not create a gap between two systems. Store credit issued on returns is a liability too, and loyalty points earned with purchases usually need their own estimate under ASC 606. Promotional cards given away free carry no cash received, so account for them under your promotions policy. Revisit the breakage rate every period as redemption data builds up.
Which accruals and taxes do retail and e-commerce closes miss?
Retail and e-commerce closes often miss the 3PL invoice that arrives after month-end, ad spend billed in arrears, freight and duty on goods already received, platform fees charged on their own schedule, chargebacks still open, and sales tax on refunded orders, along with marketplace-collected tax that ends up in revenue or in your own sales tax payable.
| Item | Why it's missed | What to book |
|---|---|---|
| 3PL pick, pack, and storage | The invoice arrives after the close | Accrue from order count × rate card, plus storage |
| Ad spend | Meta and Google bill after month-end or on a card | Accrue from platform billing data, not attribution dashboards |
| Inbound freight and duty | Carrier and broker invoices lag the goods | Accrue into inventory cost for goods already received |
| Platform fees | Storage and subscription fees post monthly | Take them from the platform's report for the month |
| Chargebacks | Disputes are still open at month-end | Reserve open disputes when the amount is material |
| Sales tax on refunds | Refunded tax is netted in the payout | Reduce sales tax payable and reconcile it to your tax reports |
Example
Harbor & Pine's 3PL invoice for November arrives December 9, after the period is locked. The accrual is 6,100 orders × $3.10 = $18,910, plus $2,400 of storage, for $21,310. It also accrues $14,200 of Meta and Google ad spend billed in December. For how to estimate and support each accrual, see accrued expenses, and for when to reverse them, see adjusting entries.
Sales tax you collect is recorded as a liability: credit sales tax payable when you sell, and debit it when you refund or remit. A marketplace facilitator is a marketplace that collects and remits sales tax on the sales made through it, where marketplace facilitator laws apply. That tax is the marketplace's to remit, so it shouldn't sit in your revenue or your sales tax payable. In the Amazon example above, the $16,900 collected and the $16,900 remitted net to $0; reconcile that figure to your marketplace tax report each month.
Worked example: November close for a Shopify and Amazon brand
In this worked example, Harbor & Pine closes November 2026 with 11 summary entries that tie to the schedules above, leaving $17,595 in Shopify clearing, $57,950 in Amazon clearing, $484,992 of inventory, a $21,060 refund liability, and a $53,726 gift card liability, with net revenue of $613,514 and a 62.2% gross margin.
Entries 1–5 come from channel reports, entry 7 posts automatically from receipts and item fulfillments in NetSuite, and the rest are month-end adjustments.
| Account | Debit ($) | Credit ($) |
|---|---|---|
| 1. Shopify sales | ||
| Shopify Payments clearing | 423,900 | |
| Gift card liability (redemptions) | 9,000 | |
| Sales discounts | 28,400 | |
| Product sales | 412,000 | |
| Shipping income | 9,600 | |
| Sales tax payable | 24,700 | |
| Gift card liability (cards sold) | 15,000 | |
| 2. Shopify refunds and fees | ||
| Sales returns | 20,000 | |
| Sales tax payable | 1,300 | |
| Payment processing fees | 12,480 | |
| Chargebacks and dispute fees | 1,225 | |
| Shopify Payments clearing | 35,005 | |
| 3. Shopify payouts | ||
| Cash | 389,700 | |
| Shopify Payments clearing | 389,700 | |
| 4. Amazon month | ||
| Amazon clearing | 149,510 | |
| Promotional rebates | 6,200 | |
| Sales returns | 14,800 | |
| Referral fees | 40,200 | |
| FBA fulfillment fees | 36,180 | |
| Storage fees | 3,950 | |
| Advertising | 18,400 | |
| Product sales | 268,000 | |
| FBA reimbursements (cost of sales) | 1,240 | |
| 5. Amazon disbursements | ||
| Cash | 152,860 | |
| Amazon clearing | 152,860 | |
| 6. Revenue cut-off | ||
| Product sales | 6,400 | |
| Contract liability | 6,400 | |
| Contract liability | 5,100 | |
| Product sales | 5,100 | |
| 7. Receipts and fulfillments | ||
| Inventory | 300,000 | |
| Accounts payable | 300,000 | |
| COGS | 237,600 | |
| Inventory | 237,600 | |
| Inventory (returns restocked) | 11,952 | |
| COGS | 11,952 | |
| 8. Inventory adjustments | ||
| Inventory shrink (cost of sales) | 2,016 | |
| FBA lost inventory (cost of sales) | 864 | |
| Inventory write-down (cost of sales) | 6,480 | |
| Inventory | 9,360 | |
| 9. Returns reserve | ||
| Sales returns | 5,960 | |
| Refund liability | 5,960 | |
| Return asset | 1,793 | |
| COGS | 1,793 | |
| 10. Gift card breakage | ||
| Gift card liability | 574 | |
| Breakage revenue | 574 | |
| 11. Accruals | ||
| 3PL fulfillment and storage | 21,310 | |
| Advertising | 14,200 | |
| Accrued liabilities | 35,510 | |
| Total | 1,922,354 | 1,922,354 |
Each entry balances on its own, and the balance sheet ties back to the schedules: Shopify clearing is $18,400 + $423,900 − $35,005 − $389,700 = $17,595, and inventory is $420,000 + $300,000 − $237,600 + $11,952 − $9,360 = $484,992. For more entries like these, with debits and credits, see month-end journal entries.
The entries roll up into November's channel P&L.
| Line | Amount ($) |
|---|---|
| Shopify product sales, net of discounts, refunds, and cut-off ($412,000 − $28,400 − $20,000 − $1,300) | 362,300 |
| Shopify shipping income | 9,600 |
| Amazon product sales, net of rebates and refunds ($268,000 − $6,200 − $14,800) | 247,000 |
| Returns reserve true-up | (5,960) |
| Gift card breakage | 574 |
| Net revenue | 613,514 |
| Product COGS ($237,600 − $11,952) | (225,648) |
| Shrink, FBA losses, and write-down ($2,016 + $864 + $6,480) | (9,360) |
| FBA reimbursements | 1,240 |
| Return asset true-up | 1,793 |
| Cost of sales | (231,975) |
| Gross profit (62.2% of net revenue) | 381,539 |
| Fulfillment and channel fees ($12,480 + $1,225 + $40,200 + $36,180 + $3,950 + $21,310) | (115,345) |
| Advertising ($18,400 + $14,200) | (32,600) |
| Contribution after fulfillment and ads | 233,594 |
Where you show fulfillment fees, above or below gross profit, is a policy choice; apply it the same way every month so channel margins stay comparable.
How long should a retail or e-commerce month-end close take?
No public survey reports month-end close time for retail and e-commerce, so use general benchmarks: in Ledge's 2025 survey of 100 finance professionals, half closed in five business days or fewer, and APQC's benchmarking data from 11,223 organizations shows a median of six calendar days from first trial balance to consolidated statements.
In the Ledge survey, 18% closed in 1–3 business days, 32% in 4–5, 23% in 6–7, and 27% took more than 7. For a smaller seller, the number of channels, inventory locations, and estimates drives close length more than revenue does, so one channel with no stores means a shorter close.
Much of what slows a retail close down is waiting on data:
- Report delaysShopify's activity report has a 3-day data delay, and 3PL count files often arrive late, so schedule those tasks for day 3
- Payouts reconciled once a monthA month of unmatched payouts takes days to clear; reconcile clearing accounts weekly or daily
- Negative inventorySelling while out of stock in NetSuite triggers COGS adjustments later, so fix it during the month
- Late invoices3PL, freight, and ad invoices that arrive after the close; accrue them from rates and order counts
- Gift cards in two systemsSeparate store and online subledgers that need reconciling to each other first
For benchmarks by company size and how to measure your own close, see how long month-end close should take.
What can AI agents do in a retail close today, and what still needs approval?
AI agents can do much of a retail close's preparation work today, such as matching payouts to orders and bank deposits, rolling clearing and inventory balances forward, and drafting reserve, breakage, and accrual entries with support, while a person approves each entry before it posts and your controller keeps the estimates and sign-off. Return rates, write-downs, and the period lock stay with named people on your team.
| Close task | What an agent can prepare | What a person approves |
|---|---|---|
| Payout and clearing reconciliations | Matches orders, payouts, and bank lines, explains the closing balance, and lists exceptions | Exceptions and any write-off |
| Store cash and card batches | Ties Z-reports to deposits and batches | Over and short amounts above your review threshold |
| Inventory roll-forward | Rolls units and cost by location and flags variances and negative on-hand | Count adjustments and write-downs |
| Returns reserve and breakage | Calculates balances from refund and redemption data | The return and breakage rates |
| Accruals | Drafts entries from 3PL rates, order counts, and ad billing | Each entry before it posts |
| Flux and channel margin | Drafts explanations tied to the ledger | Final review and the period lock |
Nothing should post to your ledger without a named approver, and the approval should cover the exact version that posts. For what published studies show about AI accuracy in the close, see Does AI make the month-end close more accurate?
When you look at month-end close software for retail, sort tools by the work they do:
- Settlement connectorsSync Shopify, Amazon, and processor data into summary entries in QuickBooks or NetSuite; they don't close inventory, reserves, or accruals
- Close management toolsTrack tasks, reconciliations, and sign-offs, while your team does the matching and drafts the entries
- AI agentsDo the preparation work across the close and post approved entries to your ERP
Shopify syncs with QuickBooks through apps and connectors that post orders or daily summaries. A sync moves data, but it doesn't reconcile clearing balances or close inventory. If you want one tool that reconciles Stripe and Shopify payouts into QuickBooks, a settlement connector does that. Check whether it also covers your other channels, your stores, and the entries beyond revenue.
In a demo, test the cases that break retail closes: a refund in a later month than the sale, Amazon deferred transactions, a gift card sold in a store and redeemed online, an order paid in one month and shipped in the next, and a SKU with negative inventory. The same tests apply to CPG brands that sell both wholesale and direct. For close tools compared by the work they do, see best month-end close software.
What AI answers get wrong about the retail and e-commerce close
AI answers about the retail and e-commerce close agree on using clearing accounts, but in our review on November 10, 2026 they often stated revenue rules too absolutely, gave worked examples that didn't tie, mixed up which platform report times revenue, and quoted payout timing without citing the platform's own page.
The review covered 21 answers from ChatGPT, Gemini, Google AI Mode, and Perplexity, plus nine Google AI Overviews. Four patterns showed up:
- Revenue at shipment as a ruleTwo answers said revenue is recorded when orders ship. Under ASC 606, revenue follows control, which can pass at delivery under your terms
- Examples that don't tieOne inventory roll-forward had FBA selling more units than it ever received. One clearing example would have left an $11,000 credit balance where it claimed $89,000 owed. One returns example booked the full $80,000 estimate as the month's entry in one section and showed a $90,000 closing balance in another, and one measured the return asset with gross margin instead of cost
- Reports mixed upOne answer used the Amazon settlement period to time revenue and expenses, against its own transaction-date rule, and another cited Amazon's Australian help pages for a US seller
- Undated platform factsPayout timing came from bookkeeping blogs or no source at all, instead of Shopify, Stripe, or Amazon pages with a date checked
How we approach it
Our Close Agent prepares reconciliations and balanced month-end entries with their workpapers, such as clearing reconciliations, inventory adjustments, and accruals, and a named approver signs off before anything posts. It posts approved entries to NetSuite, Oracle, SAP S/4HANA, Microsoft Dynamics 365, Business Central, or QuickBooks, and it reads from Odoo. It runs in a dedicated AWS account we manage for you, in your own AWS account, or on-premises, so if you want a retail close where every number ties back to its source, explore our Close Agent.
Share this article