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:
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
Pick-and-pack fees, outbound shipping, and payment processing belong below Gross Margin in a "Cost to Deliver" block — not inside COGS. Including them in COGS inflates product cost and obscures true unit economics.
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
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
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-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
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.
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.
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.
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."
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."
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."
A monthly automated COGS refresh, reviewed on Day 5, gives you a consistent rhythm for pricing, buying, and ad allocation decisions.
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.
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
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.
Related Guides
Weekly Sales SummaryInventory CoverageWeeks of Supply (WOS) ReportBill of MaterialsSave Your Favourite PromptsLast updated