Contribution margin for Shopify D2C

Your ROAS says scale.
Your bank account disagrees.

True CM1/CM2 per order, SKU, and channel - so you know which growth actually pays for itself.

Aurora Skin Co

Today's margin health

Last 14d
Health Score
74/100
Watch
  • ·CM2 margin slipped vs prior period
CM2
$1,675
14.2% margin
CM1
$7,774
66.1% margin
Blended CAC
$50
+20% vs prior
LTV : CAC
3.6x
84% repeat
CM2 by dayas of 2026-08-10

Investigate CAC spike. CAC rose sharply vs the prior period - check creative fatigue and audience overlap.

Connects to what you already run

ShopifyMeta AdsGoogle AdsUSD / INR

The gap

A 4x ROAS campaign can still lose money on every order.

Once COGS, shipping, returns, discounts, and payment fees come out, the winning campaign on your ads dashboard is often the one draining cash.

ROAS dashboard
Revenue ÷ ads
Ignores COGS, shipping, returns, fees
Spreadsheet
Last month, maybe
Hours of exports, stale on arrival
MarginOS
CM2, today
After every variable cost, per cut

Product

The whole picture, not the flattering half.

Everything a lean D2C team needs to answer one question: are we profitable on this customer, SKU, and channel right now?

ChannelCM2 margin
organic67%
email65%
google-3%
meta-4%

Drill into any cut

CM by day, channel, and SKU. See which channels clear their own ad spend and which are funded by the ones that do.

74/100
Watch

One Health Score

CM2 trend, CAC vs target, returns, and cost completeness in a single 0-100.

Repeat
84%
LTV
$181
LTV:CAC
3.6x
Payback
8d

Customer economics

Repeat rate, LTV, LTV:CAC, and payback - whether retention carries acquisition.

WarnCAC up 20% vs prior
Critmeta CM2 negative

Alerts that name the cause

Margin drift and CAC spikes in plain English, plus a morning brief with the ranked fixes.

USDINRUSD+INR
$1,675 · ₹1,39,853

USD and INR side by side

Store math stays in store currency. Display converts at the daily FX rate.

Net
$11,769
CM1
$7,774
CM2
$1,675

P&L to contribution

Gross to CM2 in one strip, with every variable cost visible.

No black box

Every number shows its work.

Contribution margin is only useful if you trust it. MarginOS publishes the exact formula behind each figure and flags incomplete cost data instead of quietly guessing. If COGS is missing for a SKU, you see a warning - not a confident wrong answer.

CM1
Net revenue - COGS - shipping - payment fees - other variable costs
CM2
CM1 - ad spend for the same period
Blended CAC
Ad spend ÷ new customers in the period
Contribution margin waterfallDemo · 14d
Gross revenue
$12,656
Discounts
-$304
Refunds
-$583
Net revenue
$11,769
COGS
-$2,997
Shipping
-$605
Payment fees2.9% + $0.30
-$393
CM1pre-ads
$7,774
Ad spend
-$6,099
CM2after ads
$1,675
CM2 margin14.2% of net revenue

Setup

Live in under ten minutes.

No data team, no warehouse, no implementation call. Connect, add costs, and the history backfills itself.

01

Pick currency, connect Shopify

~2 min

Choose USD, INR, or both - display converts immediately. Then one OAuth click pulls orders, refunds, and discounts.

02

Upload your costs

~5 min

Drop in a COGS CSV with unit costs and shipping, set your payment fee rate, and MarginOS backfills margin across your history.

03

Check one number each morning

Daily

A Health Score, the drivers behind it, and a ranked list of what to fix - delivered before you open the ads manager.

Pricing

Less than the hours you spend rebuilding the spreadsheet.

14-day free trial on both plans. Cancel any time - no annual lock-in, no implementation fee.

Starter

$49/month

≈ ₹4,100

Get unit economics straight for the first time.

  • Shopify sync
  • CM1 & CM2 by day, channel, SKU
  • COGS CSV upload
  • Health Score + P&L
  • Margin drift alerts
Start free trial
Most popular

Growth

$149/month

≈ ₹12,400

Scale paid with CAC that holds up.

  • Everything in Starter
  • Meta + Google Ads sync
  • Blended & channel CAC, LTV, payback
  • Cohort analysis
  • Morning brief email
  • USD + INR display
Start free trial

Installing from the Shopify App Store? Billing is handled through Shopify.

Questions

The things founders ask first.

How is this different from Shopify analytics or a ROAS dashboard?

Those show revenue and ad efficiency. Neither subtracts COGS, shipping, returns, discounts, or payment fees. MarginOS computes contribution margin after every variable cost.

What if my COGS data is incomplete?

Upload what you have. Aggregates built on incomplete data get a warning, and the Health Score takes a completeness penalty. Honest incomplete beats a confident wrong number.

Do I need Meta and Google connected?

No. Shopify alone gives you CM1. Ad accounts add CM2, blended and channel CAC, and payback - where most scaling decisions are made.

How does dual-currency display work?

Store math stays in store currency. Display converts at the daily FX rate, and you can toggle USD, INR, or both.

Find out what your growth actually costs.

Connect Shopify, upload costs, and see real contribution margin today.