What this report contains
The FBA Fee Preview report is Amazon's own answer to "what will you charge me to sell this?" for every FBA offer in the account. One row is one offer: a sku in one amazon_store. The same SKU listed in two stores is two rows, and each row names its own store, because the file is not filtered to the marketplace you requested it from — it covers the whole region at once.
The columns fall into five groups. Identity: sku, fnsku, asin, amazon_store. Catalogue attributes: product_name, product_group, brand, fulfilled_by. Pricing: your_price and sales_price, in the row's currency. The physical inputs Amazon priced the offer from: the three sides sorted by size, length_and_girth, item_package_weight, their units, and the product_size_tier those add up to. Then the fees themselves, twice over.
The first set of fee columns is prefixed estimated_ or expected_ and describes the current fee schedule: the referral fee per unit, the variable closing fee, order handling per order, pick and pack per unit, weight handling per unit, expected_fulfillment_fee_per_unit and estimated_fee_total. The second set carries future_ in the name and repeats the fulfilment components — order handling, pick and pack, weight handling, the fulfilment fee and a total — under the schedule that takes effect next. There is no future referral fee or future variable closing fee column; the future set is fulfilment-only.
Note what is not here: a date. The file describes the estimates as of the moment it was generated. Nothing in it says when a fee changed or what it used to be, so a history of a SKU's fees is something you build by keeping each pull, not something you can request.
How to get it
Through the Selling Partner API, this is the Reports API report type GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA. You call createReport with that type, poll the report until Amazon marks it done, and download a tab-separated file. Amazon's report-type entry tells you to set dataStartTime to at least 72 hours before now and dataEndTime to now; both are optional parameters on createReport, which notes that not all report types use them, and a request that passes no range at all still returns a file. Either way what comes back is the current estimates — there is no date column in the output to select on.
The trap is the marketplaceIds filter, which Amazon ignores for this report. Whatever marketplace you name, the file holds every FBA offer the seller has across the endpoint's region, one row per SKU per store, with each row naming its own store in amazon_store. Requesting one account's report from the US and from Canada on the same day returned the same 13,524 rows in the same order, byte-identical in every column the two files shared.
What the filter does change is the column set. Only the request made against the US marketplace comes back with all 31 columns; a request from elsewhere in the region drops three, product_size_tier among them. So: request it once per region, from the US, and treat amazon_store as the marketplace column. Requesting it once per marketplace does not give you per-marketplace files — it gives you the same region-wide file several times, each stamped with a marketplace that accounts for only a fraction of its rows, and it burns a createReport call each time against a published rate limit of one call a minute.
In Seller Central the same file is the Fee Preview report: from the main menu choose Reports → Fulfillment, then Fee Preview under Payments in the left-hand list, and pick a file type to download.
Sample rows
Illustrative values, not data from a real account. Shown to give the shape of the file.
| sku | asin | amazon_store | product_size_tier | your_price | currency | estimated_fee_total | estimated_future_fee |
|---|---|---|---|---|---|---|---|
| EXAMPLE-SKU-001 | B0EXAMPLE01 | Amazon.com | Large standard-size | 24.99 | USD | 9.15 | 9.35 |
| EXAMPLE-SKU-002 | B0EXAMPLE02 | Amazon.com | Small standard-size | 12.00 | USD | 5.02 | 5.10 |
| EXAMPLE-SKU-003 | B0EXAMPLE03 | Amazon.com | Large bulky | 89.00 | USD | 26.25 | 27.10 |
| EXAMPLE-SKU-001 | B0EXAMPLE01 | Amazon.ca | Large standard-size | 32.99 | CAD | 12.10 | 12.40 |
Field reference
| Column | Type | Description |
|---|---|---|
sku | string | Your seller SKU for the offer. Together with amazon_store it is the row's identity — the same SKU listed in two stores appears twice, once per store. |
fnsku | string | Amazon's fulfilment network SKU for the offer — the identifier on the FBA label, which is how the warehouse knows the unit. |
asin | string | The ASIN the offer is attached to. Several of your SKUs can share one ASIN, so this is not unique in the file. |
amazon_store | string | The store this row's offer belongs to, named by the row itself. A single file carries every store in the region regardless of which marketplace the report was requested from, so this column — not the request — is what tells you whose fees you are looking at. |
product_name | string | The listing title as Amazon holds it. |
product_group | string | Amazon's product group for the item. |
brand | string | The brand on the listing. |
fulfilled_by | string | The fulfilment channel recorded for the offer. |
your_price | decimal | The offer's listed price, in currency. |
sales_price | decimal | The sale price on the offer, in currency. |
longest_side | float64 | The longest package dimension, in unit_of_dimension. The three side columns are the package sorted by size, not length, width and height as you would label them. |
median_side | float64 | The middle package dimension, in unit_of_dimension. |
shortest_side | float64 | The shortest package dimension, in unit_of_dimension. |
length_and_girth | float64 | The longest side plus the girth of the package — the parcel-size measure carriers and Amazon's size tiers use. In unit_of_dimension. |
unit_of_dimension | string | The unit the four dimension columns are in. |
item_package_weight | float64 | The package weight Amazon has on file, in unit_of_weight. This is the input to estimated_weight_handling_fee_per_unit. |
unit_of_weight | string | The unit item_package_weight is in. |
product_size_tier | string | The FBA size tier Amazon has placed the item in, derived from the dimension and weight columns. Present only when the report is requested from the US marketplace — a request from another marketplace in the region returns the same rows without this column. |
currency | string | The currency every money column in the row is in. A region-wide file mixes currencies, so group on this before summing anything. |
estimated_fee_total | decimal | Amazon's total estimated fee for the offer under the current fee schedule — the headline number in the row. |
estimated_referral_fee_per_unit | decimal | The referral fee (Amazon's commission on the sale) Amazon expects to charge on one unit at the current price. |
estimated_variable_closing_fee | decimal | The estimated variable closing fee on the offer. |
estimated_order_handling_fee_per_order | decimal | The estimated order handling fee, per order rather than per unit — the one current-fee component in the row that is not on a per-unit basis. |
estimated_pick_pack_fee_per_unit | decimal | The estimated pick and pack fee for one unit under the current schedule. |
estimated_weight_handling_fee_per_unit | decimal | The estimated weight handling fee for one unit under the current schedule, driven by item_package_weight and the size tier. |
expected_fulfillment_fee_per_unit | decimal | The FBA fulfilment fee Amazon expects to charge per unit under the current schedule. |
estimated_future_fee | decimal | The counterpart of estimated_fee_total under the fee schedule that takes effect next. Comparing the two is the point of the report when a fee change has been announced. |
estimated_future_order_handling_fee_per_order | decimal | The order handling fee, per order, under the upcoming schedule. |
estimated_future_pick_pack_fee_per_unit | decimal | The pick and pack fee per unit under the upcoming schedule. |
estimated_future_weight_handling_fee_per_unit | decimal | The weight handling fee per unit under the upcoming schedule. |
expected_future_fulfillment_fee_per_unit | decimal | The FBA fulfilment fee per unit under the upcoming schedule. Note there is no future counterpart for the referral fee or the variable closing fee — the future columns cover fulfilment only. |
Use cases
Seeing an announced fee change before it lands. estimated_fee_total against estimated_future_fee, and the current against the future_ versions of pick and pack, weight handling and order handling, is the per-SKU delta of the next fee schedule. Sort by the gap, weight it by how much you sell of each, and you have the list of SKUs whose price or packaging needs a decision before the date.
Finding SKUs that are one measurement away from a cheaper tier. product_size_tier sits next to the exact longest_side, median_side, shortest_side, length_and_girth and item_package_weight that put the item there. An offer a fraction of an inch or an ounce over a tier boundary is paying the higher tier's estimated_weight_handling_fee_per_unit on every unit, and this is the only place both the tier and the inputs appear in one row.
Catching wrong dimensions or weight on file. If item_package_weight or the sides are not what your packaging actually measures, the fulfilment fee is being computed from a phantom package. Comparing this file to your own measurements is how you find the SKUs worth a re-measurement request.
Working out margin per SKU before COGS. your_price less estimated_referral_fee_per_unit less expected_fulfillment_fee_per_unit is what Amazon expects to leave you per unit, in the row's currency. Those are two of the row's fee columns and not all of them — the variable closing and order handling fees sit outside that subtraction, and estimated_fee_total is Amazon's own headline number if you would rather not assemble one. It is an estimate, but it is Amazon's estimate, which is a better input to a pricing decision than a fee calculator.
Auditing one account across a region. Because the file is region-wide, grouping on amazon_store gives you every store's fee exposure from a single request — and shows you which SKUs are listed in one store but not another.
Limitations and gotchas
The marketplace filter does nothing to the rows. Request from any marketplace in the region and you get the same rows in the same order. If your pipeline requests once per marketplace and stamps each file with the marketplace it asked for, you have three copies of the region and every copy is mislabelled — Canadian offers filed under the US and vice versa. The store is amazon_store, and only amazon_store.
The marketplace filter does change the columns. Only the US request returns all 31; a request from another marketplace returns 28, and product_size_tier is one of the three that vanish. Code that takes "whichever marketplace comes first" will silently lose the size tier for any account whose marketplace list does not start with the US.
Amazon does not publish where this report is available. Its report-type entry gives an Availability line naming a seller type — FBA sellers — and no Amazon store availability line, which is the field the same page uses to pin the FBA Multi-Country Inventory report to Europe and the FBA Promotions report to North America. Everything on this page about the file was measured on North American accounts. Whether a seller elsewhere gets the same file, or the report at all, is not something Amazon states, so this page does not.
These are estimates, not charges. The columns say estimated and expected, and mean it. What Amazon actually deducted is in your settlement and finance reports; this file tells you what Amazon expects to deduct at today's price, dimensions and schedule.
Per-order and per-unit fees do not add without an assumption. estimated_order_handling_fee_per_order is per order; every other fee component is per unit. Adding them together prices a one-unit order, which is fine only if that is what your orders look like.
Money is not converted. A region-wide file carries several currencies. Sum fees without grouping on currency and you are adding Canadian dollars to US dollars to pesos.
There is no date column. The file is a snapshot. If you want to know when a fee changed, you need yesterday's file as well as today's.
createReport is rate-limited. Amazon publishes the default usage plan for createReport as 0.0167 requests per second with a burst of 15 — one call a minute, and the plan is on the operation, so every report type you request draws on the same allowance. Given the file is identical for every marketplace in the region, requesting it more than once per region spends those calls to write the same rows again.
FAQ
GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA, requested through the Reports API with createReport. It is a tab-separated file with no date column, so each pull is a snapshot of the current estimates rather than a period you choose.
Because Amazon ignores the marketplace filter for this report. The file holds every FBA offer the account has across the endpoint's region, one row per SKU per store, and each row names its own store in the amazon_store column. Use that column, not the marketplace you requested, to tell stores apart.
Because the report was requested from a marketplace other than the US. Only the US request returns all 31 columns; a request from elsewhere in the region returns the same rows with three columns fewer, the size tier among them. Request it from the US marketplace.
No. They are Amazon's estimates at the current price, dimensions and fee schedule. Actual deductions are in the settlement and finance reports.
The estimated and expected columns describe the fee schedule in force now. The columns with future in the name describe the schedule that takes effect next. Only the fulfilment components have a future version; there is no future referral fee column.
Not from a single pull. The file has no date column and describes the estimates as of when it was generated. To track a SKU's fees over time you keep each day's file and compare them.
Sources
Every researched claim on this page, and the Amazon or Walmart page it came from.
- latency — developer-docs.amazon.com/report-type-values-fba — the FBA Fee Preview Report entry (reportType GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA) states 'Contains the estimated Amazon Selling and Fulfillment Fees for the seller's FBA inventory with active offers. The content is updated at least once every 72 hours.' Re-read 2026-09-28, unchanged.
- history_window — developer-docs.amazon.com/report-type-values — 'The retention of generated reports varies by report type. If an explicit retention is not specified for a report type, then the report will be retained for 90 days. If the generated report is not downloaded within the retention period, you can generate the report again.' The Fee Preview entry specifies no retention, so the 90-day default is what applies — to the generated document, not to a past snapshot.
- history_window — developer-docs.amazon.com/createreport — only reportType and marketplaceIds are required; dataStartTime and dataEndTime are optional and both read 'The default is now. The value must be prior to or equal to the current date and time. Not all report types make use of this.' So there is no documented way to ask for a past Fee Preview, and nothing on either page says whether Amazon holds one. Left as a finding, not written up as an absence. Checked 2026-09-28.
- console path — sell.amazon.com/estimate — 'In the Seller Central main menu, select Reports, then Fulfillment. Under Payments on the left-hand side, select Fee Preview. Select a file type to download the report.' The same path is given on sell.amazon.com/fba-fees-guide.
- marketplaces — developer-docs.amazon.com/report-type-values-fba — the entry gives 'Availability: FBA sellers' and carries no 'Amazon store availability' line. The same page writes that line where it applies: 'Europe (EU)' on GET_AFN_INVENTORY_DATA_BY_COUNTRY, while GET_AFN_INVENTORY_DATA immediately above it carries none, and 'North America (NA)' on GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_PROMOTION_DATA and 'NA and Amazon IN stores' on GET_FBA_FULFILLMENT_CUSTOMER_SHIPMENT_REPLACEMENT_DATA. Amazon writes the line when it applies and did not write it here, so nothing published says where this report exists: the field is not-published, and the body says so rather than implying a list. Verified 2026-09-28.
- marketplaces — sellercentral.amazon.com/201115050 — the Seller Central help article for the report, and the same path on sellercentral.amazon.co.uk and sellercentral.amazon.de. All three serve a signed-out shell with no article text, so Seller Central's own help neither confirms nor denies availability outside North America. Checked 2026-09-28.
- upstream.report_type — developer-docs.amazon.com/report-type-values-fba — the entry titled 'FBA Fee Preview Report' gives the reportType value GET_FBA_ESTIMATED_FBA_FEES_TXT_DATA, which is the identifier the page already states in the summary, the how-to-get-it section and the FAQ. Checked 2026-10-02.
- how-to-get-it — developer-docs.amazon.com/report-type-values-fba — Amazon's own name for the report type is 'FBA Fee Preview Report', under the Pricing and Amazon Fulfillment roles, with 'Requested/scheduled: This report can only be requested' and 'Report output type: Tab-delimited flat file'.
- how-to-get-it — developer-docs.amazon.com/createreport — the createReport usage plan is published as rate 0.0167 requests per second, burst 15 — one call a minute — described as 'the default rate and burst values for this operation'. Checked 2026-09-28.
- doc vs evidence — request window — developer-docs.amazon.com/report-type-values-fba says 'To successfully generate a report, specify the dataStartTime parameter for a minimum 72 hours prior to NOW and dataEndTime to NOW.' A request that passes no date range at all still generates the report. developer-docs.amazon.com/createreport marks both parameters optional and says 'Not all report types make use of this', which is consistent with the measurement. The body now states the documented instruction and what actually happens, and claims neither is the whole story.
- doc vs evidence — request cap — developer-docs.amazon.com/report-type-values-fba carries a Caution on this entry reading 'This report can only be requested once per day per seller.' Recorded, page unchanged: on 2026-08-26 one credential's report was requested twice in the same day, once against US and once against CA, and both returned 13,524 rows. Whether the cap is enforced per marketplace rather than per seller is not something Amazon states. Caution re-read 2026-09-28, unchanged.
- doc vs evidence — fields — developer-docs.amazon.com/report-type-values-fba — recorded as a conflict, nothing changed. Amazon's attribute list for this report type is has-local-inventory, product-size-weight-band, expected-domestic-fulfilment-fee-per-unit and expected-efn-fulfilment-fee-per-unit-uk/-de/-fr/-it/-es/-se alongside the identity, dimension and current-fee columns, with no amazon-store, no product-size-tier, no per-order / pick-pack / weight-handling components and no future-schedule columns at all. That is 29 names, and not the 31 columns the file actually carries. The list is names only — the reference defines none of the columns and states no relationship between them. Re-read 2026-09-28, unchanged.
- fee figures: the copy on this page quotes no fee amount, rate or size-tier boundary, because Amazon's own fee schedules ( — sell.amazon.com/pricing) change on announced dates and differ by store and by category, so a figure copied here would go stale silently. The sample's money columns are illustrative placeholders on EXAMPLE- SKUs, not a schedule. Two of them were removed: the sample's estimated_referral_fee_per_unit was exactly 15 per cent of your_price in every row and its estimated_fee_total was exactly those two components added, which taught a referral rate and a composition rule that nothing in Amazon's reference supports — the attribute list there defines no column and states no relationship between them.