Contribution Margin for Ecommerce: Set Your Black Friday Ad Budget on Profit, Not Revenue

Set Your Black Friday Ad Budget on Profit, Not Revenue

Contribution margin for ecommerce is the profit left on each order after the costs that scale with that order: product cost, shipping, payment fees, and finally ad spend. It is the number that should cap your Black Friday ad budget. Revenue targets don't account for the fact that a 30% off sitewide promo can cut the profit on every order in half before a single ad runs. With Black Friday on November 27 and Cyber Monday on November 30 this year, the budget conversation is happening now, and the starting point should be your margin stack, not last year's sales graph.

What are CM1, CM2 and CM3?

Contribution margin is usually split into three layers, each subtracting a wider set of variable costs. Definitions vary a little between finance teams, but the most common structure, laid out clearly in Human's breakdown of ecommerce contribution margin, looks like this:

  • CM1 = net revenue minus COGS. Product economics. Is the item itself profitable at the price you sold it for?
  • CM2 = CM1 minus shipping, fulfillment, and payment fees. Order economics before marketing. This is what each order can afford to spend on getting acquired.
  • CM3 = CM2 minus ad spend. What's left to cover fixed costs (salaries, software, rent) and profit.

The contribution margin formula at any layer is the same idea: contribution margin = revenue minus variable costs, and contribution margin ratio = contribution margin divided by revenue. The layer you choose decides which costs count as variable. If you already track gross profit, you have CM1. Most brands stop there, and that's the problem during BFCM.

Why CM3 is the real ceiling on holiday ad spend

CM3 is the only layer that tells you whether a promotion made money after paying for the traffic that drove it. CM1 and CM2 only tell you what an order could afford to spend.

In November, two things move against you at once:

Lower CM2 per order, higher cost per order. A revenue-based plan won't notice CM3 going negative until the P&L closes in January.

Worked example: how a BFCM discount eats margin before ads run

Take a home goods brand with a $120 average order at full price. Here is one order at full price and the same order during a 30% off sitewide Black Friday sale.

  • Revenue: $120.00 at full price, $84.00 at 30% off
  • COGS: $42.00 in both cases (the product costs the same to make)
  • CM1: $78.00 (65%) vs $42.00 (50%)
  • Shipping and fulfillment: $12.00 in both cases
  • Payment fees (about 2.9% plus $0.30): $3.78 vs $2.74
  • CM2: $62.22 (52%) vs $27.26 (32.5%)

The discount cut revenue by 30%. It cut CM2 by 56%. Payment fees are the only line that shrank, and Shopify's own breakdown of processing fees puts those at roughly 2% to 3% per transaction, so there is no rescue coming from that line.

Now add ads. Say the brand's normal blended cost to acquire an order is $30. At full price, CM3 is $32.22 per order. On Black Friday, with that same $30 cost per order, CM3 is negative $2.74 per order. Raise that cost by the 11% CPM lift from last November and it's $33.30 per order, CM3 of negative $6.04. Every additional order loses money, and the revenue dashboard looks like the best week of the year.

Put click-verified ad spend into your CM3 math.

See AdBeacon's click-only ROAS, POAS, nCAC, and MER next to what each platform reports, on your own store, before Black Friday.

How to set your Black Friday ad budget from contribution margin

A profit-based Black Friday ad budget starts from the CM2 you'll actually earn at your planned discount depth, then decides how much of it you're willing to hand to the ad platforms. Here's the order of operations.

1. Rebuild CM2 at your promo price, by product

Don't use a blended margin. A hero product at 70% CM1 can absorb 30% off. A bundle at 40% CM1 can't. Pull SKU-level COGS and recalculate CM2 at the discount you're planning for each collection.

2. Set a CM3 floor before you set a spend number

Decide what CM3 per order you need: positive, break-even, or a deliberate first-order loss you'll recover through repeat purchases. Make that call before the media plan exists.

3. Back into the maximum cost per order

Maximum cost per acquired order = CM2 at promo price minus your CM3 floor. In the example above, if the brand wants at least $5 of CM3 per order on Black Friday, the ad budget can't exceed $22.26 per order. Multiply by forecast order volume and that's your spend ceiling for the weekend.

4. Adjust the discount if the math doesn't work

If the cost per order you can afford is lower than anything you've ever achieved, the fix is the offer, not the ad account. A 20% discount on the same order leaves CM2 at about $38.92, which buys a lot more room. Some brands are better served by tiered offers, gift-with-purchase, or excluding low-margin SKUs entirely.

5. Watch CM3 daily during the event, on click-verified data

CM3 is only as good as the attribution feeding it. On platform-reported conversions, cost per order looks cheaper than it is and CM3 looks healthier. Last year's BFCM showed how fast platform-reported results and actual profit can split apart when every channel is claiming the same holiday orders.

Where AdBeacon fits

AdBeacon is a first-party, click-only attribution platform for Shopify, BigCommerce, and WooCommerce stores. Click-only means an order is credited to an ad only when there's a recorded click, not a scroll-past impression. AdBeacon shows its click-verified ROAS next to each platform's self-reported ROAS, plus POAS, CAC, nCAC, and MER, so the ad spend line in your CM3 math reflects orders you can verify. That makes it more accurate and more verifiable than relying on what each platform reports about itself.

During the event, Luma, AdBeacon's AI assistant built on Claude, can flag a campaign whose cost per order jumps past your ceiling. Nexbelt grew net profit 50.9% in 90 days with agency partner National Positions, with returning-customer net profit up 149.3%. For more on reading holiday performance through a profit lens, see our guide to maximizing holiday profits.

The takeaway

Revenue tells you how big Black Friday was. Contribution margin tells you whether it was worth running. Rebuild CM2 at your promo price, set a CM3 floor, and let that cap your spend before the auction gets expensive. If you want to see your BFCM campaigns measured on click-verified data next to what each platform reports, book a live AdBeacon demo and we'll walk through it on your own account.

FAQ

What is contribution margin in ecommerce?

Contribution margin in ecommerce is revenue minus the costs that scale with each order, such as COGS, shipping, payment fees, and ad spend. It shows how much each order contributes to fixed costs and profit.

What is the contribution margin formula?

Contribution margin equals revenue minus variable costs, and the contribution margin ratio equals that figure divided by revenue. CM1 subtracts COGS, CM2 also subtracts shipping and fees, and CM3 also subtracts ad spend.

Why should CM3 cap my Black Friday ad budget?

CM3 is the only layer that includes ad spend, so it's the only one that shows whether a promotion was profitable after paying for traffic. Deep discounts shrink CM2 while CPMs rise, which means a revenue-based budget can push CM3 negative.

How much does a 30% discount reduce contribution margin?

Usually far more than 30%, because COGS and shipping don't shrink with the price. In this article's example, a 30% discount cut CM2 per order by 56%.

How do I calculate the maximum ad spend per order for BFCM?

Take CM2 at your promotional price and subtract the CM3 you want to keep per order. The result is the most you can spend to acquire each order, which you multiply by forecast order volume to get a spend ceiling.

Sources

This website uses cookies

We use cookies to personalize content, provide social media features, and analyze our traffic. We also share information about your use of our site with our analytics partners. You can change your preferences at any time. For more information, please see our Privacy Policy and Cookie Policy. Privacy Policy