Month-end close is when the books close and the P&L is final. For ecommerce brands, this is complicated: Shopify settled 3 days late, Amazon holds a reserve, a wholesale customer deducted 3% at payment, and you haven't reconciled inventory yet.
A sloppy close takes 3 weeks and leaves the CEO guessing. A clean close takes 10 days and the numbers are trustworthy.
The Goal: Close the books in 10 days with confidence. Revenue, COGS, cash, AR, and inventory all tie to GL. No surprises on day 12 when you realize you missed a platform fee.
Why Month-End Close Is Hard for Ecommerce Brands
Problem 1: Multiple Revenue Streams
- Shopify: Settles in GL as a bank transfer (usually 1-2 days after sale)
- Amazon: Settlement report shows refunds, fees, and chargebacks; reserve holds show separately
- Wholesale: Revenue recorded when shipped, but payment arrives net-30/60/90 with deductions
- TikTok/Faire/Others: Different timing and fee structures for each
Result: Revenue hits GL on different days. Refunds and chargebacks hit on different days. Fees are sometimes netted (hidden in payout), sometimes separate (invoice).
Problem 2: Timing Gaps
- Accrual accounting: Revenue recognized when sold (day 1), cash lands when platform pays (day 7-90)
- Refunds: Deducted from payouts, not shown as a separate line item
- Reserves: Amazon holds 2% of rolling 30-day revenue; it doesn't show up as AR, but it's not cash-available
Result: Your bank account and GL don't match. You have to reconcile.
Problem 3: Hidden Fees
- Shopify: 2.9% + $0.30 per transaction deducted at payout
- Amazon: Referral fee + FBA fee + ad spend (PPC) all deducted before settlement payout
- Wholesale: Deductions (damages, markdown, chargebacks) not known until payment, 30-90 days later
Result: P&L shows gross revenue, but net revenue (after fees) is lower. You have to separate the two.
Data You Need Before Month-End Close Starts
From Each Platform (Download Now, Not at Month End)
- Shopify: Payout report (Payments > Payouts), Order report (all orders in the month), Refund report
- Amazon: Settlement report (FBA/FBM combined), Advertising cost report, Returns report
- Other Marketplaces: Settlement/payout report, fee report, holds/reserves report
- Wholesale/Direct: Invoice list, payment receipt list, deduction documentation (if any)
From Your Accounting System
- GL: All transactions posted through month-end
- Bank reconciliation: Uncleared checks, pending deposits
- AR aging: Outstanding invoices from wholesalers
- Inventory system: Current balance (from WMS or system of record)
From Your Operations Team
- Physical count: Any inventory adjustments (damages, shrink, write-offs)
- Pending refunds: Orders approved for refund but not yet paid out
- Pending disputes: Chargebacks in process, A-to-Z claims, warranty claims
- Purchase order receipts: Inventory received but not yet invoiced by supplier
The 10-Day Close Checklist (Day-by-Day Calendar)
Day 1 (Tuesday of Week 2)
Morning: Set up the close.
- Create close workpaper file with tabs for: Shopify, Amazon, Wholesale AR, Inventory, Accruals, GL Reconciliation
- Set up a Close Tracker: What's done, what's pending, who's responsible, deadline
- Schedule: daily standup (30 min), AR review (day 3), accrual sign-off (day 7), final review (day 9)
Afternoon: Download settlement data from all platforms.
- Shopify: Payout report (last month), Order report, Refund report
- Amazon: Settlement report (for last month, usually available by day 2-3 of current month)
- Wholesalers: Any payment receipts or deduction notices received
- Bank: Last month bank transactions (reconcile with payouts)
Day 2 (Wednesday)
Shopify Reconciliation
- Download Payout report. Identify all payouts that landed in the bank last month.
- For each payout: Gross sales - Refunds - Fees = Net payout.
- Match to bank deposit by date and amount.
- Journal entry: DR Bank / CR Shopify Payable, with fees as a separate line (COGS or OpEx depending on your GL structure)
Day 3 (Thursday)
Amazon Settlement Reconciliation
- Download Amazon Settlement Report. This shows: Orders, Refunds, FBA fees, Referral fees, Advertising spend, Chargebacks, Reserve holds.
- Identify: Opening balance (from beginning of month) + Deposits (payouts) - Refunds/Withdrawals = Closing balance.
- Match deposits to bank by date.
- Account for reserves: "Reserve Balance at End of Month" = cash held by Amazon (not in bank deposit yet).
- Journal entries:
- - DR Bank (for deposit received) / CR Amazon Payable
- - DR Amazon Payable (fees) / CR OpEx or COGS
- - DR Other Income (or Contra-Revenue) / CR Amazon Payable (for refunds, chargebacks deducted)
Review with operations: Any chargebacks or A-to-Z claims pending? Add to accruals.
Day 4 (Friday)
Wholesale AR & Direct Sales Reconciliation
- Pull AR aging report from GL.
- For invoices due last month: Did customer pay? Match invoice to payment.
- For invoices with deductions: Actual deduction % taken?
- Journal any payments received: DR Bank / CR AR
- Note any overdue invoices (>30 days): Follow up with customer
Day 5-6 (Monday: Tuesday)
Inventory True-Up
- Warehouse team: Physical count or system count (from WMS/inventory system)
- GL inventory balance: What did accounting have at end of month?
- Variance: If counts don't match, why?
- - Damaged goods (write-off)
- - Shrink/theft (adjust COGS)
- - In-transit inventory (received but not yet in system)
- - Counting error (recount)
- Journal: Adjust GL inventory to match physical count. Debit COGS or write-off account.
Day 7 (Wednesday)
Accruals
- Pending refunds: Orders approved for refund this month but payout not processed yet. Accrue as a payable/accrual. (Will reverse when payout clears next month.)
- Wholesale deductions: Retailer invoices due next month but known to include 2-3% deductions. Accrue the estimated deduction as a contra-revenue or direct AR reduction.
- 3PL charges: Storage, handling, freight invoices that arrived late but relate to last month. Accrue if you received the service.
- Pending chargebacks/claims: Amazon/Shopify disputes in process. Estimate loss and accrue.
- Example accrual journal:
- DR Operating Expense / CR Accrued Charges (for 3PL invoice not yet paid)
- DR Sales Returns & Allowances / CR AR Allowance (for estimated wholesale deductions)
Day 8-9 (Thursday: Friday)
Final GL Reconciliation & Variance Review
- Bank reconciliation: All deposits and checks cleared? (Bank usually reconciles in 2-3 days)
- AR aging: All known invoices accounted for?
- Inventory: GL matches physical count?
- Platform balances: Shopify, Amazon balances match your payables?
- P&L spot-check: Does revenue look reasonable? Are COGS, fees, and refunds in the right % range?
- Variance analysis: Year-over-year or plan vs actual. Any surprises?
Day 10 (Monday)
Close & Sign-Off
- Finance lead: Final review of P&L and balance sheet.
- Management/CFO: Sign-off on monthly close.
- Document: Close memo (any unusual items, accruals, adjustments for audit trail).
- Distribute: P&L and balance sheet to stakeholders.
Platform Payout Reconciliation: Shopify & Amazon in Detail
Shopify Reconciliation (Step-by-Step)
| Task | Source | What You're Looking For |
|---|---|---|
| 1. Gross sales last month | Shopify Order Report | Total $, number of orders, refund count |
| 2. Refunds processed last month | Shopify Refund Report | Total refunded, partial vs full refunds |
| 3. Processing fees | Shopify Payout Report | 2.9% + $0.30 per transaction (shown on settlement) |
| 4. Payouts received | Bank + Shopify Payout Report | Date, amount. Usually 1-2 business days after sale. |
| 5. Reconcile | Match | Order Report - Refund Report - Fees = Payout. Match to bank deposit. |
Example Shopify Reconciliation
| Amount | |
|---|---|
| Gross sales (Order Report) | $50,000 |
| Refunds (Refund Report) | -$2,000 |
| Net sales | $48,000 |
| Payment fees (2.9% + $0.30) | -$1,392 |
| Expected payout | $46,608 |
| Bank deposit received (match date) | $46,608 |
| Variance | $0 ✓ |
Amazon Reconciliation (More Complex)
Amazon settlement is more complex. You have to account for: Orders placed (by date), FBA fees, refunds, chargebacks, disputes, advertising spend (if auto-deducted), and reserves.
| Item | Amount | Notes |
|---|---|---|
| Orders revenue | $100,000 | FBM + FBA orders |
| Refunds | -$5,000 | Customer returns, refunded |
| Chargebacks | -$500 | Chargeback losses |
| Referral fee (15%) | -$15,000 | On $100k |
| FBA fulfillment | -$6,000 | Per-unit FBA fee |
| Amazon Advertising (PPC) | -$3,000 | Your ad spend |
| Subtotal | $70,500 | Amount available |
| Reserve held (2%) | -$2,000 | Held by Amazon, released next month |
| Payout to bank | $68,500 | This hits bank as deposit |
Key Journal Entries
DR Bank $68,500
CR Amazon Payable $68,500
Then:
DR COGS - Referral Fees $15,000
DR COGS - FBA Fees $6,000
DR OpEx - Advertising $3,000
DR Contra-Revenue $5,500 (refunds + chargebacks)
CR Amazon Payable $29,500
And separately:
DR Other Current Asset - Amazon Reserve $2,000
CR Amazon Payable $2,000
(Reserve is eventually released; you'll credit this back when Amazon pays it out next month.)
Accruals: The Linchpin of Accrual Accounting
What Is an Accrual?
An accrual is a journal entry that records an expense or revenue that has occurred but hasn't been paid/received yet. Accrual accounting says: recognize the event when it happens, not when cash moves.
Common Accruals for Ecommerce
1. Pending Refunds
- Example: Customer ordered last week, approved refund this week, but payout not yet processed by Shopify/Amazon
- Journal: DR Sales Returns & Allowances / CR Accrued Refunds Payable
- Reversal: When refund posts in next month, reverse the accrual.
2. Wholesale Deductions (Estimated)
- Example: You invoiced retailer $50k net-60 on day 1. Retailer typically deducts 3% ($1,500) at payment on day 60.
- Journal (at month-end, if invoice is in AR): DR COGS - Retail Deductions $1,500 / CR AR Allowance $1,500
- Result: AR shows net of deduction, not gross. Reversal: When payment arrives, deduction materializes as expected.
3. 3PL or Supplier Invoices Received Late
- Example: 3PL sends storage invoice on day 3 of next month, but it relates to last month's services
- Journal: DR COGS - Storage / CR Accrued 3PL Charges
- Reversal: When you pay the invoice next month, reverse the accrual.
4. Chargebacks/Disputes in Process
- Example: A customer disputed a charge; Stripe or Amazon is investigating
- Journal: DR Chargeback Expense / CR Accrued Chargeback Losses (estimated)
- Reversal/Adjustment: When outcome is known, adjust or reverse.
Key Principle: All Accruals Must Reverse in Following Month
If you accrue a pending refund in Month 1, you must reverse it in Month 2 (when the actual refund posts). Otherwise, you double-count it.
Inventory True-Up & COGS Adjustment
Month-End Inventory Checklist
- Step 1: Get the GL inventory balance as of last day of month
- Step 2: Get the physical or system count (from WMS or cycle count)
- Step 3: Investigate any variance > 1%
- Step 4: Journal the adjustment to match GL to physical
Example Inventory True-Up
| Amount | Notes | |
|---|---|---|
| GL Inventory balance (last day of month) | $500,000 | |
| Physical count (warehouse) | $495,000 | |
| Variance | $5,000 | Under (we have less than GL shows) |
| Reason: Damaged goods (3PL damage) | $3,000 | Identified during count |
| Reason: Shrink/theft | $2,000 | Estimated loss |
| Journal: | ||
| DR COGS - Damaged Goods Loss | $3,000 | |
| DR COGS - Shrink | $2,000 | |
| CR Inventory | $5,000 |
Inventory in Transit
- Issue: Inventory ordered from supplier arrives in GL system on receipt, but warehouse hasn't counted it yet
- Solution: At month-end, include inventory in transit as part of balance sheet inventory (it's your asset even if not yet counted)
- Journal: If inventory arrives on day 30 of month but you don't count it until day 1 of next month: accrue as "Inventory in Transit" or include in physical count guidance
Wholesale AR & Deduction Accounting
The Challenge
Wholesale customers are invoiced at net-30, net-60, or net-90. When you invoice, revenue is recorded. But payment often includes deductions (2-5%) that you don't know until the check arrives.
Month-End Process
- Step 1: AR Aging Report
- Pull AR aging showing invoices by customer and days outstanding
- Step 2: Identify Aging>30 Days
- Invoices beyond payment terms (e.g., net-30 but 45 days old) are overdue. Follow up.
- Step 3: Estimate Deductions
- Based on history with retailer, estimate deductions. If they usually deduct 3%, apply that to pending invoices.
- Step 4: Accrue Estimated Deductions
- Journal: DR Sales Returns & Allowances / CR AR Allowance (for estimated deduction)
- Step 5: Track Actual vs Estimated
- When payment arrives, compare actual deduction to estimate. Adjust if needed.
Example: Wholesale Deduction Accrual
| Amount | |
|---|---|
| Gross invoice to Retailer A (net-60) | $100,000 |
| Days outstanding | 35 days (not yet due) |
| Estimated deduction % (historical) | 3% |
| Estimated deduction amount | $3,000 |
| Accrual journal: | |
| DR Sales Returns & Allowances | $3,000 |
| CR AR Allowance: Retailer A | $3,000 |
| AR now shows: $97,000 (net of est. deduction) |
When payment arrives 60 days later: If Retailer A deducts $3,200 (more than estimated), adjust the allowance. If they deduct $2,500 (less), reverse the overage.
From Chaotic Closes to 10-Day Close
Month-end close is the heartbeat of financial reporting. It ties together revenue, cash, AR, inventory, and expenses. A sloppy close masks problems. A clean close shows the truth.
For ecommerce brands with Shopify, Amazon, and wholesale channels, the close is especially tricky because timing doesn't align: revenue on day 1, cash on day 7-90. Refunds are hidden in payouts. Deductions happen at payment, not sale. This checklist puts structure around it.
Niblin automates parts of this: platform payout reconciliation, accrual tracking, and AR aging all sync to your GL in real time. Your month-end close becomes a review, not a reconstruction.
Close the books in 10 days, not 3 weeks.
Automate platform reconciliation, accruals, and AR aging. Know exactly what revenue, cash, and AR you have: reconciled to the penny. Get Started
Key Takeaways
- Month-end close for ecommerce is complicated by timing: revenue on day 1, cash on day 7-90
- The 10-day close calendar: Day 1-2 Shopify, Day 3 Amazon, Day 4 Wholesale, Day 5-6 Inventory, Day 7 Accruals, Day 8-9 GL review, Day 10 sign-off
- Shopify reconciliation: Gross sales - Refunds - Fees = Payout. Match to bank deposit.
- Amazon reconciliation: Must account for refunds, chargebacks, referral fees, FBA fees, ad spend, and reserves separately
- Accruals are critical: pending refunds, estimated wholesale deductions, late 3PL invoices, and chargebacks in process must be accrued at month-end
- Inventory true-up: Physical count vs GL; journal any variance (damaged goods, shrink) to COGS
- Wholesale deductions: Estimate and accrue at invoice date; reconcile when payment arrives
- All accruals must reverse in the following month when the actual transaction posts
Frequently Asked Questions
How do I reconcile Shopify payouts to the GL?
Download Shopify's Payout Report and Order/Refund Reports. Gross sales - Refunds - Fees = Expected payout. Match payout amount and date to bank deposit. Journal: DR Bank / CR Shopify Payable (or similar account). Then journal fees separately if needed.
What is the difference between a bank reconciliation and a platform reconciliation?
Bank reconciliation matches your GL bank account to your actual bank statement (deposits, checks, fees). Platform reconciliation matches platform payout reports to your GL Shopify/Amazon accounts and verifies the bank deposit matches. Both must tie out; if not, you're missing a fee or refund.
Why do I need to accrue wholesale deductions?
Because you invoice on day 1 (revenue recorded), but the retailer deducts cash at payment (day 60-90). If you don't accrue the estimated deduction, your AR balance overstates what you'll actually receive. Accruing shows the net amount; adjusting when actual payment arrives keeps it accurate.
What is an inventory variance and how do I fix it?
A variance is the gap between GL inventory and physical/system count. Example: GL shows $500k, but count shows $495k. Investigate: damaged goods, shrink, or counting error. Journal the variance to COGS. If it's frequent or large (>5%), you have a deeper problem (damaged goods, theft).
What happens if I don't accrue pending refunds?
Your P&L will show higher revenue than reality. When refunds post next month, revenue drops, making this month look artificially good and next month artificially bad. Accruing smooths the P&L and shows accurate revenue for the month the transaction occurred.
How long should month-end close take?
With preparation and process: 10 days (Day 1 to Day 10). Platform reconciliation 2 days, inventory 2 days, accruals 1 day, GL review 2 days, sign-off 1 day. If it takes 3+ weeks, you're missing data or doing manual reconciliation. Automate where you can.
By