Most ecommerce sellers get paid two to three weeks after a sale. That delay is fine for cash flow planning. But many sellers let that same delay drive how they record costs. That's a much more expensive mistake.
When you book cost of goods sold (COGS) at payout instead of fulfillment, profit looks higher in October and lower in November. That distortion compounds across thousands of SKUs. Your P&L misleads you on pricing, margins, and taxes.
This article covers the four mechanics that fix ecommerce inventory accounting: ecommerce COGS timing, inventory valuation, returns, and units held at Amazon. None of it is complicated once you see the pattern.
When do ecommerce sellers recognize COGS?
COGS is recognized when inventory is fulfilled (shipped to the customer), not when the platform pays out. Sell a $50 item on October 28. Amazon settles on November 14. The COGS entry belongs in October — the same period as the revenue. Booking it in November overstates your October margin and understates November's. A seller moving $10,000/month with a 40% cost ratio misallocates $4,000 in costs when there's a two-week payout delay. The fix is accrual-based COGS: match costs to the revenue they generate, not the bank transfer that arrives later.
Key Takeaways
- COGS follows fulfillment, not payout: The day inventory ships is the day cost hits your P&L, regardless of when the platform settles.
- Three events, two that matter: Sale date (revenue), fulfillment date (COGS), and settlement date (cash) are separate. Only the first two affect your income statement.
- Landed cost belongs in inventory: Freight and duties are part of inventory value, not a period expense. A $10 item with $2 freight should carry a $12 inventory cost.
- Returns reverse both sides: A return reduces revenue AND restores (or writes off) inventory cost. Both entries need to move.
- FBA inventory is still your asset: 300 units at an Amazon fulfillment center belong on your balance sheet until sold. Location doesn't change ownership.
- Reconcile monthly: Cross-check your books against Seller Central reports every month. Catch shrinkage and unrecorded movements early.
Why COGS Timing Is the Ecommerce Trap
Here's the core issue: three things happen when you make a sale, and they almost never happen on the same day.
The Three Events That Never Land on the Same Day
Event 1 (Sale): The customer clicks Buy. Revenue is recognized. This is October 28.
Event 2 (Fulfillment): The item ships from the warehouse. Inventory moves out of your account and COGS is recognized. This might be October 29.
Event 3 (Settlement): Amazon, Shopify, or Etsy deposits money into your bank account. This is November 14.
Accrual accounting matches revenue and cost in the same period. Event 1 and Event 2 need to land in the same month. Event 3 is irrelevant to your income statement.
Why Booking at Payout Breaks Your Margin Report
Say you sell 10 units at $50 each on October 28. Each unit cost you $22 to produce and ship. Your fulfillment center ships them October 29.
The correct entries:
- October: Revenue +$500, COGS +$220. Gross profit = $280. Margin = 56%.
- November: Nothing related to this sale.
If you book COGS when the platform pays (November 14):
- October: Revenue +$500, COGS $0. Gross profit = $500. Margin = 100% (wrong).
- November: COGS +$220 with no matching revenue. Gross profit = -$220 (wrong).
You made 56% margin. Your books show 100% one month and negative the next. This distortion drives bad pricing decisions. It also means your tax liability calculations are off. You may overpay estimated taxes in Q4 and underpay in Q1.
For context on how COGS fits into your broader ecommerce bookkeeping setup, see ecommerce bookkeeping fundamentals.
Inventory Valuation for Online Sellers
Once you understand COGS timing, the next question is: how much does each unit cost? That depends on your valuation method.
FIFO vs Weighted Average: Which One Fits Your Store
Two methods dominate ecommerce bookkeeping:
FIFO (first in, first out): The oldest inventory costs flow out first. Buy 100 units at $10 in January and 100 more at $12 in March. The first 100 you sell cost $10 each. The next 100 cost $12 each.
FIFO works well for dated or seasonal goods. It also fits stores where supplier costs shift lot-to-lot.
Weighted average: You pool all inventory at an average cost. If you have 200 units (100 at $10 and 100 at $12), the average cost is $11. Every unit sold costs $11, regardless of which physical unit ships.
Weighted average is simpler for high-SKU operations where tracking lot-level costs adds more friction than value.
One practical note: the IRS requires consistency. You can't switch methods year to year without filing Form 3115. Pick the one that fits your operation and stick with it.
Landed Cost Belongs in Inventory Value, Not Period Expense
This is where a lot of ecommerce sellers leak margin without realizing it.
Landed cost covers everything to get a unit to a sellable state: purchase price, freight, duties, and prep fees. All of it belongs in the inventory cost of that unit, not expensed the period you paid it.
A unit at $10 from the supplier plus $2 freight carries a $12 inventory cost. When it sells, $12 flows through COGS.
The common mistake is booking freight as a period expense when the invoice arrives. That understates inventory value and overstates gross margin. You look more profitable than you are.
For the right chart of accounts structure to handle landed cost correctly, see ecommerce chart of accounts.
Returns, Restocking, and Shrinkage
Returns are a double-entry event, and most ecommerce sellers only do half of it.
Reversing Both Revenue and COGS in the Right Period
Say a customer returns a $50 item that cost you $22. Two things happen on your books:
- Revenue drops by $50.
- If the item is resellable, COGS drops by $22 and inventory goes back up by $22.
Most sellers record the refund (revenue drop). Fewer reverse the COGS and restore inventory. Skip that step and your COGS stays high, making gross margin look worse than it is.
When the item is damaged or unsellable, step 2 changes: you can't restore it to inventory. Instead, remove it from inventory at cost and record a $22 shrinkage loss. That loss sits below gross profit. It shouldn't be buried in your COGS figure.
Partial refunds change only the revenue side. If you refund $40 of a $50 sale but keep the item, revenue drops $10 and COGS is unchanged.
Timing matters here, too. The reversal goes in the period the return is processed, not the period of the original sale.
Damaged and Unsellable Units
Inventory shrinkage from theft, damage, or loss is not a COGS event. COGS requires a sale. When units disappear without a sale:
- Remove them from your inventory account at cost.
- Record the offset as an inventory shrinkage or loss expense.
Running all inventory reductions through COGS inflates costs and hides the real issue. Shrinkage should be its own line so you can track it and spot patterns.
Units Held at Fulfillment Centers
This is the one that surprises FBA sellers the most.
FBA Inventory Stays on Your Balance Sheet
When you ship 500 units to an Amazon fulfillment center, you don't sell them to Amazon. You store them there. You still own every unit until a customer buys it.
That means all 500 units belong on your balance sheet as an asset. If 200 have sold, 300 remain on the balance sheet at their inventory cost. Not at Amazon's selling price, not at zero.
The ownership test is legal title, not physical location. A unit at a fulfillment center in Kentucky is still your asset if you own it.
For a full breakdown of FBA-specific accounting entries, see Amazon seller bookkeeping.
Reconciling Platform Inventory Reports
Every month, cross-check your bookkeeping system against the Amazon Seller Central inventory report. Here's the process:
- Pull the FBA inventory report from Seller Central (units currently in fulfillment).
- Multiply units by your average cost per unit.
- Compare that figure to your "FBA Inventory" account balance in your bookkeeping system.
Discrepancies mean one of three things: unrecorded receipts, unrecorded sales, or shrinkage. Amazon may have lost or damaged units without logging it on your side.
If you're setting up FBA inventory accounting, Growthy is 85% accurate on first import. You review the rest.
Conclusion
COGS follows inventory movement, not when the platform pays you. That's the single rule that makes all of this work.
Get the timing right and your P&L becomes a reliable tool for pricing decisions. Tracking inventory cogs ecommerce sellers neglect is what makes the numbers honest. Get inventory valuation right and your unit economics reflect reality. Handle returns correctly and gross margin stops bouncing. Track FBA inventory as an asset and the balance sheet balances.
None of it requires specialized accounting software or a CPA on call. It requires consistent methodology applied the same way every month.
Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice.
Get started with Growthy