Working with the dashboard¶
The dashboard has ten sections. This page explains what each one is measuring and, where the distinction matters, what it is not measuring.
Reading the KPI tiles¶
The tiles across the top cover the last 30 days and compare against the 30 days before that. The percentage under each figure is that comparison, not growth against the same period last year.
Two of these numbers are easy to confuse:
Revenue is what the buyer paid, before the marketplace takes anything.
Profit is revenue after commission and logistics, minus the cost price of the units sold. If you have not entered cost prices, this equals net revenue and is therefore overstated, in most cases substantially.
Margin is net revenue over revenue. It deliberately ignores cost price, so it tells you what share of the sale price the marketplace left you, and it stays meaningful even before you fill in your costs.
Finance¶
Revenue and profit over time, broken down by platform, at daily, weekly, monthly and quarterly granularity.
The monthly view returns at most 24 months and the quarterly view at most 20 quarters. Both are ordered oldest first, so on a long-running installation the most recent period is at the end of the series.
Products¶
Per-SKU profitability: units sold, revenue, what commission and logistics took, gross profit and ROI.
ROI is gross profit divided by the money you spent on goods, so it is undefined for any product with no cost price recorded. Those rows show a blank rather than a zero, which is the honest representation but does mean sorting by ROI hides them at the bottom.
Inventory¶
Stock on hand per SKU, with a status derived from your recent sales rate rather than from a fixed quantity threshold.
| Status | Meaning |
|---|---|
| Urgent | Stock will run out sooner than a reorder can realistically arrive |
| Reorder | Enough for now, but ordering should start |
| OK | No action needed |
Days of stock is current quantity divided by average daily sales. A product that sold nothing recently has no meaningful average, so its days-of-stock is blank and it sorts last. That is correct behaviour and not a gap in the data: a product with no sales is not at risk of running out.
Listings¶
Impressions, clicks, cart adds and orders per listing, with click-through and conversion rates.
The funnel view only includes SKUs with more than 100 impressions in the selected period, and returns at most 100 rows. The threshold exists because conversion rates computed on a handful of impressions swing wildly and crowd out the listings you can actually act on. A new product will therefore be missing from this section for its first few days.
Wildberries vs Ozon¶
The same volume of sales across the two platforms, with commission and logistics shown both in absolute terms and as a share of revenue. The percentage columns are the useful ones: absolute deductions naturally track wherever you sell more.
Trends¶
Week-on-week change per platform, calculated with a window function over the weekly series. The first week in the range has no preceding week and shows a blank rather than a zero.
Period comparison¶
The selected window against the window immediately before it, per platform. Choosing 30 days compares the last 30 days with the 30 before that. This is the same comparison as the KPI tiles, broken out by platform and with commission and logistics included.
Top and flop¶
Best and worst performers, ranked by profit, revenue or units, plus an ABC breakdown that assigns each product to a class by its cumulative contribution to profit.
Categories¶
Revenue and profit grouped by product category. Products with no category set are grouped together rather than dropped, so the totals across this section still reconcile with the finance figures.
Seasonality¶
Average revenue and units by day of the week, over the last 90 days.
This window is fixed. Changing the period selector elsewhere on the dashboard does not affect it, which is worth knowing before you go looking for a bug.
Exporting¶
Every section has a CSV export. Files are UTF-8 with a byte order mark, which is what makes Cyrillic text open correctly in Excel by double-click instead of arriving as mojibake. The trade-off is that some strict CSV parsers treat that mark as part of the first column name, so if you are feeding an export into a script rather than a spreadsheet, strip it.
Refreshing the data on demand¶
Data syncs automatically at 06:00. The Sync button runs the same import immediately.
The request returns as soon as the job starts, not when it finishes, and the status indicator polls for progress. A second request while one is already running is rejected rather than queued. The job is abandoned after 15 minutes, so a very large historical import is better run from the command line, where nothing times it out.