Skip to content
BrizoMarket

How to Build a SKU-Level Cost Card That Captures Every Variable Cost Before You Set a Selling Price

How to Build a SKU-Level Cost Card That Captures Every Variable Cost Before You Set a Selling Price - Hero (1200x628)

Most e-commerce businesses set prices based on intuition, competitor benchmarking or a rough cost-plus calculation. The result is a margin structure that looks healthy at the revenue line but erodes quietly through fulfilment fees, platform commissions, payment charges and return costs that were never properly accounted for. A SKU-level cost card solves this by forcing you to document every variable cost attached to a single unit before you decide what to charge for it.

This article walks through how to build a cost card from scratch, which cost categories to include, how the numbers change across channels like Shopify, Shopee, Lazada and TikTok Shop, and how to use the finished card to set prices that protect your actual margin.

What a SKU-Level Cost Card Actually Is

A cost card is a structured document — usually a spreadsheet row or a product record in your analytics tool — that lists every cost incurred when a single unit of a specific SKU is sold. It is not a summary of total product costs. It is a per-unit breakdown that captures cost of goods, every operational charge and every channel-specific fee, expressed in the same currency so you can read off the contribution margin directly.

The goal is simple: before you finalise a selling price on any channel, you should be able to see — in one place — what it actually costs you to put that unit in a customer’s hands and collect the revenue. The cost card is that one place.

A well-built cost card turns pricing from a guessing exercise into a structured decision. If the card shows a contribution margin of 8% at your current selling price, you know immediately that a 5% promotional discount wipes out almost all of your profit on that SKU.

The Seven Cost Categories Every Card Must Include

Variable costs sit in predictable buckets. Build your cost card template around these seven categories and you will capture the vast majority of unit-level costs across any sales channel.

  1. Cost of Goods Sold (COGS): The landed cost of the product — factory price, freight, import duties and any quality inspection costs, divided by units received.
  2. Packaging and Labelling: The physical packaging material, inserts, branded tissue, labels and any assembly cost per unit.
  3. Fulfilment and Warehousing: Pick, pack and despatch labour, or third-party logistics (3PL) fees charged per order or per unit. Include inbound storage costs allocated per SKU.
  4. Outbound Shipping: The carrier cost charged per shipment. Where you offer free shipping, this is a cost to the business. Where you charge shipping, include only the net cost you absorb.
  5. Platform Commission and Transaction Fees: Every marketplace takes a percentage of the sale. Shopee and Lazada charge seller commissions that vary by category. TikTok Shop charges a commission on GMV. Shopify charges no commission but does charge a payment processing fee, typically around 1.5–3% depending on the payment gateway, region and plan.
  6. Advertising and Promotions Allocated Per Unit: If you run sponsored listings or paid social to drive sales, you can express this as a cost-per-unit sold by dividing your channel ad spend by units sold in that period. This is the most commonly omitted variable cost.
  7. Returns and Reverse Logistics: Not every unit sold stays sold. Include a returns allowance — calculated from your actual return rate — expressed as a per-unit cost. A 5% return rate on a product with a $4 reverse logistics cost adds $0.20 to every unit’s cost structure.
How to Build a SKU-Level Cost Card That Captures Every Variable Cost Before You Set a Selling Price - First Section (1200x480)

Building the Cost Card: A Worked Example

Let us work through a realistic example. You sell a skincare serum — SKU: SERUM-30ML — across three channels: Shopify (direct), Lazada and TikTok Shop. The selling price is $38.00 on all three channels. Here is how the cost card looks per channel.

Cost LineShopifyLazadaTikTok Shop
Selling Price$38.00$38.00$38.00
COGS (landed)$7.50$7.50$7.50
Packaging$1.20$1.20$1.20
Fulfilment / 3PL$2.80$2.80$2.80
Outbound Shipping$3.50$0.00 (absorbed by platform)$1.50
Platform Commission$0.00$3.04 (8% of GMV)$2.28 (6% of GMV)
Payment Processing$0.76 (2%)$0.00$0.00
Ad Cost per Unit$4.20$3.60$5.10
Returns Allowance$0.38 (3% rate)$0.76 (6% rate)$1.14 (9% rate)
Total Variable Costs$20.34$18.90$21.52
Contribution Margin $$17.66$19.10$16.48
Contribution Margin %46.5%50.3%43.4%

Notice what the cost card reveals that a simple COGS-plus-shipping calculation would not. TikTok Shop, despite having a lower commission rate than Lazada, delivers the weakest contribution margin on this SKU — because the ad cost per unit is highest and the return rate is worst. Lazada, often dismissed as a lower-margin channel, actually delivers the strongest margin here once platform shipping subsidies and a lower advertising cost per unit are factored in.

This is the kind of channel-level insight that only surfaces when you do the work at SKU level. Revenue and gross profit by channel at an aggregate level will not show it.

How to Calculate Your Ad Cost Per Unit Sold

Advertising is the variable cost most commonly left off cost cards, or treated as a fixed overhead rather than a per-unit expense. For any channel where you run paid traffic — Lazada Sponsored Solutions, TikTok Shop ads, Shopify-connected Meta or Google campaigns — you need to allocate that spend back to the units it generated.

