Skip to main content

Migrating from SellerBoard

SellerBoard (opens in a new tab) is an Amazon profit analytics tool. It connects to Seller Central and imports orders, fees, advertising costs, and refunds. It applies your product costs and shows profit and loss (P&L) by day, product, and marketplace.

DataDoe is an Amazon data layer. It stores Seller Central, Vendor Central, and Amazon Ads data in a documented schema. You can access the data through the app, exports, BigQuery, the DataDoe application programming interface (API), and Model Context Protocol (MCP). P&L is one of many available datasets. You can also analyze sales, advertising, inventory, and settlements from the same source, as well as manage your sales and ads with Actions.

What's different from SellerBoard?

The main differences are:

  • No value-added tax (VAT) row: DataDoe does not add VAT as a parent row in P&L reports or profit tables. We are working on adding VAT to P&L reports in the near future.
  • Different cost of goods sold (COGS) engine: DataDoe uses dated unit costs instead of SellerBoard's batch, period, or first-in, first-out costs. You can upload your COGS export CSV from SellerBoard to DataDoe to match the costs. Learn more about uploading COGS to DataDoe.

How to view the Profit and Loss report in browser?

Open the Profit & Loss tab in Reports (opens in a new tab). The tab opens by default. Choose a Seller and a date range. You can also compare the result with the preceding period of the same length.

Set an interval to split the report into daily, weekly, or monthly columns.

The report follows the SellerBoard parent-row structure. Expand a row to see more detail where available.

Parent rowWhat the report shows
SalesShipped item price plus buyer shipping, minus shipping promotions
UnitsShipped units
RefundsNumber of REFUND finance events on the posted date
PromoAlways 0 (settlement promotions are not booked as a P&L line)
Advertising costNegative advertising spend, including VAT in European Union marketplaces
Shipping costsNegative buyer shipping (child row: Fulfillment by Amazon (FBA) shipping chargeback)
GiftwrapOrder-item gift wrap
Refund costRefund transactions plus sellable and unsellable return COGS on the receipt date
Amazon feesSelling and posted fees; lost or missing inventory is excluded
Cost of goodsSold COGS plus inventory lost or damaged by Amazon and missing returns
Gross profit / Net profitSame total today (no separate VAT or overhead line)
Estimated payoutSales plus fees, refund cost, ads, shipping, giftwrap, promo
TACOS, % Refunds, Margin, ROITotal advertising cost of sales, refund rate, margin, and return on investment
Sessions and unit session percentageTraffic

Profit by Date and Profit by SKU & Date tables use the same calculation rules. AI agents can read this table through MCP to recreate the report Total for a Seller and date range.

How to create a P&L summary with an AI agent?

You can just paste the following prompt into your AI agent and let it do the work.

First, connect DataDoe MCP. To recreate the report Total, list the Seller and find the Profit by Date source (amazon_profit_by_date). Then create an export for the required dates with sum aggregations and no groupBy.

Use amazon_profit_by_date, not amazon_profit_by_sku_and_date. Calculate total advertising cost of sales (TACOS) from the date-range totals instead of adding daily values.

Shipping costs, Giftwrap, and Estimated payout appear in the app report but are not separate Profit by Date columns. Buyer shipping is included in total_sales.

Paste the following prompt into your AI agent and replace the three placeholders. The prompt includes exact MCP tool names, argument names, limits, and call order. The agent must copy sourceId from exports_sources_get instead of guessing it.

Prompt for SellerBoard-style P&L report generated with DataDoe MCP

You are using DataDoe MCP. Produce a SellerBoard-style P&L summary.
Include parent rows only and one Total for the date range.
Match Reports → Profit & Loss for the Seller and dates below.
Do not include daily, weekly, monthly, or comparison columns.

Inputs:
- seller name: {{seller_name}}
- from: {{from}}   (YYYY-MM-DD, inclusive)
- to: {{to}}       (YYYY-MM-DD, inclusive)

Do not use SQL, BigQuery, or the DataDoe web app.
Use only the tools named below.
Follow this order.

1) Tool: sellers_and_vendors_list
   Arguments (exact keys):
   {
     "query": "{{seller_name}}",
     "page": 1,
     "pageSize": 10
   }
   Pick the Seller Central row whose display name matches {{seller_name}}.
   Save its id as sellerOrVendorId (UUID).

