Contribution Margin for Ecommerce: 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:
- Discounts get deeper. Adobe's 2025 holiday shopping recap found Black Friday was the most heavily discounted day of the season, averaging 23.7% off, up from 22.2% in 2024. Salesforce put the average online discount even higher, at 28%, according to eMarketer's Black Friday 2025 coverage.
- Traffic gets more expensive. Meta CPMs rose 11% in the November 16 to 30 window last year, with food and beverage advertisers seeing a 42% jump, per Geist's Q4 2025 Meta rate analysis.
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.
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.