Many sellers assume FBA is always better. This query compares net margin between FBA and FBM fulfillment channels at the SKU level so you can make data-driven fulfillment decisions.
This is part of the Taptic Data Amazon query library. Explore related queries: SQL query for Amazon return rate by SKU, SQL query for Amazon net margin after FBA fees, SQL query for Amazon buy box percentage by ASIN, and more.
The question
The SQL Taptic generates
WITH channel_revenue AS ( SELECT i.sku, i.fulfillment_channel, SUM(i.item_price * i.quantity) AS gross_revenue, SUM(i.quantity) AS units_sold, COUNT(DISTINCT o.amazon_order_id) AS order_count FROM amazon_order_items i JOIN amazon_orders o ON o.amazon_order_id = i.amazon_order_id WHERE o.order_status NOT IN ('Canceled', 'Cancelled') AND i.item_price IS NOT NULL AND o.purchase_date::date >= CURRENT_DATE - INTERVAL '90 days' GROUP BY i.sku, i.fulfillment_channel ), channel_fees AS ( SELECT seller_sku AS sku, fulfillment_channel, SUM(ABS(item_related_fee_amount)) AS total_fees FROM amazon_financial_events WHERE posted_date::date >= CURRENT_DATE - INTERVAL '90 days' AND charge_type IN ('FBAPerUnitFulfillmentFee', 'Commission', 'ShippingChargeback') GROUP BY seller_sku, fulfillment_channel ) SELECT cr.sku, cr.fulfillment_channel, cr.order_count, cr.units_sold, ROUND(cr.gross_revenue::numeric, 2) AS gross_revenue, ROUND(COALESCE(cf.total_fees, 0)::numeric, 2) AS total_fees, ROUND((cr.gross_revenue - COALESCE(cf.total_fees, 0))::numeric, 2) AS estimated_net, ROUND( (cr.gross_revenue - COALESCE(cf.total_fees, 0)) / NULLIF(cr.gross_revenue, 0) * 100, 1 ) AS net_margin_pct FROM channel_revenue cr LEFT JOIN channel_fees cf USING (sku, fulfillment_channel) WHERE cr.units_sold >= 5 ORDER BY cr.sku, cr.fulfillment_channel
This query was generated by Taptic Data from plain English against a real Amazon Seller Central schema. In Taptic, you type the question โ the AI writes the SQL, runs it, and returns the result. You can edit the SQL, ask for explanations, and save it as a refreshable report.
How this query works
What it returns
SKU-level margin comparison between FBA and FBM fulfillment channels โ gross revenue, fees, net revenue, and net margin percentage side by side.
Why it matters
FAQ
Generate this automatically
In Taptic Data, you type "Compare net margin per SKU for FBA orders vs FBM orders in t..." and this SQL runs automatically against your real Amazon Seller Central data.
Try Taptic Free โ $29.99/moNo credit card required. Connect your data source in under 5 minutes.
Compare tools