Skip to Content
FinancialStatistics & Metrics

Statistics and Metrics page

The Statistics and Metrics page is a reporting workspace where a user can analyze sales, advertising, refunds, fees, inventory, and profitability over time.

It is designed for two things:

  1. Exploration (filter, group, compare periods).
  2. Extraction (copy-like table behavior and Excel export).

Access is restricted by the permission Marketing, Statistics and Metrics Dashboard.


What the user sees

Header controls (filters and view)

At the top of the page, the user can control what data is shown:

  • Date range: choose the start and end date for the report.
  • Granularity: choose how time is bucketed:
    • Daily
    • Weekly
    • Monthly
    • Quarterly
    • Yearly
  • Marketplace: choose which Amazon marketplace data to use.
  • Products: include all products or limit the report to selected products.
  • Grouping: view by:
    • ASIN (each product shown individually)
    • Parent (products grouped under a parent, with expandable children)
  • View:
    • Table view (spreadsheet-style)
    • Chart view (visualization based on the same filtered dataset)
  • Calculation settings:
    • Promo included in Ads Spend
    • Attribution window (1, 7, or 14 days)

Table view (main reporting grid)

How the grid is organized

  • Columns are time buckets (based on the chosen date range and granularity).
  • Rows are metrics (Sales, Ad Spend, Refunds, Profit, and so on).
  • Many metric rows can be expanded to show the same metric broken down by product.
  • If grouping is set to Parent, parent rows can be expanded into child product rows.

Spreadsheet-like behaviors (what the user can do)

The table behaves like a lightweight spreadsheet:

  • Pin the Metrics column (keep the left metric names visible while scrolling horizontally).
  • Expand and collapse metric breakdowns.
  • Collapse all expansions in one action.
  • Select cells in a grid-like way (multi-cell selection behavior).
  • Reset filters back to defaults (date range, granularity, selected products, and other table states).
  • Export to Excel to download the visible dataset and metric layout.

Chart view (visual analysis)

There are two chart experiences:

  1. Page-level Chart view
    The page switches from Table to Chart and focuses on the visualization area.

  2. Chart dialog (modal)
    A dedicated chart configuration dialog typically lets the user:

    • Choose which metrics appear in the chart
    • Apply presets (for example, an account overview or refunds overview)
    • Stack series
    • Show value labels
    • Download the chart as an image

Charts always reflect the same filters as the table (date range, granularity, marketplace, products, grouping, and settings).


Filters and settings, and what changes when you touch them

Date range

What it changes:

  • The set of time buckets shown as columns.
  • Every metric value (all aggregations re-run for the new range).

Important behavior:

  • Future dates are not allowed.
  • “Today” may be disabled in the date picker.
  • The backend typically treats the selected range as full-day boundaries in UTC:
    • Start at 00:00:00.000 UTC
    • End at 23:59:59.999 UTC

Granularity

What it changes:

  • The number of columns (more buckets for daily, fewer for yearly).
  • Any metric that depends on “days in period” or uses a fixed day constant (notably Sales Velocity and DIO).

Some granularity options may be disabled for certain date spans, but the exact rules are not confirmed from the provided snapshot.

Products

What it changes:

  • Which product rows exist.
  • Totals across products.
  • All derived metrics that depend on those totals (ACOS, tACOS, profit, payout, ratios).

Marketplace

What it changes:

  • The underlying dataset (sales, ads, fees, refunds) because everything is marketplace-scoped.
  • Currency handling if the report supports selecting a currency.

Grouping (ASIN vs Parent)

What it changes:

  • ASIN: flat list of products.
  • Parent: hierarchical view with expandable parent rows and child products.
  • Parent totals are computed from child values.

Promo included in Ads Spend

What it changes:

  • Advertising spend used in efficiency metrics.
  • As a result, these metrics change:
    • Total Spent on Ads
    • ACOS
    • tACOS
    • CPI (as implemented here)
    • Any metric derived from ad spend

High-level rule:

  • When enabled, promo discounts are added into the ad-spend cost base.

Attribution window (1, 7, 14 days)

What it changes:

  • Intended to change how “sales attributed to ads” is counted, depending on the chosen attribution window.

The exact mapping from the selected window to specific attribution fields is not confirmed from the provided snapshot.


Sign conventions (important for understanding the numbers)

Many “cost” components are stored as negative values in the report model. For example:

  • Advertising spend can be negative.
  • Promo discounts can be negative.
  • Refund money can be negative.
  • Cost of goods sold (COGS) can be negative.

