Ecommerce COGS: product cost at the right time

Purchase cost needs a SKU, currency and effective period. Missing cost is a coverage gap, not zero.

From purchase to sale-time COGS

  1. 01

    SKU

    A stable identifier connects the sales line with product cost.

  2. 02

    Cost period

    Cost has currency and an effective date instead of overwriting history.

  3. 03

    Validation

    Unknown SKUs and conflicts require a decision before saving.

  4. 04

    Coverage

    Missing COGS remains a visible gap in product contribution.

Why a current purchase price distorts history

Purchase price can change across deliveries, currencies and SKU variants. Using today’s cost for historical sales can reverse the conclusion about margin.

COGS needs an SKU assignment, source currency and effective period. If those are missing, a result should show the gap rather than invent cost.

  • stable SKU or controlled mapping
  • net cost and source currency
  • effective date or delivery relation
  • import or integration source

Validate before saving

Before import, review unknown SKUs, cost conflicts and currency format. Do not rewrite all historical values with one current price.

After saving, inspect cost coverage: how many sales have assigned COGS and how many still lack evidence. That matters more than the number of rows added.

What can change after adding COGS

Adding historical cost can lower product and campaign contribution. That is a correction in result quality, not automatically a sales error.

When comparing periods, check coverage on both sides. Partial data is useful for locating work, but not for declaring complete profitability.

Check this area using your own data

Create an account, connect a supported source or use a controlled import.

Start analysis