Amazon Handling Fees
handling_fees
Overview
Amazon Handling Fees represents the handling fees (e.g. boxing, packaging, or “pick & pack” services) paid by the seller.
Amazon Handling Fees = Total Amazon-Reported Handling Fees
The calculation is based on data from the Orders table.
Detailed Breakdown
The formula above is derived from the following components:
- Handling Fees =
SUM(handling_fees)
--> Orders table - Amazon Sales =
where platform = 'amazon'
- Excluding Canceled Orders =
amazon_fulfillment_status != 'Canceled'
Why Summary Page Values May DifferThe Summary page excludes canceled orders, while queries in Moby/Dashboards/SQL builder include all orders unless explicitly filtered.
To match the Summary page using SQL, use a filter to exclude canceled orders:
WHERE amazon_fulfillment_status != 'Canceled'
Insights and Actions
Amazon Handling Fees directly affect contribution margin on Amazon orders, making them important for campaign profitability and strategic fulfillment decisions:
- Protect Profitability Against Rising Fees: Compare Handling Fees against Amazon Product Sales to monitor fee percentage and ensure ROAS targets still translate into profit.
- Optimize Fulfillment Strategy: Evaluate whether FBA pick & pack fees reduce margin beyond what improved conversion rates justify — especially on lower-priced SKUs.
- Align Ad Spend With Margin-Worthy SKUs: Use Handling Fee impact to identify which products remain profitable after fees — and prioritize those in Amazon ad campaigns and budget allocation.
Related Metrics
- Amazon Product Sales – Top-line revenue, useful for calculating fee percentage impact on margin.
- Amazon Estimated Fees – Total Amazon fees including referral and platform fees — pairs with Handling Fees for full cost visibility.
- Gross Sales – Total cross-channel sales, helping CMOs benchmark Amazon profitability against Shopify and other direct channels.
Example Use
Prompt
What were my Amazon handling fees over the last 90 days?
Response

Query
SELECT
SUM(ot.handling_fees) AS amazon_handling_fees
FROM
orders_table AS ot
WHERE
ot.event_date BETWEEN CURRENT_DATE() - 90 AND CURRENT_DATE() - 1
AND ot.platform = 'amazon'
AND ot.amazon_fulfillment_status != 'Canceled';
Updated about 6 hours ago