COGS Report

Quick Answer: A COGS report breaks your total Cost of Goods Sold into individual SKUs, cost components, channels, and time periods — so you can see exactly what drove your gross margin. In Moselle, Mo can build one from your live data using plain-language prompts in under 10 minutes.

What is a COGS Report?

A COGS (Cost of Goods Sold) report is the supporting financial schedule behind the single COGS line on your P&L. Rather than showing one blended number, it breaks your total product cost into individual SKUs, cost components, channels, and time periods — so you can see exactly what drove your gross margin.

For ecommerce businesses, COGS is far broader than just the factory invoice. Your true landed cost per unit includes multiple layers tracked at the per-SKU level:

  • Wholesale or manufactured product cost (FOB/ex-works)

  • Inbound freight — ocean, air, and drayage

  • Customs duties and tariffs

  • Primary and secondary packaging

  • Labeling, prep, and inspection

  • Warehousing allocation

  • Return processing

Where the P&L answers "what was our margin?", the COGS report answers "why, and which SKUs caused it?"

The DTC P&L Structure

The standard DTC ecommerce P&L is structured as a waterfall — and your COGS report is the engine behind it:

P&L Line
What It Represents

Net Revenue

Total sales after discounts and returns

− COGS

Product cost to source and land inventory

= Gross Profit

Margin before delivery and marketing

− Fulfillment

Pick & pack, outbound shipping, payment processing

= Contribution Profit

Cash generated per sale before marketing

− Marketing

Paid acquisition, influencer, promotions

= Operating Income

True business profitability

Why It Matters — By Team

A great COGS report isn't a finance vanity project — every functional team uses it differently.

Finance

  • Calculate true gross margin and value inventory on the balance sheet

  • Run variance analysis and prepare board and investor reporting

  • Track inventory turns — a brand turning inventory 6× per year has dramatically healthier cash than one turning 2×

Operations & Supply Chain

  • Detect cost creep — recalculate landed cost per SKU quarterly using actual invoices

  • Investigate any SKU whose landed cost moved more than 5%

  • A $1.50 reduction in COGS on a 2,000-unit/month product equals $36,000 in annual margin

Merchandising

  • Make product mix and markdown decisions based on per-SKU contribution margin

  • Identify which SKUs are subsidizing others — sometimes the right move is to de-prioritize a bestseller

Marketing

  • The CAC:LTV equation is meaningless without accurate COGS

  • An LTV of $240 with 60% gross margin is actually $144 in contribution — a reported 2.4:1 LTV:CAC becomes a marginal 1.44:1

  • Teams setting product-level ROAS targets off headline Shopify margin are flying blind

Founders & Executives

  • Unit economics, pricing strategy, and fundraising all depend on accurate COGS

  • GAAP-ready financials with accurate COGS are table stakes for any institutional funding round

Core Report Structure

A best-in-class COGS report is organized at the SKU/product level. Every SKU needs a two-stage cost build:

  • Landed Cost — what hits the balance sheet as inventory and flows through COGS at sale

  • Fulfilled Cost — variable delivery costs layered on top, flowing through Contribution Margin

Product Identifiers

Every row in your report is anchored to a specific product. Required fields:

  • SKU Code

  • Product Name

  • Product Category / Product Line

  • Variant (size, color, etc.)

  • Supplier / Country of Origin

Unit Economics

Metric
Formula
What It Tells You

Unit Cost

COGS per unit (fully landed)

True cost to produce or acquire one unit

Unit Price

Selling price per unit

ASP by channel (DTC vs. wholesale)

Gross Margin / Unit

Unit Price − Unit Cost

Absolute dollar profit per unit sold

Gross Margin %

(Price − Cost) / Price × 100

Efficiency of margin; benchmark ≥ 50% for DTC

Volume Metrics

  • Units Sold — number of units sold during the reporting period

  • Units on Hand — current inventory units as of the report date

Financial Metrics

Metric
Formula
What It Tells You

Total COGS

Units Sold × Unit Cost

Total cost of goods sold in the period

Total Revenue

Units Sold × Unit Price

Total sales revenue for the period

Total Gross Profit

Total Revenue − Total COGS

Realized profit from units sold

TIV (Total Inventory Value)

Units on Hand × Unit Cost

Capital tied up in inventory at cost

TRV (Total Retail Value)

Units on Hand × Unit Price

Potential revenue value of current inventory

Potential Margin in Inventory

TRV − TIV

Unrealized profit locked in inventory

TIV and TRV together give you a powerful lens on cash efficiency. TIV shows how much capital is locked up in your warehouse today. TRV shows what that inventory could generate if sold at full price. The gap between them is your inventory's unrealized earning potential.

