Amazon FBA fees are the stack of charges Amazon deducts from every FBA sale: a per-unit fulfillment fee, a 15% referral fee, monthly storage, aged inventory surcharges, and inbound placement fees. For most standard-size Shopify SKUs sold on Amazon, these fees consume 30–45% of the retail price before COGS. Booking them cleanly is where margin analysis lives or dies.

What Are Amazon FBA Fees and How Do They Stack?

Amazon FBA fees are five distinct charges Amazon takes on each Fulfillment by Amazon sale. The stack includes the fulfillment fee (pick/pack/ship), the referral fee (marketplace commission), monthly storage, aged inventory surcharges, and inbound placement fees. Each is calculated differently and hits the P&L in a different way.

The mistake most Shopify sellers make is treating FBA fees as one line item. They aren't. Amazon bills them separately, itemizes them separately on the settlement report, and — if you want honest SKU margin — they need to live in separate GL accounts. Netting them against revenue is the fastest way to lose visibility into where your margin is actually leaking.

Fee TypeHow It's CalculatedTypical Range (Standard-Size)GL Treatment
Fulfillment feePer unit, by size tier + weight$3.25 – $10.20Fulfillment expense
Referral fee% of item price (usually 15%)8% – 17%Contra-revenue or COGS
Monthly storagePer cubic foot, seasonal$0.87 – $3.63 / cu ftFulfillment expense
Aged inventory surchargePer cu ft, by days on hand$0.50 – $6.90+ / cu ftFulfillment expense
Inbound placement feePer unit, by placement option$0.21 – $1.58Inventory / COGS

In our work with 100+ Shopify brands that also sell on Amazon, the pattern is consistent: brands see their gross Amazon revenue in Shopify's dashboard (or a Triple Whale roll-up), assume fees are 15%, and get blindsided when the true all-in fee load lands closer to 38%. The fulfillment fee alone often exceeds the referral fee on smaller-ticket items.

If your P&L shows one line called 'Amazon fees,' you have no idea which SKU is bleeding. The fee stack has to be broken out to be managed.

Takeaway: treat FBA fees as five separate line items in QuickBooks or Xero, not one bucket. If a store is currently netting them against revenue, that's the first fix.

How Do You Calculate True Landed Cost Per Unit on FBA?

True landed cost per unit on FBA is COGS plus every Amazon fee allocated to that unit, plus returns reserve, plus PPC allocation. Most Shopify brands stop at COGS plus fulfillment fee. That understates unit cost by 20–35% and makes every FBA SKU look artificially profitable at the contribution-margin line.

Here's a realistic build for a $29.99 standard-size supplement bottle sold on Amazon FBA in 2026. A typical Shopify brand we work with runs these numbers monthly against the settlement report.

Landed cost per unit — $29.99 supplement SKU
Retail price$29.99
Referral fee (15%)-$4.50
FBA fulfillment fee (small standard, 6 oz)-$3.77
Monthly storage allocation (0.05 cu ft, turned 6x/yr)-$0.18
Aged inventory allocation (average across SKU)-$0.35
Inbound placement fee allocation-$0.28
Returns reserve (3.2% of price)-$0.96
COGS (product + freight + duty)-$6.40
PPC allocation (18% ACoS on 40% of units)-$2.16
Contribution margin per unit$11.39

That $11.39 is the number the seller can actually spend on brand overhead, team, and profit. If they'd stopped at the fulfillment fee — the way most Shopify P&Ls do — the number would have looked like $19.32. That $7.93 gap per unit is where thin FBA businesses die.

For a deeper look at how contribution margin rolls up into net profit, see our post on net profit margin for Shopify brands.

Takeaway: build the unit economics with every fee allocated back to the SKU. If a brand can't produce a per-unit contribution margin number in under 10 minutes, the books aren't structured right.

Where Do Sellers Mis-Book Amazon FBA Fees in QuickBooks?

The most common bookkeeping error we see: sellers book the net Amazon deposit as revenue, which silently subtracts every fee category from top-line sales. This inflates net margin, hides referral vs. fulfillment fee movement, and makes SKU-level analysis impossible. The correct pattern is to book gross sales, then break out each fee bucket separately.

Here's what the wrong entry looks like — and it's what we see when we onboard a new Shopify brand from a bookkeeper who didn't handle Amazon settlements correctly.

The wrong way — netting fees against the deposit
DRCash — Amazon Payouts$42,180
CRSales — Amazon$42,180
Loses all fee visibility. Sales are understated by ~$26K; expenses are understated by the same amount.

The right way books gross sales, then each fee category to its own account. This matches the structure of the Amazon settlement report and lets a bookkeeper reconcile line-by-line.