2) Tool: exports_sources_get
   Arguments (exact keys):
   {
     "sellerOrVendorIds": ["<sellerOrVendorId from step 1>"],
     "query": "Profit by Date",
     "page": 1,
     "pageSize": 8
   }
   Select the source where table is amazon_profit_by_date and the user-facing name is "Profit by Date".
   Save sourceId from that object.
   If enabled is false, stop and tell the user to enable the table.

3) Tool: exports_create
   Create one total for {{from}} to {{to}} on amazon_profit_by_date.
   Use the exact argument keys below.
   Values for aggregations.column must be source columns.
   Values for columns must be the aliases:
   {
     "sellerOrVendorIds": ["<sellerOrVendorId from step 1>"],
     "sourceId": "<sourceId from step 2>",
     "from": "{{from}}",
     "to": "{{to}}",
     "outputType": "JSON",
     "limit": 1,
     "columns": [
       "sales",
       "units",
       "refunds",
       "advertising_cost",
       "refund_cost",
       "amazon_fees",
       "cost_of_goods",
       "net_profit",
       "sessions"
     ],
     "aggregations": [
       { "column": "total_sales", "aggregation": "sum", "alias": "sales" },
       { "column": "total_units_sold", "aggregation": "sum", "alias": "units" },
       { "column": "refund_count", "aggregation": "sum", "alias": "refunds" },
       { "column": "ad_spend", "aggregation": "sum", "alias": "advertising_cost" },
       { "column": "refund_cost", "aggregation": "sum", "alias": "refund_cost" },
       { "column": "total_fees", "aggregation": "sum", "alias": "amazon_fees" },
       { "column": "cogs_total", "aggregation": "sum", "alias": "cost_of_goods" },
       { "column": "profit", "aggregation": "sum", "alias": "net_profit" },
       { "column": "total_sessions", "aggregation": "sum", "alias": "sessions" }
     ]
   }
   Do not set groupBy, dateInterval, filters, skip, or orderByColumn.

   Report row → export field:
   Sales → sales (UI: item_price + buyer shipping − ship promo)
   Units → units
   Refunds → refunds
   Promo → always 0 (not in this table)
   Advertising cost → advertising_cost
   Shipping costs → n/a (buyer shipping stays inside sales)
   Giftwrap → n/a (not on Profit by Date)
   Refund cost → refund_cost
   Amazon fees → amazon_fees
   Cost of goods → cost_of_goods
   Gross profit / Net profit → net_profit
   Estimated payout → n/a
   Sessions → sessions

4) If the status from step 3 is not already COMPLETED, tool: exports_get
   Arguments:
   { "exportId": "<id from step 3>" }
   Poll every 5 seconds until status is COMPLETED. Stop on ERROR or BLOCKED_NO_TOKENS.

5) Tool: exports_raw_download
   Arguments:
   { "exportId": "<same id>" }

Present the parent rows in the following report order.
Do not add other rows.
Show costs as negative values.
Show sales, units, and sessions as positive values.

- Sales = sales
- Units = units
- Refunds = refunds
- Promo = 0
- Advertising cost = if advertising_cost > 0 then -advertising_cost else advertising_cost
- Shipping costs = n/a
- Giftwrap = n/a
- Refund cost = refund_cost (already signed)
- Amazon fees = if amazon_fees > 0 then -amazon_fees else amazon_fees
- Cost of goods = if cost_of_goods > 0 then -cost_of_goods else cost_of_goods
- Gross profit = net_profit
- Net profit = net_profit
- Estimated payout = n/a
- TACOS = abs(Advertising cost) / Sales   (if Sales is 0, null)
- % Refunds = Refunds / Units   (if Units is 0, null)
- Margin = Net profit / Sales   (if Sales is 0, null)
- ROI = Net profit / abs(Cost of goods)   (if Cost of goods is 0, null)
- Active subscriptions = 0
- Sessions = sessions
- Unit session percentage = Units / Sessions   (if Sessions is 0, null)

State that this is the Profit by Date total for {{from}} to {{to}}.
Explain that value-added tax (VAT) is omitted and cost of goods sold (COGS) uses unit costs uploaded to DataDoe.