Total ad spend on SKU SERUM-30ML via TikTok Shop (last 30 days)$1,530.00
Units sold via TikTok Shop (last 30 days)300 units
Ad Cost Per Unit Sold$5.10 per unit

This figure should be recalculated monthly, or whenever you run a campaign with significantly different creative, targeting or bid settings. A campaign that drives a higher conversion rate will reduce your cost per unit sold. A low-performing campaign will inflate it. Using a stale figure in your cost card gives you false confidence in your margins.

Do not use ROAS alone to judge channel profitability. A ROAS of 4x on TikTok Shop sounds strong, but since a 4x ROAS accounts for 25 cents of ad spend for every dollar of revenue, if your other variable costs consume 68 cents of every dollar, that 4x ROAS leaves you with a single-digit contribution margin of just 7% after all costs are counted. Always tie your ad performance metrics back to contribution margin at SKU level.

Handling Returns in Your Cost Card

Returns are a probabilistic cost. You do not know which specific units will be returned, but you know that some percentage will be. The correct way to handle this in a cost card is to calculate an average return cost per unit sold across a rolling period — typically 90 days — and add it as a line item.

The return cost should include the reverse logistics charge (carrier collection or postage label), any restocking or inspection labour, and any units that cannot be resold and must be written off. If your return rate on a marketplace is 9% and your average total reverse cost per return is $6.00, then your returns allowance per unit sold is $0.54 (9% × $6.00). Platforms with high return rates — and TikTok Shop’s entertainment-led purchase behaviour can produce elevated return rates on certain product categories — can make what looks like a profitable SKU structurally unprofitable once returns are properly costed.

How to Build a SKU-Level Cost Card That Captures Every Variable Cost Before You Set a Selling Price - Second Section (1200x480)

Using the Cost Card to Set Minimum Viable Selling Prices

Once your cost card is built, you can run it in reverse. Instead of starting with a price and calculating the margin, you start with a target margin and calculate the minimum price needed to achieve it. This is particularly valuable when deciding whether to participate in a platform promotion, accept a lower listing price during a campaign period, or enter a new channel.

Say your business requires a minimum 40% contribution margin to cover fixed overheads and remain profitable. You are considering listing SERUM-30ML on Shopee. You estimate the Shopee cost structure as: COGS $7.50, packaging $1.20, fulfilment $2.80, platform commission 9%, estimated ad cost per unit $4.00, returns allowance $0.60, and the platform absorbs shipping on orders above a threshold. Your flat variable costs per unit are $16.10 plus 9% of the selling price.

To solve for the minimum price: if P is the selling price, then P × (1 – 0.09) – $16.10 ≥ 0.40 × P. Solving: 0.91P – $16.10 ≥ 0.40P, so 0.51P ≥ $16.10, giving P ≥ $31.57. You need to price at a minimum of $31.57 on Shopee to hit your 40% contribution margin threshold. If competitive pricing on Shopee for this category sits below $30.00, the channel is not viable at your current cost structure without reducing COGS or cutting ad spend.

Maintaining Cost Cards as Costs Change

A cost card is only useful if it reflects current costs. Build a review schedule into your operations calendar. Review COGS whenever you reorder from suppliers, since raw material prices and freight costs shift. Review platform commissions quarterly — marketplaces do adjust their fee structures. Review ad costs per unit monthly since campaign performance changes constantly.

The most practical approach for businesses managing a large catalogue is to build cost card templates by product category, where cost structures are similar, and then maintain SKU-level overrides for products with meaningfully different return rates, ad performance or fulfilment requirements.

Tools like BrizoMarket can help here by pulling in channel sales data alongside your cost inputs to calculate contribution margin at SKU and channel level without requiring manual aggregation across multiple platform reports. For businesses operating across Shopify, Shopee, Lazada and TikTok Shop simultaneously, reducing the manual work of maintaining accurate cost cards is often where the most practical efficiency gain lies.

Common Mistakes That Undermine Your Cost Card

  • Using supplier invoice price as COGS instead of fully landed cost including freight and duties.
  • Allocating ad spend at brand or campaign level rather than SKU level, which masks which products are actually consuming budget.
  • Ignoring platform-specific return rates and using a single blended return rate across all channels.
  • Treating platform voucher subsidies and campaign discounts as revenue items rather than subtracting them from net revenue before calculating margin.
  • Failing to update the cost card after currency movements affect your import costs.
  • Using gross margin (revenue minus COGS only) as a proxy for contribution margin and omitting all the operational and channel costs that sit between the two.

The Takeaway

A SKU-level cost card is the financial foundation of a properly run multi-channel e-commerce business. Without it, pricing decisions are made on incomplete information, promotional discounts are approved without understanding their margin impact, and entire channels appear profitable at an aggregate level while quietly destroying value at the product level.

Build the cost card before you list, update it as costs change, and use it to set prices that reflect the real cost of selling — not just the cost of making. The discipline of completing a cost card for every significant SKU will surface more actionable financial insight than almost any dashboard report you can pull from your marketplace back-end.

See Your Real Margin Across Every Channel

BrizoMarket brings together your sales data from Shopify, Shopee, Lazada and TikTok Shop alongside your cost inputs, so you can see SKU-level contribution margin without building everything manually in spreadsheets.

See how we can help