The right way — full breakout
DRCash — Amazon Payouts$42,180
DRAmazon Referral Fees$10,227
DRAmazon FBA Fulfillment Fees$12,891
DRAmazon Storage Fees$1,842
DRAmazon Inventory Surcharges$680
DRAmazon Advertising$540
CRSales — Amazon$68,200
CRSales Tax Payable$160
Matches settlement report structure. Sales, fees, and cash all reconcile independently.

For Shopify stores using QuickBooks or Xero, we use Bookkeep to sync Amazon settlements into the general ledger with this breakout structure. It's the same tool we use for revenue recognition across the 100+ Shopify stores Ottit closes books for monthly. Bookkeep posts a summary journal per settlement period so you're not drowning in order-level detail, but you keep the fee categories separate.

This pattern applies to Shopify fees too — same mis-booking, same fix. Our Shopify fees P&L leakage guide walks through the parallel setup on the Shopify side.

Takeaway: if a store's chart of accounts has one line called 'Amazon fees,' that's the tell. Split it into at least four separate accounts before doing any margin analysis.

How Do You Reconcile Amazon Settlement Reports Against the Bank Deposit?

Reconciling Amazon settlements means matching each 14-day payout to gross sales less every fee category less refunds less reserves, then comparing to the net deposit in the bank. A clean reconciliation should tie to the penny. Variances above $5 usually mean a missing refund, an unposted reserve, or a timing cut across the settlement window.

  1. Pull the settlement report from Seller Central for the payout period (Reports → Payments → All Statements).
  2. Sum the categories: Product sales, Refunds, FBA fees, Selling fees, Storage, Advertising, Other.
  3. Net them to the 'Total' at the bottom — this should equal the deposit that hit the bank.
  4. Post the journal to QuickBooks with each category on its own line.
  5. If the deposit doesn't match, check for reserves (Amazon holds funds for A-to-Z claims), unposted refunds, or a settlement that crossed month-end.

The bookkeepers we work with reconcile settlements every two weeks — one per payout period. Waiting until month-end to reconcile six settlements at once is where errors compound. If the store also runs on Shopify, the same discipline applies to Shopify Payments payouts; see the Shopify Help Center guide to payouts for the parallel process on that side.

Takeaway: reconcile every settlement, not every month. A 14-day cadence catches errors while the settlement is still fresh enough to trace.

What Is the Aged Inventory Surcharge and Why Does It Kill Margin?

The FBA aged inventory surcharge is an additional monthly fee Amazon charges on units sitting in a fulfillment center past 181 days. The fee escalates sharply at 271 and 365 days, and it stacks on top of regular monthly storage. For slow-moving SKUs, the surcharge can exceed the unit's gross margin within a year.

The surcharge is a direct penalty on poor inventory planning. In our practice, we see it hit hardest on brands that over-ordered a seasonal SKU, a discontinued colorway, or a variant that didn't sell through as forecast. Once a unit crosses 271 days, the math almost never works — you're paying Amazon to hold something that's actively losing value on your balance sheet.

Cost to hold 500 units of a slow-moving 0.1 cu ft SKU for one year
Standard monthly storage (12 months × $0.87 × 50 cu ft)$522
Aged inventory surcharge, 181–270 days (3 months × ~$1.50 × 50 cu ft)$225
Aged inventory surcharge, 271–365 days (3 months × ~$4.90 × 50 cu ft)$735
Total 12-month holding cost$1,482
Per-unit cost to hold for one year$2.96

If that SKU has a $6 contribution margin before storage, holding it 12 months just cut margin in half. This is why inventory turnover matters so much on Amazon — see our inventory turnover ratio playbook for the operational side.

Takeaway: run an aged inventory report monthly. Anything approaching 181 days needs a decision — mark down, remove, or accept the surcharge as a known cost.

When Should a Shopify Brand Move a SKU Out of FBA?

A Shopify brand should typically move a SKU out of FBA when its all-in contribution margin drops below roughly $6 per unit, when its aged inventory risk is high, or when Shopify DTC volume can absorb the demand at better margin. The threshold isn't rigid — it depends on velocity, size tier, and whether the brand has a 3PL alternative.

Here's the decision framework we use with our clients. It's not a rule — it's a filter that surfaces SKUs worth reviewing.

SignalFBA Still Makes SenseConsider Moving to 3PL or Shopify-Only
Contribution margin per unit$8+ after all feesUnder $6 after all fees
Days of inventory on handUnder 90 daysOver 180 days
Size tierSmall/large standardOversize or dangerous goods
Return rateUnder 5%Over 10% (FBA returns are expensive)
Prime badge liftDoubles conversionMinimal lift (repeat buyer product)
Available 3PL alternativeNone with parity pricingShipBob or similar at $4–5 all-in

For Shopify-side fulfillment, brands often use ShipBob, ShipMonk, or a regional 3PL. The math to compare is straightforward: total FBA fees per unit vs. 3PL pick/pack + outbound shipping + monthly storage allocation. The catch is you lose the Prime badge on Amazon, so if the SKU relies on Prime conversion, moving it can cost more in lost sales than it saves in fees.

