Most ecommerce operators know their top-line revenue and blended gross margin. Very few know which SKUs are actually making money after factoring in fulfillment costs, return rates, and the marketing spend required to move each unit. That gap is where margin leaks without anyone noticing.
This template gives you the structure to track every cost layer at the SKU level — from landed COGS to reverse logistics — and classify your catalog into profitability tiers so you know exactly which products to protect, optimize, or cut. It works in a spreadsheet (Excel or Google Sheets) with no custom software required.
Why Per-SKU Profitability Is Not the Same as Gross Margin
Gross margin subtracts the cost of goods sold from revenue. That's useful for income statements. It is not useful for product decisions, because it omits the variable costs that actually scale with each unit sold: outbound shipping, return processing, payment fees, and the marketing spend required to generate each sale.
A SKU with a 65% gross margin can produce negative contribution margin once you add $8 in outbound fulfillment, a 22% return rate adding $12 per return in processing costs, and $18 in attributed paid social spend. That's not a theoretical scenario — it describes a significant share of the catalog at most DTC brands running paid acquisition.
The research reflects this: the average ecommerce return rate sits at approximately 20.5% across categories, and each return generates $15–$25 in total cost beyond the revenue reversal, covering reverse shipping, inspection, restocking, and a write-off proportion for unsellable units. When those costs get averaged across the whole catalog instead of attributed to the specific SKUs that drive returns, high-return products appear more profitable than they are.
SKU-level contribution margin is the number that captures this accurately. It's what's left after every variable cost tied to that unit — not just what you paid your supplier for it.
The Template Structure
The tracker is organized across three sections: a SKU data table, a cost component breakdown, and a profitability classification output. Build each section in order, and the classification outputs will calculate automatically.
Section 1: SKU Data Fields
Each row in the tracker represents one active SKU. These are the columns to build before any cost math:
- SKU ID — Your internal identifier. If you have variant-level cost differences (size, color, bundle), give each variant its own row.
- Product Name — Human-readable label for filtering and presentation.
- Category / Product Line — Group for filtering and cross-category analysis.
- Channel — DTC website, Amazon, wholesale, retail. Costs and margins vary significantly by channel; track them separately if a SKU sells across multiple channels.
- Average Selling Price (ASP) — Use net revenue per unit: gross selling price minus average discount and minus the revenue impact of returns, expressed per unit sold. Formula:
= Gross Price × (1 − Discount Rate) × (1 − Return Rate) - Units Sold (Period) — Trailing 30, 60, or 90 days. Used to size the total margin impact of each SKU, not just the per-unit rate.
- Return Rate (%) — SKU-specific, not catalog average. Pull from your order management system. This is the single most variable input across your catalog.
Section 2: Cost Components
This section is the core of the tracker. Every column here represents a variable cost that should be attributed per unit sold — not allocated as a percentage of total revenue. Build each column separately so you can audit and update costs independently.
COGS: Landed Cost Per Unit
COGS here means fully loaded cost of goods — not just the invoice price from your supplier. Landed COGS should include:
- Supplier invoice cost — Per-unit cost from purchase orders, using your most recent pricing tier.
- Inbound freight and import duties — Allocate inbound shipping and tariff costs across units received. For most DTC brands importing from overseas manufacturers, this adds 8–18% on top of the supplier cost depending on product weight and origin country.
- Packaging materials — Boxes, inserts, poly bags, void fill. Often overlooked because it hits a different PO line, but it's real variable cost. Benchmarks: $0.40–$1.80 per order for standard DTC packaging.
- Quality inspection and defect rate — If you run third-party inspection or have a known defect/damage rate that writes off units, allocate that cost across sellable units.
Column formula: Landed COGS = Supplier Cost + (Inbound Freight / Units Received) + Packaging Cost Per Unit + Defect Allocation
Fulfillment Cost Per Unit
Fulfillment costs in 2026 break into three layers for most DTC brands:
- Pick and pack — 3PL pick-and-pack fees average $2.00–$5.00 per order for single-item orders. Multi-item orders add $0.50–$1.50 per additional unit. Self-fulfilled brands should model actual labor cost per pick.
- Outbound shipping — Carrier cost depends on weight, dimensions, and zone. A 1-lb parcel shipping ground within zone 3 costs roughly $6–$8. A 3-lb parcel shipping to zone 7 runs $14–$18. Use your actual carrier rate card, not a blended average — heavy SKUs are frequently subsidizing light ones in blended shipping assumptions.
- Storage cost allocation — If a SKU has slow velocity and sits in a 3PL warehouse, allocate monthly storage fees across units sold. Standard 3PL storage runs $20–$45 per pallet per month. Slow movers carry a disproportionate storage cost per unit sold.
Column formula: Fulfillment Cost = Pick/Pack Fee + Outbound Carrier Cost + Storage Allocation Per Unit
Returns Cost Allocation
Returns are a variable cost, but they're triggered by a subset of orders — the ones that come back. The correct way to model this is to express the per-unit return cost as a per-unit-sold allocation based on the SKU's return rate.
- Return shipping — Whether you offer prepaid return labels or deduct from refunds, reverse logistics costs $5–$15 per return depending on weight and carrier.
- Return processing labor — Inspection, repackaging, restock decision: $8–$15 per return at most 3PLs or in-house operations.
- Restocking and refurbishment — For items that can be resold, add $2–$10. For items that are unsellable (opened consumables, damaged goods), allocate the full COGS of written-off units across remaining sold units.
- Customer service cost — Estimated $2–$5 per return request.
Column formula: Return Cost Per Unit Sold = Return Rate × (Return Shipping + Processing + Restocking + CS Cost)
Example: A SKU with a 25% return rate and $30 in total per-return cost carries a $7.50 return allocation per unit sold — before you've lost the revenue on the returned unit itself.
Payment Processing Fees
This is often omitted because it looks small in isolation. At scale it's meaningful. Standard rates:
- Shopify Payments: 2.4–2.9% + $0.30 per transaction (depending on plan)
- PayPal: 3.49% + $0.49 for standard checkout
- Amazon FBA: 15% referral fee + $3.00–$8.00 fulfillment fee per unit (replaces outbound shipping cost for FBA inventory)
Column formula: Payment Fee = ASP × Payment Rate + Fixed Fee Per Transaction
Marketing Spend Attribution
This is where SKU-level profitability analysis gets most operators uncomfortable — because it requires attributing paid media spend to individual products rather than to the account as a whole. At a minimum, track two versions:
- CM1 (pre-marketing) — Contribution margin before any ad spend. This tells you whether the unit economics are sound independent of acquisition.
- CM2 (post-marketing) — CM1 minus the ad spend directly attributable to driving sales of this SKU.
For SKU-level ad spend attribution: pull spend by campaign or ad set from your ad platform, then allocate to SKU based on which product the campaign was promoting. For catalog ads or brand campaigns that drive multiple products, allocate proportionally by revenue contribution. This won't be perfect — it will be significantly more useful than ignoring it.
Benchmark: ad spend typically consumes 20–35% of DTC revenue for brands running paid acquisition. At a 3x blended ROAS, roughly one-third of every revenue dollar goes back to ad platforms. That cost is not evenly distributed across SKUs.
Column formula: Marketing Allocation Per Unit = (Ad Spend Attributed to SKU) / (Units Sold via Paid Channels)
Section 3: Contribution Margin Calculation
Once all cost columns are populated, the contribution margin calculations are straightforward:
CM1 (Gross Contribution — Pre-Marketing):
CM1 = ASP − Landed COGS − Fulfillment Cost − Return Allocation − Payment Fees
CM1 % = CM1 / ASP
For most DTC brands, CM1 should land at 45–65% of revenue. If it's below 40% before any marketing, you have either a COGS problem, a fulfillment cost problem, or a return rate problem — and the tracker tells you which.
CM2 (Full Contribution — Post-Marketing):
CM2 = CM1 − Marketing Allocation Per Unit
CM2 % = CM2 / ASP
Healthy CM2 benchmarks by vertical: beauty and personal care brands typically target 25–35% CM2; apparel brands often operate at 10–20% due to higher return rates and heavier fulfillment costs; supplements and consumables can reach 30–45% when return rates are low.
Total Margin Contribution (Period):
Total Contribution = CM2 Per Unit × Units Sold
This column is what determines which SKUs actually matter. A SKU with a 40% CM2 on 50 units/month contributes less absolute margin than one with a 22% CM2 on 800 units/month. Both the rate and the volume matter.
Profitability Tier Classification
With CM2 and total contribution calculated, assign each SKU a profitability tier. This classification drives prioritization decisions: where to invest inventory, which SKUs to promote, what to discontinue.
Tier A — Core Drivers
High CM2 rate (above 25%) and high total contribution (top 20% of catalog by absolute margin dollars). These SKUs generate the majority of catalog profit — typically 60–80% of total contribution from 15–25% of active SKUs. Protect them: prioritize inventory, maintain pricing discipline, and do not let fulfillment costs creep on these without a plan to offset.
Tier B — Solid Performers
Reasonable CM2 rate (15–25%) or strong volume at a lower rate. These SKUs earn their place in the catalog. Identify whether the constraint is COGS (a supplier negotiation opportunity), return rate (a product quality or description issue), or marketing efficiency (a targeting or creative problem). Most B-tier SKUs have a clear path to A-tier with one operational fix.
Tier C — Marginal
CM2 below 15% or total contribution below a meaningful threshold. These SKUs consume catalog complexity, inventory capital, and operational attention disproportionate to the margin they produce. Candidates for repricing, bundling with higher-margin items, or elimination depending on their strategic role (e.g., a low-margin SKU that drives repeat purchase of high-margin consumables may be worth keeping for strategic reasons).
Tier D — Margin Destroyers
Negative CM2. The SKU costs more in variable costs than it generates in net revenue. This is almost always a surprise when operators first run SKU-level analysis — and it is not rare. Common causes: high return rates that weren't visible in blended metrics, heavy or oversized items with outsized fulfillment costs, or aggressive promotional pricing that brought ASP below the break-even threshold.
Negative-CM2 SKUs are not automatically candidates for discontinuation — sometimes they serve a strategic role (traffic drivers, loss leaders in a bundling strategy) — but they should be explicit decisions, not blind spots. Operating intelligence tools like Fairview surface these automatically across connected data sources, so you're not discovering margin destroyers in a quarterly spreadsheet review after the damage is done.
Building the Tracker: Implementation Notes
A few practical notes on making this work in your actual operation rather than as a theoretical exercise:
Use trailing 90-day averages, not snapshots. SKU return rates and ASP are volatile month to month. A 90-day rolling average smooths out promotional periods and seasonal spikes while still reflecting recent trends. Recalculate monthly.
Separate channel tabs if you sell across channels. A SKU sold on your DTC website and on Amazon has completely different cost structures — Amazon's 15% referral fee plus FBA fulfillment charges make the economics incomparable to DTC. Running them together in one row produces numbers that are accurate for neither channel.
Lock the COGS input and make it auditable. The most common error in SKU trackers is COGS drift — the input cell gets updated for a new purchase order but nobody captures the history. Keep a dated log of COGS changes for each SKU. Margin swings that look like operational improvements sometimes just reflect an accounting change in how COGS was calculated.
Build a "total catalog" summary row. Sum units sold, total revenue, and total contribution across all SKUs. Divide total contribution by total revenue to get your blended CM2 rate. This should match what your P&L shows as contribution margin after variable costs — if it doesn't, you have a cost that isn't being captured at the SKU level.
Platforms like Fairview automate the data ingestion step — pulling COGS from purchase orders, fulfillment costs from your 3PL, return data from your OMS, and ad spend from connected media accounts — so the tracker stays current without manual exports. For teams managing this in a spreadsheet, the critical discipline is a weekly update cadence on the high-volume, high-variance inputs: return rates and ad spend allocation.
What to Do With the Output
The tracker produces a ranked list of SKUs by contribution margin rate, contribution margin dollars, and tier classification. Use it to drive three categories of decisions:
Inventory allocation. Tier A SKUs should not be the ones that stock out. If you have to choose where to concentrate working capital in a constrained inventory environment, the tracker tells you where the cost of a stockout is highest in terms of margin impact.
Promotional strategy. Discounting a Tier A SKU reduces your highest-margin item's CM2 further. Discounting a Tier C SKU may push it to Tier D. The tracker makes promotional decisions concrete: before running a 20% off sale on a given product, calculate what that discount does to the CM2 row and whether the volume increase required to maintain the same total contribution is realistic.
Product development priorities. Tier D SKUs with a clear path to positive margin — return rate is high because the size guide is inaccurate, fulfillment cost is high because the packaging is oversized — have a remediation case worth making. Tier D SKUs where the problem is structural (low ASP in a category with inherently high return rates) are candidates for discontinuation regardless of revenue volume.