Skip to main content

SAT migration to profit tables

Sales & Traffic by ASIN & Date (SAT), amazon_sales_and_traffic_with_cogs, is deprecated and will be removed on November 16, 2026. Update reports, saved exports, schedules, and integrations that use this table before that date.

We are consolidating reporting in Profit by SKU & Date (amazon_profit_by_sku_and_date) and Profit by Date (amazon_profit_by_date) to provide consistent sales and profitability definitions and more up-to-date sales data.

Profit sales come from order items rather than the Sales and Traffic business report. Traffic still comes from Amazon's reports and can be delayed. Moving to a profit table does not make traffic real-time.

Choose a replacement

Your use caseUse
Daily account sales, costs, and profitamazon_profit_by_date
Sales and profit by SKU or child ASINamazon_profit_by_sku_and_date
Sessions, page views, Buy Box, and conversion by child ASINamazon_profit_by_sku_and_date, reading traffic once per ASIN and day
Exact original report values or source timestampsRaw BigQuery integration

Both profit tables use dates in the marketplace's local time zone. Keep marketplace, seller, date, and currency separate when combining data. These are Seller Central profit tables, not Vendor Central profitability tables.

See the Data Scheme for definitions and refresh information. Both profit tables are premium export sources; check the cost before running migrated exports.

Migrate a daily account report

Use amazon_profit_by_date for account totals. Select date and the metrics you need, or group by date and seller when combining accounts. Use total_sales, total_units_sold, total_orders, cogs_total, ad_spend, and profit for a daily profitability view.

For traffic, use total_sessions, total_page_views, and avg_buybox_percentage. These use Amazon's daily account totals, with a fallback to child-ASIN rows when account totals are missing. Columns starting with asin_ describe aggregated child-ASIN traffic instead.

Do not calculate account profit by adding SKU profits. The account table includes fees and advertising costs that cannot all be allocated to a SKU. For a date-range report, add amounts and counts, then calculate ratios from the totals. Do not add daily percentages or average Buy Box percentages without appropriate weighting.

Migrate an ASIN traffic or conversion report

Use amazon_profit_by_sku_and_date and retain child_asin and date. Sales and costs are per SKU, but traffic describes the child ASIN and repeats on its SKU rows.

For each seller, marketplace, child ASIN, and day:

  • Add SKU sales, sold units, and costs.
  • Take max of total_sessions, total_page_views, and avg_buybox_percentage to read ASIN traffic once.
  • Apply the same rule to browser, mobile, and B2B traffic fields.
  • Keep traffic rows whose sku is null; an ASIN can have traffic without SKU sales activity that day.

For several days, read traffic once per ASIN and day, then add daily sessions and page views. Taking max across the whole period returns only the largest daily value.

Choose a consistent units definition when comparing conversion rates. A rate calculated from shipped units will not necessarily match Amazon's ordered-unit conversion percentage.

Map SAT columns to profit columns

These are the supported migration choices. Sales, units, order counts, and costs can change because the new tables use order and profitability definitions.

SAT columnProfit column and behavior
sessiontotal_sessions. Read once per ASIN and day in the SKU table.
browser_sessionbrowser_sessions. Read once per ASIN and day.
mobile_sessionmobile_sessions. Read once per ASIN and day.
page_viewstotal_page_views. Prefer the current column over the legacy alias.
buybox_percentageavg_buybox_percentage. Prefer the current column.
buybox_percentage_b2bavg_buybox_percentage_b2b. Percentages are 0 to 100.
units_session_percentageunit_session_percentage. Keep report percentages separate from rates you calculate.
total_unitstotal_units_sold for shipped sales; total_units_b2b + total_units_b2c for non-cancelled ordered quantities. Neither choice guarantees the original report value.
total_salestotal_sales. SAT is ordered product sales; profit sales are shipped item revenue plus buyer-paid shipping, minus shipping promotions.
total_orderstotal_orders. SAT counts report order items; profit tables count distinct shipped orders within their grouping.
cogs_item_valuecogs_item. Per-unit item cost becomes an aggregated shipped-item cost.
cogs_shipping_valuecogs_shipping. Per-unit shipping cost becomes an aggregated cost.
cogs_total_valuecogs_total. Includes shipped-item costs and lost/damaged or missing-return adjustments.
cogs_currencycurrency for profit reporting. Profit currency replaces the uploaded-cost currency field.
cogs_presentcogs_present. Checks cost coverage across contributing shipped items and returns.
item_supplier_nameitem_supplier_name. Returns a comma-separated list of distinct suppliers for shipped items.
dt_created, dt_updatedRaw report timestamps. No equivalent profit columns.

Keep fields such as child_asin, parent_asin, product_name, browser_page_views, mobile_page_views, and the matching B2B traffic fields where available. A matching name does not always mean the same calculation: profit total_units_b2b comes from non-cancelled order-item quantities.

The SKU table's units_refunded, refund_rate, and shipped report fields remain report metrics per ASIN. In Profit by Date, these are account-level report metrics. Financial refund_count and physical return_units measure different events and are not substitutes for report refunded units.

Update exports, schedules, and integrations

  1. Find the replacement by its name or table name. For the application programming interface (API), use GET /api/v1/exports/sources; for Model Context Protocol (MCP), use exports_sources_get.
  2. Read its columns. In MCP, call exports_source_get until columnsMeta.hasNextPage is false. Copy the returned source ID rather than constructing one.
  3. Update the source, selected columns, aggregation inputs, grouping, filters, and sort fields. Keep aggregation aliases if you need the same output labels.
  4. Update or recreate saved and scheduled exports with the replacement source. Existing SAT exports and schedules do not migrate automatically.
  5. Run a sample for a completed period. Check field names, row counts, currency, and ordered-versus-shipped differences before switching your downstream report.

