← Back to skumetrica.com

Reference

Settings

What one unit costs you landed, and what each product has to earn for the business to be worth running — the two figures nobody hands you. Amazon's own reports never carry either one, so every margin, every Contribution verdict and the ACoS target on Advertising are only as true as what is typed in here. Leave this page blank and the app can still say a number is positive; it can never say it is enough.

Avg selling price

What this product has actually been selling for — priced revenue divided by units that carried a price, converted to USD, the same arithmetic the rest of the dashboard uses for it.

Good: Not something to change — a reference point shown beside the boxes you actually fill in, so a unit cost or a required-profit figure can be checked against what the product genuinely sells for rather than typed in from memory.

From: the SKU query in public/settings.php: SUM((item_price − item_promo_discount) × fx rate) over SOLD_UNITS, per SKU — the same asp arithmetic as sales_totals()['asp'] in public/inc/metrics.php.

Currency

The three-letter currency code the row is about — a currency this account's orders are actually priced in, on the exchange-rate table, or the currency a still-unauthorised marketplace bills in, on the pending-marketplaces table.

Good: Not a figure. On the exchange-rate table it says which row's Rate to USD needs a value; on the marketplaces table it says what money to expect from that storefront once it is connected.

From: currencies_in_use() in public/inc/db.php for the exchange-rate table, and the catalogue's own currency for the pending-marketplaces one.

Duty

Import duty paid to land one unit — one of the three boxes that add up to Landed.

Good: A box you fill in, not a figure the app computes. Left blank it is zero, which understates Landed for anything that actually crosses a border and pays duty on the way in.

From: the cogs table's duty_per_unit column, written by the 'cogs' form handler in public/settings.php and read back via cogs_in_force() in public/inc/metrics.php.

Finished

When this ingest job completed.

Good: Not a figure to judge — a timestamp, useful for seeing how recently this account's data was last refreshed.

From: ingest_jobs.completed_at, in the "Recent ingest activity" query in public/settings.php.

Freight

Shipping cost to land one unit — one of the three boxes that add up to Landed, and the reason marketplaces are costed separately: freight into a British fulfilment centre and an Ontario one are rarely the same number.

Good: A box you fill in. Left blank it is zero, which understates Landed for anything shipped a real distance to reach the shelf it sold from.

From: the cogs table's freight_per_unit column, written by the 'cogs' form handler in public/settings.php.

From

The date this historical cost period took effect.

Good: Not a figure — a boundary. A cost applies from this date onwards only, so a margin reported for a month before it never used this row.

From: cogs.effective_from, in cogs_history() in public/inc/metrics.php.

Implied gross margin

What percentage of the average selling price is left once the landed unit cost just entered is subtracted — a check on that cost, not a dashboard figure in its own right.

Good: This table colours it green at 60% or above, amber from 35% up to 60%, red below — a rough sanity check on the cost itself: a margin that looks too good to be true is usually a cost typed wrong, not a great product. Shown as a dash until a landed cost exists for that SKU.

From: computed in public/settings.php: (avg selling price − landed) ÷ avg selling price × 100.

Job

Which Amazon report this ingest job pulled, with a status pill — done in green, otherwise red — beside it.

Good: Not a figure — a label for the row.

From: ingest_jobs.dataset and .status, in the "Recent ingest activity" query in public/settings.php.

Landed

What one unit cost to reach the shelf it sold from — unit cost, freight and duty added together. This is the figure every profit and Contribution page on the dashboard actually subtracts.

Good: Shown as a dash rather than zero until at least one of the three boxes on that row holds something — an uncosted product is left out of profit rather than treated as free. In the cost-history table, the same figure as it stood in an earlier period, in that period's own currency.

From: cogs_landed() in public/inc/metrics.php: unit_cost + freight_per_unit + duty_per_unit, read via cogs_in_force() and cogs_history().

Last changed

When this currency's exchange rate was last updated.

Good: Not a figure to judge — but a currency reading "Not set" here, in red, is the one to act on: the warning banner beneath the table names it and says every blended total involving it is currently wrong.

From: fx_rates.updated_at, in currencies_in_use() in public/inc/db.php — shown as "by definition" for USD, which needs no row.

Marketplace

The Amazon storefront this row is about.

Good: Not a figure — an identifier for the row.