A middle path many brands take: keep the SKU on FBA but shift inventory in smaller, more frequent inbound shipments to avoid aged inventory surcharges. Others use Multi-Channel Fulfillment (MCF) — Amazon fulfills Shopify orders from FBA inventory. MCF fees are higher per unit than FBA fees, but it consolidates inventory into one warehouse.

The question isn't 'is FBA profitable overall?' It's 'is FBA profitable per SKU, per month?' The answer changes constantly.

Takeaway: run a per-SKU FBA profitability report monthly. Any SKU below the $6 contribution margin line goes into review — the review may end with keeping it on FBA, but the decision is deliberate.

How Should FBA Fees Be Categorized on the P&L?

FBA fees split across two P&L sections in a well-structured chart of accounts. Referral fees and fulfillment fees sit inside COGS or a dedicated 'variable fulfillment' section directly below revenue. Storage fees, aged inventory surcharges, and advertising sit lower in operating expenses. This split preserves a clean gross margin line.

The reason this matters: gross margin is the single most-watched metric in DTC. If storage and ads sit inside COGS, gross margin becomes volatile with seasonality and campaign spend, and you can't compare it month-over-month. Keeping variable-per-order fees in COGS and period costs in OpEx keeps gross margin meaningful.

P&L LineIncludesBehavior
RevenueGross Amazon salesTop line
Contra-revenueRefunds, chargebacksNetted against revenue
COGSProduct cost, inbound freight, duty, referral fee, FBA fulfillment feeVariable per unit sold
Gross MarginRevenue less COGSWatched metric
Fulfillment OpExStorage, aged inventory surcharge, MCFPeriod cost
Marketing OpExAmazon Ads, PPCPeriod cost
Operating IncomeGross margin less all OpExThe number that pays the team

Practices vary here — some CFOs argue storage should sit in COGS because it's inventory-related. Both approaches are defensible under GAAP; what matters is consistency across periods. Talk to your CPA about the treatment that fits your business. For a broader view on how operating expenses roll up, see our operating expenses playbook for Shopify brands.

Takeaway: decide once, document the treatment, and don't change it mid-year. Consistency beats theoretical perfection when you're trying to trend margin.

What Tools Should Be in the FBA Bookkeeping Stack?

A functional FBA bookkeeping stack in 2026 typically includes: an accounting platform (QuickBooks or Xero), a settlement sync tool (Bookkeep), an inventory system (Cin7 or similar), attribution (Triple Whale for the Shopify side), and Seller Central itself for the raw fee data. Skip any layer and the reconciliation breaks.

  • QuickBooks Online — the general ledger for the vast majority of Shopify brands under $20M revenue.
  • Bookkeep — syncs Amazon settlements (and Shopify payouts) into QuickBooks with the fee breakout structure covered above. This is what we use across Ottit's client base.
  • Cin7 — inventory and COGS tracking across FBA, Shopify, and 3PL. Handles the multi-location complexity FBA introduces.
  • Triple Whale — attribution and per-channel margin dashboarding for the Shopify-side view.
  • Seller Central Business Reports — the raw fee data and settlement reports. Everything upstream is derivative.

The tool-stack question that comes up most: what about A2X? A2X is a well-known settlement sync tool that many brands have used historically. For the 100+ Shopify stores we close books for, Bookkeep handles both Shopify and Amazon in one platform with a simpler onboarding and unified sales tax handling, which is why it's our default. Both tools solve the settlement-import problem; the choice comes down to which multi-channel workflow fits your ops.

Takeaway: the stack is small but non-negotiable. Trying to run FBA books without a settlement sync tool means manually keying journals every two weeks, and that scales poorly past $50K/month in Amazon revenue.

Key Takeaways for Shopify Brands Selling on FBA

FBA fees are five separate charges that need five separate GL accounts. Landed cost per unit needs every fee allocated back — not just fulfillment. Aged inventory surcharges kill margin fast, so turnover matters. And the $6 contribution margin threshold is where FBA typically stops making sense on a per-SKU basis.

  1. Break FBA fees into at least four GL accounts: referral, fulfillment, storage, surcharges.
  2. Reconcile every 14-day settlement, not every month.
  3. Build true landed cost per unit including PPC, returns reserve, and storage allocation.
  4. Run an aged inventory report monthly — anything past 181 days needs a decision.
  5. Review per-SKU contribution margin monthly; flag anything under $6.
  6. Use a settlement sync tool (Bookkeep) rather than keying journals manually.

The brands that win on Amazon in 2026 aren't the ones with the lowest fees — everyone pays the same rate card. They're the brands that know exactly which SKUs the rate card works for and which ones don't. That answer lives in the bookkeeping, not the Seller Central dashboard.

Sources and References