Because of that, ratios often use absolute values to avoid sign confusion.

When you see a formula using an absolute value like AdSpend|\text{AdSpend}|, that is intentional.


Metrics and formulas (by category)

Notation used below:

  • qq = total units sold (Total Sales quantity)
  • AqA_q = ad-attributed units
  • OqO_q = organic units
  • RR = total sales revenue (money)
  • ARA_R = ad-attributed revenue (money)
  • ORO_R = organic revenue (money)
  • RefundR\text{Refund}_R = refunded money
  • Refundq\text{Refund}_q = refunded units
  • AdSpend\text{AdSpend} = advertising spend (optionally includes promo)
  • Promo\text{Promo} = promotional discounts
  • Fees\text{Fees} = referral and fulfillment fees (combined)
  • OtherFees\text{OtherFees} = warehouse or other fee bucket used in payout and profit
  • Reimb\text{Reimb} = reimbursement provision (adjustments)
  • COGS\text{COGS} = cost of goods sold (money)
  • Invq\text{Inv}_q = inventory balance (units)
  • InvR\text{Inv}_R = inventory balance money
  • Days\text{Days} = days used for a period when computing velocity

Where parent grouping exists:

  • Parent values are derived from child values (sum for additive metrics, min or max for price metrics).

Quantity metrics

Total Sales (units)

  • Leaf (per product): qq
  • Parent: qparent=qchildq_{\text{parent}} = \sum q_{\text{child}}

Ad Sales (units)

  • Leaf: AqA_q
  • Parent: Aq,parent=Aq,childA_{q,\text{parent}} = \sum A_{q,\text{child}}

Organic Sales (units)

Oq=qAqO_q = q - A_q

Money metrics

Total Sales Money (revenue)

  • Leaf: RR
  • Parent: Rparent=RchildR_{\text{parent}} = \sum R_{\text{child}}

Ad Sales Money (ad-attributed revenue)

  • Leaf: ARA_R
  • Parent: AR,parent=AR,childA_{R,\text{parent}} = \sum A_{R,\text{child}}

Organic Sales Money

OR=RARO_R = R - A_R

Total Refunds Money

Refund money is typically represented as a negative value in the model. Conceptually:

RefundR0\text{Refund}_R \le 0

Marketplace costs

Total Refunds (units)

  • Leaf: Refundq\text{Refund}_q
  • Parent: Refundq,parent=Refundq,child\text{Refund}_{q,\text{parent}} = \sum \text{Refund}_{q,\text{child}}

Referral and Fulfillment Fee (combined)

This row represents a combined fee bucket (referral plus fulfillment-per-unit fee).

  • Leaf: Fees\text{Fees}
  • Parent: Feesparent=Feeschild\text{Fees}_{\text{parent}} = \sum \text{Fees}_{\text{child}}

Warehouse Fee (also treated as “Other fees”)

  • Leaf: OtherFees\text{OtherFees}
  • Parent: OtherFeesparent=OtherFeeschild\text{OtherFees}_{\text{parent}} = \sum \text{OtherFees}_{\text{child}}

The precise composition of this bucket is not confirmed from the provided snapshot.

Reimburse Provision (adjustments)

  • Leaf: Reimb\text{Reimb}
  • Parent: Reimbparent=Reimbchild\text{Reimb}_{\text{parent}} = \sum \text{Reimb}_{\text{child}}

Advertising metrics

Total Spent on Ads

Advertising spend is typically stored as a negative value in the model. Conceptually:

AdSpend0\text{AdSpend} \le 0

If “Promo included in Ads Spend” is enabled, the report uses:

AdSpendeffective=AdSpend+Promo\text{AdSpend}_{\text{effective}} = \text{AdSpend} + \text{Promo}

If disabled:

AdSpendeffective=AdSpend\text{AdSpend}_{\text{effective}} = \text{AdSpend}

Spend by ad type (Sponsored Products, Brands, Brand Video, Display)

Each is a component of total ad spend. Conceptually:

AdSpend=AdSpendSP+AdSpendSB+AdSpendSBV+AdSpendSD\text{AdSpend} = \text{AdSpend}_{SP} + \text{AdSpend}_{SB} + \text{AdSpend}_{SBV} + \text{AdSpend}_{SD}

Exact inclusion depends on what data exists for the period.

Promotional Discounts

Promo is typically stored as negative in the model:

Promo0\text{Promo} \le 0

Efficiency and advertising metrics

ACOS (Advertising Cost of Sales)

Defined as ad spend divided by ad-attributed revenue:

ACOS={AdSpendeffectiveAR×100,AR>00,AR=0\text{ACOS} = \begin{cases} \frac{|\text{AdSpend}_{\text{effective}}|}{A_R} \times 100, & A_R > 0 \\ 0, & A_R = 0 \end{cases}

tACOS (Total Advertising Cost of Sales)

Defined as ad spend divided by total revenue:

tACOS={AdSpendeffectiveR×100,R>00,R=0\text{tACOS} = \begin{cases} \frac{|\text{AdSpend}_{\text{effective}}|}{R} \times 100, & R > 0 \\ 0, & R = 0 \end{cases}

CPI (as implemented in this report)

Despite the label that may suggest “cost per impression”, the implemented calculation here is cost per unit sold:

CPI={AdSpendeffectiveq,q>00,q=0\text{CPI} = \begin{cases} \frac{|\text{AdSpend}_{\text{effective}}|}{q}, & q > 0 \\ 0, & q = 0 \end{cases}

Performance metrics

Maximum Sales Price

  • Leaf: max\max observed unit price in the period
  • Parent: maximum across children

The exact method for computing max price is not confirmed from the provided snapshot.

Minimum Sales Price

  • Leaf: min\min observed unit price in the period
  • Parent: minimum across children

The exact method for computing min price is not confirmed from the provided snapshot.

Average Sale Price

AvgPrice={Rq,q>00,q=0\text{AvgPrice} = \begin{cases} \frac{R}{q}, & q > 0 \\ 0, & q = 0 \end{cases}

Sales Velocity (units per day)

Velocity=qmax(1,Days)\text{Velocity} = \frac{q}{\max(1, \text{Days})}

Where Days is derived from the period boundaries.

Note: Whether Days is counted as inclusive or exclusive depends on implementation details. The provided snapshot suggests a non-inclusive day difference, but the comment text may claim otherwise.

Inventory Balance (units)

Invq\text{Inv}_q

Parent is a sum of child balances.

Inventory may be forward-estimated if a later period lacks a snapshot:

Invq,new=max(Invq,prevqsold,0)\text{Inv}_{q,\text{new}} = \max(\text{Inv}_{q,\text{prev}} - q_{\text{sold}}, 0)

Inventory Balance Money

InvR=Invq×UnitCost\text{Inv}_R = \text{Inv}_q \times \text{UnitCost}

UnitCost is derived from COGS per unit.

Forward-estimation uses the same unit cost as the last known snapshot.

Operational Turnover Ratio

Computed using current and previous inventory balances:

AvgInvq=Invq,current+Invq,previous2\text{AvgInv}_q = \frac{\text{Inv}_{q,\text{current}} + \text{Inv}_{q,\text{previous}}}{2} OperTurnover={qAvgInvq×100,AvgInvq>00,AvgInvq=0\text{OperTurnover} = \begin{cases} \frac{|q|}{\text{AvgInv}_q} \times 100, & \text{AvgInv}_q > 0 \\ 0, & \text{AvgInv}_q = 0 \end{cases}

Financial Turnover Ratio

Uses COGS and inventory balance money:

AvgInvR=InvR,current+InvR,previous2\text{AvgInv}_R = \frac{\text{Inv}_{R,\text{current}} + \text{Inv}_{R,\text{previous}}}{2} FinTurnover={COGSAvgInvR×100,AvgInvR>00,AvgInvR=0\text{FinTurnover} = \begin{cases} \frac{|\text{COGS}|}{\text{AvgInv}_R} \times 100, & \text{AvgInv}_R > 0 \\ 0, & \text{AvgInv}_R = 0 \end{cases}

DIO (Days Inventory Outstanding)

DIO depends on granularity via a fixed day constant:

  • Weekly: 7
  • Monthly: 30
  • Quarterly: 90
  • Yearly: 365
  • Default: 30

Then:

DIO={DaysConstOperTurnover/100,OperTurnover>00,OperTurnover=0\text{DIO} = \begin{cases} \frac{\text{DaysConst}}{\text{OperTurnover}/100}, & \text{OperTurnover} > 0 \\ 0, & \text{OperTurnover} = 0 \end{cases}

Financial metrics

Payout

Payout is a computed “net” number built from revenue and multiple cost and adjustment buckets:

Payout=R+RefundR+Fees+OtherFees+Reimb+AdSpendeffective\text{Payout} = R + \text{Refund}_R + \text{Fees} + \text{OtherFees} + \text{Reimb} + \text{AdSpend}_{\text{effective}}

Because refunds and ad spend are often negative in the model, this formula naturally reduces payout.

Payout Per Piece

PayoutPerPiece={Payoutq,q>00,q=0\text{PayoutPerPiece} = \begin{cases} \frac{\text{Payout}}{q}, & q > 0 \\ 0, & q = 0 \end{cases}

Returned COG

Returned COG applies COGS per unit to sellable returns:

COGSPerUnit={COGSq,q>00,q=0\text{COGSPerUnit} = \begin{cases} \frac{\text{COGS}}{q}, & q > 0 \\ 0, & q = 0 \end{cases} ReturnedCOG=SellableReturnsq×COGSPerUnit\text{ReturnedCOG} = \text{SellableReturns}_q \times \text{COGSPerUnit}

The exact derivation of sellable returns quantity is not fully confirmed from the provided snapshot.

PNL (Profit and Loss style metric)

This is the core profit equation used by the report:

PNL=R+ReturnedCOG+AdSpendeffective+RefundR+COGS+Reimb+OtherFees+Fees\text{PNL} = R + \text{ReturnedCOG} + \text{AdSpend}_{\text{effective}} + \text{Refund}_R + \text{COGS} + \text{Reimb} + \text{OtherFees} + \text{Fees}

PNL Per Piece

PNLPerPiece={PNLq,q>00,q=0\text{PNLPerPiece} = \begin{cases} \frac{\text{PNL}}{q}, & q > 0 \\ 0, & q = 0 \end{cases}

Markup (percent)

First compute:

COGSPerUnit={COGSq,q>00,q=0\text{COGSPerUnit} = \begin{cases} \frac{\text{COGS}}{q}, & q > 0 \\ 0, & q = 0 \end{cases}

Then:

Markup={AvgPrice+COGSPerUnitCOGSPerUnit×100,COGSPerUnit00,COGSPerUnit=0\text{Markup} = \begin{cases} \frac{\text{AvgPrice} + \text{COGSPerUnit}}{|\text{COGSPerUnit}|} \times 100, & \text{COGSPerUnit} \ne 0 \\ 0, & \text{COGSPerUnit} = 0 \end{cases}

Margin Per Piece (percent)

MarginPerPiece={PNLPerPieceAvgPrice×100,AvgPrice>00,AvgPrice=0\text{MarginPerPiece} = \begin{cases} \frac{\text{PNLPerPiece}}{\text{AvgPrice}} \times 100, & \text{AvgPrice} > 0 \\ 0, & \text{AvgPrice} = 0 \end{cases}

Fees and Adjustments (dynamic category)

The UI can add an extra category called “Fees and Adjustments” if the backend returns additional fee-like metric keys that are not part of the standard known set.

What the user sees:

  • New rows appear under “Fees and Adjustments” automatically when those extra fields exist.
  • Names may be mapped into friendly labels for display and export.

The list of possible dynamic fee keys is not confirmed from the provided snapshot.


Granularity effects that materially change results

1) Column count and period boundaries

Granularity changes how the overall date range is sliced into buckets. Each bucket becomes a column.

2) Sales Velocity changes with bucket length

Velocity depends on Days. Different bucket boundaries change Days and therefore change velocity even if total units sold stays similar.

3) DIO changes because it uses a fixed constant

DIO uses fixed day constants (7/30/90/365), not the actual day count of each bucket.


What the user can do on this page

Switch between Table and Chart

  • Use the view toggle to move between spreadsheet analysis and visualization.

Filter the dataset

  • Marketplace
  • Date range
  • Granularity
  • Products
  • Grouping (ASIN or Parent)

Change calculation behavior

  • Include or exclude promo discounts inside ad spend.
  • Select attribution window (1, 7, 14 days).

Work in the table

  • Pin the Metrics column
  • Expand metric breakdowns
  • Expand parent products to child products (in Parent grouping)
  • Select cells like a spreadsheet
  • Collapse all expansions
  • Reset filters to defaults

Customize which metrics appear

  • Reorder metrics
  • Show or hide metrics
  • Save preferences
  • Reset preferences to defaults

Export and share

  • Export to Excel with correct formatting per metric type (currency, percent, counts).
Last updated on