Guide

Contribution Margin for D2C Brands: Formula, Examples and How to Improve It

How to calculate contribution margin for a D2C brand in India (CM1, CM2, CM3), with a worked example including COD, RTO, shipping and ads, plus the levers that improve it.

Ayush SinghalAyush SinghalFounder, MarQet2 min read

Short answer

Contribution margin for a D2C brand is net revenue minus all variable costs of an order: product cost, packaging, shipping, payment and COD fees, returns and RTO, and marketing. Many brands track it in three layers: CM1 (after product cost), CM2 (after fulfilment and returns) and CM3 (after ads). CM3 per order tells you whether growth is actually profitable.

Key takeaways

  • Gross margin ignores the costs that kill Indian D2C economics: shipping, COD, RTO and ads.
  • Track CM1, CM2 and CM3 per order, per channel and per SKU.
  • RTO costs you forward and reverse shipping with zero revenue. Include it as an average cost per order.
  • The biggest levers are usually AOV, RTO rate and CAC, not product cost.

If you only track one number beyond revenue, make it contribution margin. It tells you how much each order actually contributes to paying for your team, rent and growth, after every cost that rises with each order.

The formula

Contribution margin layers

CM1 = Net revenue − Product cost (COGS)

CM2 = CM1 − Packaging − Shipping − Payment/COD fees − Returns and RTO cost

CM3 = CM2 − Marketing (ads and performance spend)

Net revenue means revenue after discounts and GST, on delivered orders. Brands define the layers slightly differently; the point is to be consistent.

A worked example in rupees

LinePer orderRunning total
Net revenue (ex-GST)₹847₹847
Product cost−₹220CM1 ₹627 (74%)
Packaging−₹25₹602
Forward shipping−₹65₹537
Payment gateway / COD fee (blended)−₹22₹515
RTO cost (averaged: 15% of orders × ₹130)−₹20₹495
Customer returns (averaged)−₹15CM2 ₹480 (57%)
Ads per order−₹330CM3 ₹150 (18%)

This brand makes ₹150 per order before fixed costs. If ads per order rise to ₹480, CM3 hits zero, even though gross margin still looks healthy at 74%.

Why RTO deserves its own line

An RTO order costs forward shipping, reverse shipping, packaging and sometimes damaged stock, with no revenue at all. Spread across all orders, it can cost more than your payment fees.

RTO cost per order

RTO cost per order = RTO rate × (Forward + reverse shipping + packaging + write-offs per RTO)

See how to reduce RTO on COD orders.

The levers that improve contribution margin

LeverEffectTypical tactics
Raise AOVSpreads shipping and CAC over more revenueBundles, free-shipping threshold, upsells
Reduce RTORemoves cost with zero revenueCOD verification, address checks, prepaid incentives
Lower CACCuts the biggest variable costCreative testing, retention, cut wasted spend
Shift channel mixSome channels have better CM3Compare website, marketplace and quick commerce
Renegotiate logisticsLower shipping per orderCourier allocation by pincode performance
Product costUsually slow to changePack sizes, sourcing

Track it by channel and SKU

Brand-level contribution margin hides a lot. One SKU may carry the business while another loses money on every order; quick commerce may beat your website or the reverse. See quick commerce vs marketplace margins.

How MarQet BI helps

MarQet BI blends Shopify revenue, ad spend, Shiprocket shipping and RTO, and marketplace sales, so the pieces of contribution margin sit in one place instead of five exports.

Frequently asked questions

What is contribution margin in D2C?

Net revenue minus all variable costs per order: product cost, packaging, shipping, payment and COD fees, returns and RTO, and marketing spend.

What is the difference between CM1, CM2 and CM3?

CM1 is after product cost, CM2 is after fulfilment, payment and returns costs, and CM3 is after marketing. CM3 shows whether growth is profitable.

What is a good contribution margin for a D2C brand?

It varies by category and stage. Many brands aim for positive CM3 on repeat orders and accept thin or negative CM3 on first orders if LTV justifies it. Track the trend rather than chasing a universal number.

Ayush Singhal

Written by

Ayush Singhal, Founder, MarQet

Ayush founded MarQet to give D2C founders one system for customer conversations, daily performance and quick-commerce shelf availability.

MarQet BI

Stop rebuilding Monday in Excel

MarQet BI blends Shopify, Shiprocket, Unicommerce, ads and Search Console, then tells you what changed overnight.

See how MarQet BI works