Blog

One multichannel sales dashboard for Shopify, Amazon, Etsy and TikTok Shop: what to show and how to build it

Build a multichannel sales dashboard for Shopify, Amazon, Etsy and TikTok Shop: the numbers that matter, official APIs, data model and refresh cadence.

By Rokibul Hasan8 min read

  • E-commerce
  • Analytics
A phone in the dark showing a sales graph and figures

Most multichannel sellers start the day the same way: Shopify analytics in one tab, Seller Central in another, Etsy and TikTok Shop Seller Center in two more, and a spreadsheet trying to add them up. Each platform counts sales differently, so the totals never quite agree. A multichannel sales dashboard puts every channel on one screen, with one set of definitions, so you can see what you actually sold, what it cost to sell it and how long your stock will last.

This guide is for sellers on two or more of Shopify, Amazon, Etsy and TikTok Shop who want one view instead of four. It covers which numbers matter, where the data comes from, a simple data model, how often to refresh, and when free tools such as Google Sheets and Data Studio are enough.

I build e-commerce automation and integrations on official APIs, and a dashboard for orders, stock and sales is part of my Flexible plan for marketplace apps. The approach below works whoever builds it.

The numbers that matter on a multichannel sales dashboard

A dashboard that shows everything gets ignored. Start with a handful of numbers, per channel and in total:

Number How to calculate it What it tells you
Net sales Gross sales minus discounts and refunds What customers really paid for products
Net after fees Net sales minus marketplace, payment and fulfilment fees What each channel leaves you
Units and orders Counted per day, per channel and per SKU Demand, without price effects
Stock cover Units available ÷ average daily units sold Days until a SKU runs out across all channels
Ad spend, ACOS and TACOS Spend ÷ ad-attributed sales; spend ÷ total sales Whether ads pay for themselves

Add cost of goods once you have landed costs per SKU, and net after fees becomes contribution margin. Refund rate per channel is a useful second-page number. Everything else belongs in a drill-down by channel or SKU.

Why every channel counts sales differently

Before building anything, write down your definitions, because the platforms disagree on almost all of them:

  • Gross or net. Some reports include tax and shipping, some exclude them, some show both.
  • Which date. The order date, the shipping date or the payout date. Pick the order date for sales and keep payouts for accounting.
  • Refunds. A refund can be dated when it happens or attached to the original order. Both are valid; choose one and use it everywhere.
  • Time zone. Each platform reports in its own time zone. Store every timestamp in UTC and cut days in your business's own time zone.
  • Currency. Convert at a daily rate you store, so last month's figures do not move when exchange rates do.

Amazon is building part of this view itself. In September 2026 it announced multichannel selling tools in Seller Central that let US sellers view sales and orders from eBay, Shopify, TikTok and Walmart, with a profitability view described as coming later. It does not cover Etsy, and it is rolling out gradually, so check whether it is in your account before paying for anything.

Where the data comes from: official APIs per channel

Every number above can come from official APIs, with no scraping:

  • Amazon. The Orders API for orders, the FBA Inventory API for stock, and Data Kiosk for bulk analytics. Data Kiosk's Economics dataset gives product-level sales, returns, ads, fees, off-Amazon costs and net proceeds, which is most of the "net after fees" column in one query; it needs the Selling Partner Insights role. Ad spend and attributed sales come from the Amazon Ads API, covered in automating Amazon Ads reports.
  • Shopify. Orders and inventory through the GraphQL Admin API, with bulk operations for loading history. Since API version 2025-10, ShopifyQL is available through the shopifyqlQuery field, so a dashboard can ask Shopify for aggregated sales directly; it needs the read_reports scope.
  • Etsy. The Open API v3 provides shop receipts (orders), transactions, listing inventory, and payments with fees.
  • TikTok Shop. The Partner API, documented in TikTok Shop Partner Center, covers orders, products and finance data.

Use webhooks or notifications where a platform offers them, and always run a scheduled catch-up job as well. Shopify, for example, says webhook delivery is not always guaranteed. The same pattern keeps stock in step, as I explain in how to stop overselling across channels.

A simple data model

Under the charts sits a small database. A model that works for most sellers:

  • products: your master SKU, with landed cost stored against an effective date, so old margins stay correct when costs change;
  • channel_listings: which ASIN, Shopify variant, Etsy listing or TikTok product maps to which master SKU;
  • orders and order_lines: channel, order ID, UTC timestamps, currency, gross, discount, tax and shipping;
  • refunds: linked to the order, with their own date;
  • fees: by order where the platform gives that detail, otherwise by period, always with a fee type;
  • inventory_snapshots: one row per SKU, location and day, so stock cover has history;
  • ad_spend_daily: channel, campaign, SKU where available, spend and attributed sales;
  • fx_rates: one rate per currency per day.

