SKU Profitability Reporting: COGS, Discounts, and BigQuery Model
SKU profitability reporting guide for growing companies: product margin, COGS, discounts, returns, inventory, channel costs, and BigQuery model.
SKU profitability reporting helps leadership see which products are actually creating profit after cost, discounting, returns, fees, freight, inventory adjustments, and fulfillment complexity.
For product, ecommerce, wholesale, manufacturing, subscription box, marketplace, and inventory-heavy companies, this is often the level where margin problems become visible.
The headline gross margin number may look acceptable. Category margin may look fine. Revenue may be growing.
But underneath that, individual SKUs can behave very differently.
One product may have strong demand but weak margin after promotions and shipping. Another may look profitable before returns and write-offs. A bundle may be successful in revenue but weak after component cost and picking complexity. A marketplace SKU may grow fast while fees and fulfillment cost consume most of the profit. A slow-moving item may still show historical margin while cash sits in inventory.
SKU profitability reporting gives CFOs, COOs, founders, finance leaders, operations leaders, and heads of data a practical way to connect product performance with finance and operating reality.
The goal is not to create a complicated product analytics project. The goal is to give leadership a repeatable view of product margin that is clear enough to trust and detailed enough to act on.
What SKU profitability reporting should answer
A useful SKU profitability report should answer questions leadership already asks:
- Which SKUs are profitable after discounts, returns, freight, fees, and fulfillment cost?
- Which products drive revenue but dilute margin?
- Which categories have healthy margin only because a few SKUs carry the result?
- Which channels sell the same SKU at very different economics?
- Which products create cash pressure through slow-moving inventory?
- Which SKUs have margin issues caused by cost changes, price exceptions, returns, write-offs, or operational complexity?
- Which products should be repriced, bundled differently, retired, promoted, or reviewed?
- Which numbers are finance-approved, operational, estimated, or still under reconciliation?
This sits below gross margin reporting.
Gross margin reporting explains the overall number and its main drivers. SKU profitability reporting shows where the product-level pressure sits. If gross margin is down, SKU profitability helps separate broad cost inflation from specific products, channels, bundles, fees, and return patterns.
It also connects directly to inventory reporting. Product margin is hard to trust when item cost, stock movement, returns, write-offs, and inventory adjustments are not modeled consistently.
Why SKU profitability gets difficult
SKU profitability becomes difficult because product economics live across several systems and several teams.
Revenue may come from ecommerce platforms, point-of-sale systems, wholesale orders, subscriptions, marketplaces, distributors, invoices, or the accounting system. Product cost may come from purchasing, inventory, ERP, manufacturing, spreadsheets, landed cost files, or standard cost assumptions. Discounts may sit in the ecommerce platform, CRM, promotion tool, marketplace, contract, or invoice. Returns may be recorded in customer service, ecommerce, warehouse, refunds, and accounting. Fulfillment cost may live with a 3PL, carrier invoice, warehouse system, or internal operations team.
Each system can be reasonable inside its own purpose.
The problem appears when leadership asks whether a product is profitable.
Product identifiers do not match
SKU reporting depends on product identity.
That sounds obvious, but product identity is often messy:
- ecommerce SKU differs from accounting item
- marketplace listing differs from internal SKU
- product variant names change
- bundles and kits combine several components
- replacement SKUs are created without historical mapping
- discontinued products remain in old orders
- vendor item numbers differ from internal item IDs
- accounting groups items at a higher level than operations
If product identity is weak, the report may show clean charts with unreliable joins.
The first control is a product mapping table with owner, effective dates, source identifiers, hierarchy, and exception handling. Without that, SKU profitability will keep breaking when products are renamed, bundled, replaced, or moved between channels.
Revenue and cost have different timing
Revenue and cost do not always land in the same period.
A sale may be booked today, shipped tomorrow, refunded next month, and adjusted during close. A purchase cost may be updated after freight, duty, or vendor credit arrives. Inventory may be written down after the product already appeared profitable in a prior report.
That creates several valid views:
- order date profitability
- ship date profitability
- invoice date profitability
- recognized revenue profitability
- cash-collected profitability
- accounting-period profitability
- return-adjusted profitability
None of these is universally right. They answer different questions.
Finance should define the view used for management reporting, and operations should understand which dates feed it. If the company also needs a bridge from bookings to billing and cash, the order-to-cash reporting guide is a useful companion.
COGS can be incomplete
COGS is often treated as one number, but product profitability depends on what that number includes.
Possible cost components include:
- purchase cost
- standard cost
- average cost
- FIFO or other accounting cost
- landed freight
- duty and customs
- storage and handling
- packaging
- kitting or assembly
- labor or manufacturing overhead where relevant
- payment fees
- marketplace fees
- fulfillment fees
- returns processing
- warranty, replacement, or refurbishment cost
- inventory write-offs, reserves, and shrinkage
Some companies include only product cost in gross margin and treat other costs as operating expenses. Others want contribution margin that includes fulfillment, fees, or channel costs.
The report can support both views, but it must label them clearly.
This is the same definition problem covered in the KPI definition framework. A KPI is not trusted because it has a chart. It is trusted because the definition, owner, source, grain, timing, and reconciliation logic are explicit.
Discounts and promotions hide weak economics
Products can look healthy before discounts and weak after discounts.
Common discount patterns include:
- launch promotions
- clearance sales
- seasonal pricing
- bundle discounts
- wholesale customer discounts
- channel-specific promotions
- marketplace coupons
- free shipping thresholds
- retention or win-back offers
- manual sales concessions
The report should show list price, gross revenue, discount amount, net revenue, and discount reason where possible.
If discount reason codes are weak, start with a simple taxonomy and improve it over time. The first version does not need every campaign attribute, but it should separate planned promotions from unmanaged price leakage.
When discounts, credits, freight, returns, and rework are the main issue, connect SKU profitability to margin leakage reporting. Margin leakage explains where expected margin is being lost and who owns the fix.
Bundles and kits need component logic
Bundles, kits, multipacks, subscriptions, and configured products can make SKU profitability misleading.
A bundle may have one selling SKU but several component SKUs. A subscription box may have changing contents. A kit may use components with different cost methods. A promotion may include a free item whose cost should still be visible. A manufacturing process may convert raw materials into finished goods.
The model needs to decide:
- which SKU receives revenue
- which component SKUs receive cost
- how bundle discounts are allocated
- how returns are handled when only part of a bundle comes back
- how inventory movement connects to the sold item
- how component cost changes affect historical reporting
If the report ignores component logic, it can overstate the profitability of bundles and understate the cost of the products inside them.
Returns can change the answer
Returns affect product profitability through refunds, replacement shipments, restocking, damaged inventory, return freight, customer service effort, and write-offs.
A product can look profitable at shipment and weak after return behavior is included.
Useful return fields include:
- original order
- returned SKU
- return reason
- refund amount
- replacement amount
- return freight
- restocking status
- resale status
- write-off status
- customer, channel, and promotion context
- period logic for reporting
This is especially important when leaders compare channels. A marketplace or promotion channel may show strong unit sales but weak profitability after returns and fees.
Metrics to define first
SKU profitability reporting should start with definitions, not dashboards.
The most useful first metrics are usually simple, but they need clear ownership.
Units sold
Units sold should define whether it uses ordered, fulfilled, shipped, invoiced, recognized, or net-of-return units.
For operations, shipped units may matter. For finance, invoiced or recognized units may matter. For product decisions, net units after returns may be more useful.
The report can include multiple unit metrics, but each one needs a label.
Net revenue
Net revenue usually starts with gross sales less discounts, credits, refunds, and allowances.
Define:
- gross revenue source
- discount treatment
- refund and credit timing
- tax exclusion
- shipping revenue treatment
- currency logic
- marketplace payout treatment
- period logic
For product profitability, net revenue is usually more useful than gross revenue because it reflects what the company actually kept before cost.
Product cost
Product cost may be standard cost, average cost, actual purchase cost, FIFO cost, landed cost, or another accounting-approved method.
Define:
- source system
- cost method
- effective date logic
- vendor cost changes
- freight and duty treatment
- component or bundle logic
- manual adjustments
- reconciliation to accounting
If finance uses one cost view and operations uses another, show both intentionally rather than letting them collide inside one unnamed metric.
Gross margin by SKU
SKU gross margin should show margin dollars and margin percentage at the product level.
The basic version is:
Net revenue minus product COGS.
The report should still show the components. A single percentage does not explain whether a problem comes from price, discount, cost, mix, returns, or data quality.
If leadership needs to explain period-over-period movement, margin bridge reporting gives a stronger structure for separating price, volume, mix, cost, operations, and adjustments.
Contribution margin by SKU
Contribution margin can include additional costs beyond product COGS.
Depending on the business, it may include:
- fulfillment cost
- payment processing fees
- marketplace fees
- pick, pack, and shipping cost
- packaging
- commissions
- return handling
- service or support effort
- channel fees
This view is useful when gross margin looks acceptable but actual product economics are weak after go-to-market and fulfillment costs.
Do not call this gross margin if the metric includes costs outside the company's gross margin definition. Label it as contribution margin, product contribution, or another agreed term.
Inventory risk by SKU
Profitability should not ignore inventory risk.
A SKU can have high reported margin but still be a poor business decision if it ties up cash, turns slowly, requires large minimum order quantities, or creates write-off risk.
Useful inventory signals include:
- on-hand units
- inventory value
- days on hand
- inventory aging
- turnover
- stockout risk
- open purchase orders
- obsolete or at-risk inventory
- write-off history
- return-to-stock rate
This connects SKU profitability to working capital reporting. Product decisions affect both margin and cash.
Source systems to map before building
SKU profitability reporting usually needs a source inventory before anyone builds a dashboard.
Common sources include:
- ecommerce platform
- point-of-sale system
- marketplace exports
- ERP or accounting system
- inventory management system
- warehouse management system
- order management system
- purchasing and vendor data
- landed cost files
- freight and carrier invoices
- 3PL or fulfillment provider files
- returns management system
- payment processor
- promotion or discount tools
- CRM or wholesale order data
- product information management system
- manual product mapping files
For each source, document:
- owner
- refresh frequency
- SKU or item identifier
- product hierarchy fields
- dates available
- revenue, cost, quantity, and status fields
- discount and promotion fields
- return and refund fields
- channel fields
- reconciliation point
- known data quality issues
This source map helps keep the first build practical.
The first phase may not include every system. It should include the few sources needed to answer the product profitability question leadership already debates.
If the broader warehouse scope is still unclear, Data Warehouse Requirements for Small Business gives a practical structure for sources, owners, grain, and first reports.
BigQuery model for SKU profitability reporting
BigQuery is useful when SKU profitability depends on repeated joins across sales, inventory, purchasing, accounting, fulfillment, returns, and product data.
The goal is not to replace ecommerce, inventory, or accounting systems.
The goal is to create a reusable reporting layer where product profitability definitions are controlled and traceable.
Raw layer
The raw layer should preserve source data with minimal transformation.
Typical raw tables include:
- orders
- order lines
- invoices
- payments and payouts
- discounts and promotions
- refunds and credits
- returns
- product catalog
- product variants
- inventory transactions
- inventory snapshots
- purchase orders
- receipts
- vendor bills
- landed cost files
- fulfillment shipments
- carrier invoices
- marketplace fees
- payment fees
- manual product mappings
Raw data should retain source IDs and timestamps. When a SKU margin number changes, finance and operations need to trace it back to the source record.
For Shopify-led ecommerce teams, the Shopify to BigQuery reporting guide is the first-source companion because it preserves order lines, product variants, discounts, refunds, fees, and inventory signals before SKU profitability logic is modeled.
Staging layer
The staging layer standardizes fields.
Common work includes:
- SKU cleanup
- product hierarchy normalization
- channel mapping
- customer and order identifier cleanup
- date standardization
- currency normalization
- discount and promotion cleanup
- return reason standardization
- fulfillment status cleanup
- vendor and item mapping
- cost field standardization
- accounting period mapping
This layer should make sources comparable without hiding what the source originally said.
Modeled reporting layer
The modeled layer applies business definitions.
Useful tables may include:
- product dimension
- SKU and variant dimension
- product hierarchy dimension
- channel dimension
- customer or segment dimension
- order line fact
- net revenue fact
- discount fact
- return and refund fact
- COGS fact
- landed cost fact
- fulfillment cost fact
- marketplace and payment fee fact
- inventory snapshot fact
- inventory adjustment fact
- bundle component bridge
- SKU profitability fact
- SKU contribution margin fact
- reconciliation and exception tables
- owner commentary table
The product dimension should include effective dating where product hierarchy changes over time.
The bundle component bridge matters when a sold SKU needs to allocate cost across underlying components. Without it, bundles and kits can distort profitability.
Reporting layer
The reporting layer should expose views for different decisions:
- CFO SKU profitability summary
- COO product exception view
- product category margin view
- channel profitability by SKU
- discount and promotion impact
- return-adjusted product margin
- inventory risk and profitability view
- slow-moving high-value SKU view
- marketplace fee impact
- reconciliation and exception queue
The CFO may care about margin, inventory value, and reconciliation. The COO may care about returns, fulfillment complexity, and stock risk. Product and commercial leaders may care about pricing, channel, bundle, and promotion decisions.
One dashboard rarely serves every audience well. The model should let each group use the same controlled numbers at the level of detail they need.
Reconciliation checks before leadership uses the report
SKU profitability affects pricing, inventory, procurement, channel strategy, board reporting, and cash planning. The report needs visible checks before it becomes part of the management cadence.
Useful checks include:
- order revenue reconciles to ecommerce, marketplace, invoice, or accounting totals
- refunds and credits reconcile to source systems
- every order line has a mapped SKU
- every SKU has product hierarchy and owner
- every SKU has cost where required
- negative margin SKUs are reviewed
- return rates are visible by SKU and channel
- fulfillment, marketplace, and payment fees are included or explicitly excluded
- inventory quantities reconcile to inventory system totals
- inventory value reconciles to accounting where applicable
- bundle components map to sold SKUs
- landed cost treatment is documented
- manual adjustments have owner, reason, approval status, and date
- stale product mappings are flagged
- prior-period changes are visible
The data quality checks for finance reporting guide covers the broader pattern: freshness, completeness, duplicate handling, reconciliation, owner review, and exception handling.
SKU profitability needs that same discipline because product decisions can change pricing, purchasing, promotions, and channel investment.
How leadership should use SKU profitability reporting
SKU profitability reporting is most useful when it informs decisions, not when it becomes another static report.
Pricing decisions
If SKU margin is weak because net price is too low, leadership can review list price, discount rules, promotion strategy, customer-specific pricing, and channel terms.
The report should show whether the issue is isolated or recurring. A planned clearance promotion is different from a product that always sells below target margin.
Product assortment decisions
If a SKU creates low margin, slow turns, high return rates, or cash pressure, leadership may need to decide whether to keep it, reprice it, bundle it differently, reduce inventory, or retire it.
The answer should not come from margin alone. It should consider strategic value, customer demand, inventory risk, channel role, and operational complexity.
Channel decisions
The same SKU can have very different economics by channel.
Direct ecommerce, wholesale, distributor, retail, marketplace, and partner channels can differ in price, discounting, fees, freight, returns, service expectations, and payment timing.
SKU profitability by channel helps leadership see whether channel growth is creating durable profit or only top-line volume.
Procurement and vendor decisions
If product cost changes are driving margin pressure, SKU profitability can support vendor negotiations, minimum order quantity decisions, substitute sourcing, purchasing cadence, and landed cost review.
It can also show when a cost increase has not been reflected in pricing.
Board and investor reporting
Boards do not need a long SKU table.
They may need a concise view of:
- product margin trend
- margin pressure by category or channel
- inventory risk
- products or categories affecting gross margin
- actions management is taking
- whether the numbers reconcile
This should feed the broader board reporting process. The board pack should not introduce a product margin definition that conflicts with finance, operations, or management reporting.
Common mistakes to avoid
Mistake 1: treating revenue growth as product health
A fast-growing SKU can still be weak after discounts, returns, fulfillment cost, fees, and inventory risk.
Revenue is useful, but it is not the same as profitability.
Mistake 2: using product cost without checking timing
If cost updates late, historical SKU margin may change after leadership has already reviewed the report.
The model should show cost method, cost effective date, and whether the period is closed or still subject to adjustment.
Mistake 3: hiding channel fees
Marketplace fees, payment fees, commissions, fulfillment charges, and partner costs can materially change SKU economics.
If they are excluded, the report should say so. If they are included, the metric should be labeled correctly.
Mistake 4: ignoring returns
Returns can turn an apparently healthy SKU into a weak one.
Return rate, refund amount, restocking status, replacement cost, and write-off status should be visible when they are material.
Mistake 5: building before product mappings are owned
SKU reporting fails quickly when product mappings are informal.
Someone needs to own the product dimension, mapping exceptions, hierarchy changes, bundle logic, and retired SKU treatment.
A practical first phase
A useful first phase should be narrow enough to trust and valuable enough to replace a real manual analysis.
For many growing companies, that means:
- choose the product margin question leadership already debates
- define SKU, net revenue, product cost, gross margin, contribution margin, return-adjusted margin, and inventory risk
- map product identifiers across ecommerce, accounting, inventory, fulfillment, and marketplace data
- load order lines, product catalog, inventory cost, refunds, returns, discounts, and fees into BigQuery
- create product, SKU, channel, order line, revenue, cost, return, fee, and inventory tables
- add bundle or component logic if bundles materially affect margin
- reconcile revenue, refunds, cost, and inventory totals to source systems
- publish a finance-owned SKU profitability view and an operations-owned exception view
- review negative margin, high-return, slow-moving, and unmapped SKUs every reporting cycle
- expand into category, channel, promotion, and vendor analysis after the first view is trusted
This is usually enough to move from "which products are selling" to "which products are creating profit, consuming cash, or creating operating work."
If your team needs a reporting foundation that connects product, inventory, fulfillment, accounting, and BigQuery models, Agile DataWarehouse offers BigQuery reporting automation and BigQuery implementation for finance and operations leaders who need numbers they can explain.
FAQ
What is SKU profitability reporting?
SKU profitability reporting shows revenue, discounts, COGS, landed cost, fulfillment cost, returns, fees, inventory adjustments, and margin by product or variant. It helps leaders see which items create or consume profit after the costs and exceptions that do not always appear in a simple revenue report.
How is SKU profitability different from gross margin reporting?
Gross margin reporting explains margin at the business, channel, customer, or category level. SKU profitability reporting goes deeper into product-level drivers such as item cost, discounts, bundles, fulfillment, returns, write-offs, and channel fees.
What should a SKU profitability report include?
A SKU profitability report should include SKU, product hierarchy, revenue, units, net price, discount, COGS, landed cost, fulfillment cost, returns, marketplace or payment fees, inventory adjustments, gross margin, contribution margin, owner, and reconciliation status.
Can BigQuery support SKU profitability reporting?
BigQuery can support SKU profitability reporting by centralizing sales, inventory, purchasing, accounting, fulfillment, returns, ecommerce, marketplace, and product data. It can then model reusable revenue, cost, item, channel, margin, exception, and reconciliation tables for finance and operations review.
Final thought
SKU profitability reporting should make product decisions easier to defend.
That requires more than units sold and a headline margin percentage. It requires controlled product mappings, clear cost rules, discount visibility, return handling, fee treatment, inventory risk, and reconciliation checks.
When those rules are modeled in BigQuery, leaders can see which products are creating durable profit, which products are consuming cash or operating effort, and which products need pricing, sourcing, fulfillment, or assortment decisions.
That is how product reporting becomes useful to finance and operations, not only sales.