Optional Context Metrics

  • Sell-Through Rate % — percentage of available inventory sold in the period

  • Days of Supply / Inventory Turns — how quickly inventory moves through the warehouse

  • Channel / Customer Breakdown — segmentation by sales channel (DTC, wholesale, marketplace)

  • Date Range — reporting period (e.g., Q4 2024, January 2025)

Example Report Layout

Below is a simplified example showing how the data is structured at the SKU level:

SKU
Product Name
Unit Cost
Unit Price
Units Sold
Units on Hand
TIV
TRV
GM %

SKU-001

Moisturizer 50ml

$8.50

$24.00

450

1,200

$10,200

$28,800

64.6%

SKU-002

Serum 30ml

$12.00

$38.00

320

800

$9,600

$30,400

68.4%

SKU-003

Toner 150ml

$5.20

$18.00

610

2,100

$10,920

$37,800

71.1%

TOTAL

1,380

4,100

$30,720

$97,000

68.0%

Common Pitfalls to Avoid

COGS errors are almost never about the formula — they are almost always about timing, allocation, and data mismatches.

1. Forgetting the Full Landed Cost Stack

Most brands start with just the factory invoice. Your true landed cost per unit includes all of the following — missing any one layer will systematically understate COGS:

  • FOB unit cost (what you paid the supplier)

  • Inbound freight (ocean, air, drayage) — allocate by weight for dense goods, by cube for bulky goods

  • Customs duties and tariffs

  • Brokerage and port fees

  • 3PL inbound receiving fee

  • Primary packaging that travels with the unit

2. Bundles and Kits

Bundles are a common source of COGS inaccuracy. When a bundle sells, component SKUs need to be decremented and their costs summed correctly.

  • Always use a Bill of Materials (BOM) approach: sum component landed costs into the bundle SKU

  • Discount allocation on bundles must be split proportionally across components, or per-SKU margin becomes meaningless

Bill of Materials

3. Returns and Refunds

Returns require different accounting treatment depending on the condition of the unit returned:

  • Resellable returns → reverse COGS at original cost

  • Damaged / unsellable returns → do not reverse COGS; recognize a write-off to a spoilage account

  • B-stock / refurb → add back at Net Realizable Value; book the cost-to-NRV gap as a write-down

  • Best practice: accrue a returns reserve at the time of sale (typically 2–8% of revenue for apparel, 1–3% for beauty/CPG)

4. Costing Method Consistency

The method you choose matters less than applying it consistently across all systems. Common problem: your storefront uses last-cost, your 3PL uses FIFO, and your accounting system uses Weighted Average — producing irreconcilable margins.

  • FIFO — global default; mirrors physical flow; inflates reported margin in rising-cost environments

  • Weighted Average (WAC) — smooths volatility; preferred for high-velocity brands with frequent small POs

5. Blending Channels

DTC and wholesale have fundamentally different margin profiles (DTC ~75% gross vs. wholesale ~30%). Blending them produces a meaningless average that hides underperforming channels. Always segment your COGS report by channel.

Building Your COGS Report with Mo

Time Required: 10–15 minutes Difficulty: Beginner

Mo is Moselle's AI assistant, connected directly to your live data. Once you understand the structure above, Mo can generate, interrogate, and adjust your COGS report through natural language.

1

Generate Your Initial Report

Open Mo and start with a prompt that specifies your date range and the fields you need:

"Generate a COGS report for [date range] at the SKU level, including unit cost, unit price, units sold, units on hand, total COGS, total revenue, gross profit, TIV, TRV, and gross margin %."

Mo will return a structured table with all core fields populated from your live data.

2

Review and Validate

Before using the report for decisions, validate the key figures against your known sources. Mo can help you spot anomalies.

"Flag any SKUs where gross margin % falls below 40% or where units on hand have not moved in 60+ days."

Cross-check total COGS against your accounting system (QBO/Xero COGS account) to confirm the numbers align.

3

Adjust for Fully Landed Cost

If your unit cost reflects only FOB cost, ask Mo to apply landed cost adjustments. Provide your freight and duty rates and Mo will recalculate.

"Recalculate unit cost for all SKUs in [category] by adding $0.65 inbound freight per unit, 7.5% duty, and $0.20 brokerage. Show me the updated gross margin % alongside the original."

4

Segment by Channel or Category

Once the base report is validated, use Mo to slice the data in the ways that matter most for your decisions.

"Break down the COGS report by sales channel (DTC vs. wholesale). Show total revenue, total COGS, gross margin %, TIV, and TRV for each channel."

5

Identify Margin Opportunities

With a validated report in hand, Mo can help you identify your highest-leverage actions.

"Show me the top 10 SKUs by total gross profit and the bottom 10 by gross margin %. For the bottom 10, calculate what unit cost reduction would be needed to bring them above a 50% margin threshold."

6

Export and Schedule

Once your report is set up, Mo can help you export to your preferred format and set up a recurring refresh cadence.