From: tenant_marketplaces.name, in pending_marketplaces() in public/inc/db.php.

Measured as

Which of two ways this product's required profit is stated — a percentage of what it sells for, or a fixed amount per unit.

Good: Not itself a figure to judge — it decides how Must earn is read. A percentage scales with price; a fixed amount does not, which matters for a product whose price moves.

From: profit_targets.basis, read via profit_targets() in public/inc/metrics.php and set by this row's own select.

Must earn

The bar this product — or, on the default row, every product with no target of its own — has to clear. Rent, wages, software and the owner's own hours are not in Amazon's fees and are not in the landed cost, so this is the business's own statement of what a sale has to leave behind to be worth making.

Good: This is an input, not a computed figure — get it wrong and every verdict built on it is wrong too: Against target on the Contribution page, and the target ACoS on Advertising, are both measured against whatever is typed here. A value of zero clears the target rather than setting a bar at nothing — a bar at zero would report everything as passing.

From: profit_targets.value, written by the 'targets' form handler in public/settings.php and read via profit_targets() in public/inc/metrics.php.

Product

The listing this row is about.

Good: Not a figure.

From: the product catalogue, joined by SKU, in the unit-cost and required-profit tables in public/settings.php.

Rate to USD

How many US dollars one unit of this currency converts to — the rate every blended figure on the dashboard uses to add a foreign-currency order into a USD total.

Good: A box you fill in, not a figure the app computes. Left unset, that currency's amounts are added to USD totals unconverted (1:1), which overstates a currency worth less than a dollar and understates one worth more — the warning banner beneath the table names exactly which currencies that affects.

From: fx_rates.rate_to_usd, written by the 'fx' form handler in public/settings.php and read via fx_rates() in public/inc/db.php.

Region

Which of Amazon's three SP-API regions (North America, Europe, Far East) this storefront authorises through.

Good: Not a figure — it explains why a marketplace is listed as awaiting authorisation: a refresh token issued for one region is rejected by another, so this storefront needs its own connection even where others already work.

From: the marketplace catalogue's region, shown in pending_marketplaces() in public/inc/db.php.

Rows

How many rows of data this ingest job loaded.

Good: Not a target — a count, useful for spotting a job that finished with suspiciously few rows for what it was pulling.

From: ingest_jobs.rows_loaded, in the "Recent ingest activity" query in public/settings.php.

SKU

Which product this historical cost period belongs to.

Good: Not a figure — an identifier, in the record of past cost periods kept so a mistyped cost can be found and corrected.

From: cogs.sku, in cogs_history() in public/inc/metrics.php.

Status

Whether this marketplace's SP-API authorisation has gone through.

Good: Every row in this table reads "Not authorised" by definition — it only ever lists marketplaces still waiting. Once authorised, a marketplace leaves this table for the ones the dashboard actually reports on.

From: computed in public/settings.php: every row shown here is, by construction, one pending_marketplaces() returned.

Unit

The unit-cost component alone, as it was originally entered for that historical period — not including freight or duty.

Good: Read beside Landed on the same row for the full picture; Unit by itself is only the purchase price.

From: cogs.unit_cost, in cogs_history() in public/inc/metrics.php, shown as entered, in that period's own currency.

Unit cost

What you paid to acquire one unit — before freight or duty — the first of the three boxes that add up to Landed.

Good: A box you fill in. Left blank alongside freight and duty, no Landed cost is recorded for that SKU, and it is left out of profit rather than costed at zero.

From: the cogs table's unit_cost column, written by the 'cogs' form handler in public/settings.php.

Units sold

How many units of this product have sold, across its whole history — not filtered to any date range, since this page carries none.

Good: Context for the cost you are about to enter, not a figure to judge on its own.

From: SUM(orders.quantity) in the SKU query in public/settings.php, unfiltered by date.

Which is, per unit

What the required-profit rule above actually comes to in dollars for this product, at what it actually sells for — the percentage made concrete.

Good: A percentage is easy to state and hard to picture; this is the number a seller actually has to judge as reasonable or not for this product. Shown as a dash where the rule cannot be resolved — a percentage target with no known selling price, for instance.

From: target_per_unit() in public/inc/metrics.php, applied per row in public/settings.php.

← Back to the course map