For example, an export that sums session as sessions needs to sum total_sessions on Profit by Date. On the SKU table, read max(total_sessions) per ASIN and day instead. Update the aggregation input as well as the output name.

Additional columns available after migration

The following columns are in the profit tables but were not in SAT. Some are renamed replacements; others add sales, fees, advertising, or profitability detail. Supplier name already existed in SAT and is retained in both profit tables.

Available in both profit tables

AreaColumns
Profitabilityprofit, total_cost, acos, tacos, roi
Sales and account detailsales_tax, sales_tax_missing_items, total_sales_b2b, total_sales_b2c, unshipped_sales, total_units_b2c, total_units_sold, total_units_sold_b2b, total_units_sold_b2c, currency
Refunds and returnsrefund_count, refund_cost, return_units
COGS and inventory adjustmentsreturn_cogs, cogs_item, cogs_shipping, lost_damaged_by_amazon, missing_returns, cogs_total
Amazon feestotal_fees, total_selling_fees, total_fees_tax, total_fees_net, total_selling_fees_tax, total_selling_fees_net, fba_fees_tax, fba_fees_net, fba_fees, awd_fees
Advertisingad_spend, ad_sales, ad_orders, ad_units_sold, ad_clicks, ad_impressions
Traffic and conversionavg_buybox_percentage, avg_buybox_percentage_b2b, avg_buybox_percentage_b2c, total_sessions, sessions_b2c, total_page_views, page_views_b2c, browser_sessions, browser_sessions_b2b, mobile_sessions, mobile_sessions_b2b, browser_page_views_b2b, mobile_page_views_b2b, unit_session_percentage, unit_session_percentage_b2b

Additional columns in Profit by SKU & Date

AreaColumns
Product informationsku, product_brand, product_category_root, product_category_node, product_image_url, product_url
Traffic and conversionbrowser_sessions_b2c, mobile_sessions_b2c, browser_page_views_b2c, mobile_page_views_b2c, session_percentage, session_percentage_b2b, page_views_percentage, page_views_percentage_b2b, browser_session_percentage, browser_session_percentage_b2b, mobile_session_percentage, mobile_session_percentage_b2b, browser_page_views_percentage, browser_page_views_percentage_b2b, mobile_page_views_percentage, mobile_page_views_percentage_b2b

Additional columns in Profit by Date

AreaColumns
Advertisingsponsored_tv_ad_spend
Target reportingad_target_reported_spend, ad_target_reported_sales, ad_target_count, ad_target_costed_sales, ad_target_costed_spend, ad_target_unsupported_sales, ad_target_missing_cost_sales, ad_target_costed_estimated_profit_after_ads, ad_target_mature_spend_without_sales
Search-term reportingad_search_term_reported_spend, ad_search_term_reported_sales, ad_search_term_count, ad_search_term_costed_sales, ad_search_term_costed_spend, ad_search_term_unsupported_sales, ad_search_term_missing_cost_sales, ad_search_term_costed_estimated_profit_after_ads, ad_search_term_mature_spend_without_sales
Sales and account detailaverage_sales_per_order_item, average_sales_per_order_item_b2b, average_sales_per_order_item_b2c, average_units_per_order_item, average_units_per_order_item_b2b, average_units_per_order_item_b2c, average_offer_count, average_parent_items
Claimsclaims_granted, claims_granted_b2b, claims_granted_b2c, claims_amount, claims_amount_b2b, claims_amount_b2c
Feedbackfeedback_received, feedback_received_b2b, feedback_received_b2c, negative_feedback_received, negative_feedback_received_b2b, received_negative_feedback_rate, received_negative_feedback_rate_b2b
Traffic and conversionorder_item_session_percentage, order_item_session_percentage_b2b
ASIN trafficasin_browser_sessions, asin_browser_sessions_b2b, asin_browser_sessions_b2c, asin_mobile_sessions, asin_mobile_sessions_b2b, asin_mobile_sessions_b2c, asin_browser_page_views, asin_browser_page_views_b2b, asin_browser_page_views_b2c, asin_mobile_page_views, asin_mobile_page_views_b2b, asin_mobile_page_views_b2c, asin_session_percentage, asin_session_percentage_b2b, asin_page_views_percentage, asin_page_views_percentage_b2b, asin_browser_session_percentage, asin_browser_session_percentage_b2b, asin_mobile_session_percentage, asin_mobile_session_percentage_b2b, asin_browser_page_views_percentage, asin_browser_page_views_percentage_b2b, asin_mobile_page_views_percentage, asin_mobile_page_views_percentage_b2b, asin_unit_session_percentage, asin_unit_session_percentage_b2b

Target and search-term summaries overlap and must not be added together or added to account profit. Use each for its documented advertising analysis.

Keep original report data with Raw BigQuery

The underlying data remains available after integrated SAT is removed. Set up a Raw data integration using the BigQuery connection guide. An Integrated data subscription does not provide access to the Raw dataset.

Use raw_sp_api_report_sales_and_traffic for Amazon's child-ASIN report values, including orderedProductSales, unitsOrdered, totalOrderItems, and source timestamps. Raw field names differ from integrated names.

For uploaded costs and suppliers, use raw_amazon_cogs with the appropriate product, connection, and effective date. The raw report does not include SAT's COGS join. Choose the applicable dated COGS record and avoid duplicate report rows.

Raw access preserves source data, including Amazon's reporting delays and revisions. It does not reproduce SAT's integrated columns automatically.

Need help?

If you have questions about choosing a replacement, updating a schedule, or matching an existing report, contact us or open a support ticket (opens in a new tab). Include the current source, columns, date range, and the result you need.