"Export this COGS report as a CSV with all SKU-level fields. Then set this up to refresh automatically on the 5th of each month using the prior month's data."

Adjustments and Advanced Use Cases

Applying a Returns Reserve

Build a returns reserve into your per-unit cost at the time of sale, rather than waiting for returns to occur.

  • Typical reserve rates: 2–8% of revenue for apparel, 1–3% for beauty/CPG, 20–30% for swimwear

  • Add this to Fulfilled Cost (not Landed Cost) so it flows through Contribution Margin

"Apply a 5% returns reserve to all SKUs in the Apparel category. Show me the adjusted contribution margin before and after the reserve."


Tariff and Duty Recalculation

When duty rates change, you may need to update your COGS report mid-year.

  • Identify all relevant SKUs using the Country of Origin field in your product catalog

  • Update the duty rate for affected product categories

  • Note: existing inventory in your warehouse retains its original landed cost under FIFO — only new POs use the updated rate

"Show me all SKUs with country of origin = China. For each, simulate the landed cost impact if duty increases by 15 percentage points. What is the gross margin % under the new rate?"


Period Comparisons and Variance Analysis

One of the most powerful uses of your COGS report is tracking how costs have changed over time.

"Compare COGS by SKU for Q4 2024 vs. Q1 2025. Flag any SKU where unit cost increased by more than 5% and show me the total margin impact in dollars."


Inventory Health Scoring

Combine your COGS data with inventory aging to identify at-risk stock before it becomes a write-down problem.

"Show me all SKUs with more than 90 days of supply on hand based on current sell rate. For each, show TIV, TRV, and what the inventory would need to sell at to recover full cost."

Industry Benchmarks

Use these benchmarks to validate your report and assess the health of your margins. These figures represent typical ranges across DTC ecommerce brands with 3PL fulfillment.

Metric
Typical Range
Best-in-Class

Gross Margin % (DTC)

55–70%

> 70%

Gross Margin % (Wholesale)

25–35%

> 40%

Contribution Margin (CM3)

15–25%

25–35%

Per-unit COGS vs. manufacturing cost

15–25% higher

< 15% premium

Return Rate — Beauty/CPG

1–3%

< 2%

Return Rate — Apparel

20–30%

< 20%

Inventory Shrinkage

0.5–1.0% of inventory value

< 0.5%

A healthy DTC contribution margin (CM3) is ≥ 20%. Best-in-class brands achieve 25–35%. If you are below 20% after fully loading COGS, fulfillment, and returns — your unit economics need attention before scaling ad spend.

Getting Started: Action Plan

Step
Action

1

Audit your product catalog — confirm every SKU has a fully landed unit cost, not just FOB

2

Run your first Mo prompt to generate a base COGS report for the last completed month

3

Validate the output against your accounting system (QBO/Xero COGS account)

4

Flag SKUs below 40% gross margin and SKUs with > 90 days of supply on hand

5

Set up a monthly refresh cadence — target Day 5 of each month using prior month data

6

Review with your founder/CFO and use findings to drive pricing, buying, and ad allocation decisions

Frequently Asked Questions

What is the difference between COGS and fulfillment cost?

COGS covers the cost to source and land inventory — from supplier invoice through to your warehouse door. Fulfillment covers the cost to deliver a sold unit to the customer: pick and pack, outbound shipping, and payment processing. The distinction matters because it separates product economics from delivery economics, giving you cleaner visibility into both.

What is TIV and TRV?

TIV (Total Inventory Value) is the cost value of your on-hand inventory — how much capital is locked in your warehouse. TRV (Total Retail Value) is what that inventory could generate if sold at full price. The gap between TRV and TIV is your unrealized earning potential. Together they give you a clear picture of cash efficiency and markdown risk.

Should I include return costs in COGS or Contribution Margin?

Returns reserve belongs in Contribution Margin (fulfilled cost), not Landed Cost / COGS. This keeps your product economics clean and separates the cost to source inventory from the cost to deliver and recover it. Only apply a COGS adjustment for units that are permanently written off as damaged or unsellable.

How often should I refresh my COGS report?

Monthly is the standard cadence for most brands. Run the report on Day 5 of the month using the prior month's data, once all orders have closed and synced. For high-velocity SKUs or periods with significant cost changes (new POs, tariff updates), a mid-month spot check is worthwhile.

What costing method does Moselle use?

Moselle supports Weighted Average Cost (WAC) and FIFO. WAC smooths cost volatility across POs and is preferred for brands with high order frequency. FIFO mirrors physical inventory flow and is the global accounting default. Whichever you choose, apply it consistently across all connected systems to avoid margin reconciliation issues.

Weekly Sales SummaryInventory CoverageWeeks of Supply (WOS) ReportBill of MaterialsSave Your Favourite Prompts

Last updated