Keep the raw API responses as well. When a definition changes, you rebuild the tables from them instead of re-downloading years of data. The hardest part is rarely the charts. It is the SKU mapping in channel_listings, so give it an owner and a screen to fix mismatches.

How often a sales dashboard should refresh

Real time sounds good but costs more and rarely changes a decision. Match each source to how often someone acts on it:

Data Refresh Why
Orders Every 15 to 60 minutes, or by webhook Enough to spot a problem the same day
Stock Hourly, plus a daily snapshot Stock cover and reorder alerts
Fees and payouts Daily, re-checking recent days Amazon says its financial events might not include orders from the last 48 hours
Ad spend Daily, re-pulling a trailing window Late corrections are picked up
Costs and exchange rates Daily or weekly They change slowly

Show a "last updated" time on every page. A dashboard that looks fresh but stopped syncing three days ago is worse than no dashboard.

Google Sheets and Data Studio, or a custom dashboard

The free route works for many small sellers. A scheduled job writes daily rows into Google Sheets, and Data Studio, Google's free reporting tool called Looker Studio until April 2026, draws the charts. Data Studio checks a Sheets source for fresh data every 15 minutes by default, with hourly, four-hourly and twelve-hourly options, according to Google's documentation. Third-party connectors can pull Amazon or Shopify data straight into Data Studio, usually for a monthly fee.

The limits show up as you grow. A spreadsheet holds up to ten million cells, and long before that, formulas across years of order lines get slow. Anyone who can open the file can see every tab, and one broken formula can throw off the whole report.

A custom dashboard makes sense when you need:

  • years of order-line history across thousands of SKUs;
  • logins for a team, with each person seeing only their channels or brands;
  • alerts, such as a SKU dropping below 14 days of cover or a channel's fees jumping;
  • your own costs and stock across channels in the same view;
  • actions, not only charts, such as approving a reorder from the stock page.

A middle path also works: a proper database underneath, with Data Studio on top until you outgrow it.

A checklist for building one

  1. Write your definitions of net sales, fees and stock cover before choosing tools.
  2. Fix the SKU mapping across channels.
  3. Load history once, then update incrementally.
  4. Reconcile monthly: each channel's total in the dashboard against the platform's own report, with differences explained.
  5. Design empty and error states: "no orders from this channel yet" and "sync failed, retry" are better than a blank chart.
  6. Start with one page that answers "how did yesterday go?", and add pages when someone asks a question the first page cannot answer.

If the dashboard should also feed your books, the payout side is covered in ecommerce accounting automation.

What a multichannel sales dashboard costs

Sheets and Data Studio cost nothing but time, and connectors add a subscription. A custom build costs more up front and fits your definitions exactly.

My Marketplace & e-commerce apps plans start from $2,500 for one marketplace with a simple dashboard or spreadsheet output. The Flexible plan, from $5,500, covers two or more channels with stock and orders kept in sync and a dashboard for orders, stock and sales. Advanced, from $9,500, adds accounts for your team with analytics. These are starting prices; every project gets a fixed quote after a short brief, and the code and accounts stay in your name. More about this work on my e-commerce automation page.

FAQ

Which numbers should a multichannel sales dashboard show first?

Start with net sales, net after fees, units and stock cover for each channel and in total, plus ad spend with ACOS and TACOS if you advertise. Those answer the daily questions: what sold, what each channel left you, and what is about to run out. Add cost of goods once your landed costs are reliable, and keep everything else in drill-downs so the first page stays readable.

Can I build a sales dashboard in Data Studio (Looker Studio) for free?

Yes. Data Studio, called Looker Studio until April 2026, is free, and it reads Google Sheets directly. The work is getting clean data into the sheet: either a scheduled script that calls each platform's API, or a paid third-party connector. That suits a small catalogue on a few channels. As history and team size grow, a database underneath, or a custom dashboard, becomes easier to live with.

How often should a sales dashboard refresh?

For most sellers, orders every 15 to 60 minutes, stock hourly, and fees and ad spend once a day is plenty. Some figures arrive late, such as Amazon's financial events, which might not include orders from the last 48 hours, so re-pull recent days on every run instead of only fetching yesterday. Real-time updates add cost and rarely change a decision, unless you run flash sales or very tight stock. Always show when each source last updated.

If you want one screen instead of four tabs, send me a short brief: which channels you sell on, roughly how many orders a day and how many SKUs, where your product costs live and who will use the dashboard. For the wider picture, start with e-commerce automation: what to automate first.