---
title: "How to Structure BFCM Offers That Do Not Destroy Margin"
description: "Most BFCM margin damage is decided in October, when someone picks a headline discount without modelling what it does to average order value, returns and January demand."
author: "Aashish Kaushik"
published: 2026-09-07T05:00:20.531Z
updated: 2026-09-07T05:00:20.540Z
url: https://blog.byteinfy.com/bfcm-offer-structure
---
# How to Structure BFCM Offers That Do Not Destroy Margin

## Key takeaways

- Black Friday 2026 falls on 27 November and Cyber Week runs 27 November to 3 December, so offer structure needs to be settled by late October.
- A flat sitewide percentage is the easiest offer to build and the hardest to recover from, because it discounts your best sellers at the same rate as your slowest stock.
- Threshold and bundle mechanics raise average order value instead of cutting unit margin, which is why they survive contact with a spreadsheet.
- Model the discount against contribution margin, not gross margin — shipping, payment fees and BFCM return rates all move against you at once.

The offer is usually decided in a twenty-minute conversation in October. Someone suggests 30%, someone else says competitors did 40% last year, and the number is set. Everything after that — the emails, the landing page, the inventory buy — is execution against a figure nobody modelled.

That conversation is where most BFCM margin is lost, and it happens early enough to fix. Black Friday 2026 is Friday 27 November, with Cyber Week running 27 November to 3 December, which means the structural decisions want to be settled by late October at the latest.

> **What this covers**
> 
> Offer mechanics and margin structure. Inventory, fulfilment and checkout readiness are separate problems with their own deadlines, covered in the rest of the BFCM series.

## The flat percentage is the easiest choice and the most expensive

A sitewide percentage is attractive because it is trivially easy to build, communicate and understand. It is also the only offer structure that guarantees you discount every product at the same rate regardless of whether that product needed discounting.

Consider what that means in practice. Your best-selling item, which sells at full price all year and would have sold through BFCM anyway, gets the same 30% as the slow-moving stock you actually wanted to clear. In absolute terms you gave away the most margin on the products that needed the least help.

There is a second cost that shows up in January. A store that runs a deep sitewide discount every November teaches its customers that November is when you buy. Demand does not disappear — it moves. The revenue looks fine in the BFCM report and worse in the annual one, and the two are rarely compared.

None of which makes a flat percentage always wrong. It is defensible with broad overstock, with a catalogue of fairly uniform margin, or where the headline number is itself the marketing. It is a bad *default*, which is what it usually is.

## Mechanics that raise order value instead of cutting unit margin

The structural alternative is to build offers that change what a shopper buys rather than what they pay per unit.

## Offer mechanics and what each one does to margin
| Mechanic | Effect on unit margin | Effect on order value | Best used for |
| --- | --- | --- | --- |
| Flat sitewide % | Falls on every unit | Neutral | Broad overstock, uniform margin |
| Tiered spend threshold | Unchanged below threshold | Rises | Raising AOV on a deep catalogue |
| Free gift over threshold | Cost of gift only | Rises | Moving a specific SKU while protecting price |
| Bundle at a set price | Blended across the bundle | Rises | Attaching slow stock to a best seller |
| Buy X get Y | Falls on the Y unit only | Rises | Volume clearance without touching headline price |
| Category-specific % | Falls only where you chose | Neutral | Targeted clearance, protects best sellers |

The pattern is that everything except the flat percentage either protects your unit economics or gives you control over exactly where the discount lands. A free gift over a threshold costs you the gift, not a percentage of every order. A bundle blends margin across products you chose to pair. A tiered threshold costs nothing at all from shoppers who were going to spend below it.

These mechanics also compose better with each other than percentages do. Two overlapping percentage discounts produce an outcome nobody modelled; a threshold plus a bundle is legible.

## Model against contribution margin, not gross margin

This is the single most common analytical error, and it is what turns a survivable discount into a loss-making one.

Gross margin is revenue minus cost of goods. It is the number most merchants have to hand and the one they discount against. But BFCM moves several other costs at the same time, all in the wrong direction:

## Costs that rise during BFCM and belong in the model
- Shipping subsidy — free-shipping thresholds are far more commonly hit during a discount period
- Payment processing, which is a percentage and therefore scales with order volume, not margin
- Return rate, consistently higher on discounted and gifted purchases than on full-price ones
- Support cost per order, as discount mechanics generate questions that full-price purchases do not
- Ad costs, since auction prices rise across the whole BFCM window

Work the arithmetic on your actual numbers before committing. A 35% discount on a product carrying 60% gross margin looks comfortable. Subtract a subsidised shipping cost, payment fees, an elevated return rate and the acquisition cost of the order, and the same offer can land close to break-even — and that is before you count the full-price sales it cannibalised.

> **The cannibalisation question nobody asks**
> 
> A share of BFCM revenue would have arrived anyway at full price. If you cannot estimate that share, you cannot tell whether the promotion made money. A rough estimate from last November's baseline is far better than assuming it is zero, which is the implicit assumption in most BFCM reporting.

## Decide what each offer is actually for

Offers fail when they are asked to do several jobs at once. Before setting a mechanic, name the goal — because different goals point at different structures.

**Clearing specific stock.** Category or product-level discounts, or a bundle that attaches the slow item to something that sells. Not a sitewide percentage, which discounts the stock you needed to clear at the same rate as everything else.

**Raising average order value.** Tiered thresholds and free gifts. The mechanic should make a larger basket obviously worthwhile at a specific, stated number.

**Acquiring new customers.** A strong entry offer on a genuine entry product, with the discount concentrated at first purchase rather than spread across the catalogue. This is the one case where accepting weak margin is straightforwardly rational, provided you know your repeat rate.

**Defending against competitors.** Usually the worst reason to discount, and the most common unstated one. If a competitor's price is the trigger, the honest question is whether you are in a price fight you can win.

## What happens when two offers meet

Every offer you run interacts with every other offer you run, and with the discount codes still circulating from earlier campaigns. This is where BFCM promotions break, and it breaks at checkout on the busiest day of the year.

Shopify's native discounts have real limits on combination. Automatic discounts and discount codes can be configured to combine in specific ways — product, order and shipping discounts have distinct combination rules — but the behaviour is not arbitrary and it is not always what a merchant assumed when they built two offers independently a fortnight apart.

The failure modes are consistent:

- Unintended stacking. A tiered threshold plus an existing subscriber code produces a total discount nobody signed off on, on a basket large enough to matter.
- Silent non-application. The shopper qualifies for two offers, gets one, and does not understand why the number differs from the landing page. This one is worse than it looks because it does not error — it just quietly converts less.
- Free gift plus percentage. The gift is added at a discounted price rather than free, or the percentage applies to the gift line, producing a total that reads as a bug.

The test that catches these is dull and non-negotiable: build every offer in a staging environment, then walk the actual customer path for each combination a real shopper could reach. Include the codes you have already sent out and forgotten about, and include the case where someone has an abandoned cart from before the offers went live.

Anything you cannot make behave correctly should be made mutually exclusive rather than left to resolve itself at checkout. An offer that does not stack is a communication problem; an offer that stacks wrongly is a margin problem you discover in the reconciliation.

## The timeline that actually works

Preparation timing is one of the few areas with consistent evidence behind it: merchants who begin BFCM preparation well in advance reliably outperform those who assemble it in November, and the recommended runway has lengthened year on year.

A workable sequence from here:

1. Early October — model two or three candidate offer structures against contribution margin on real product-level data.
2. Mid October — choose the mechanics and lock them. Late changes to discount logic are where checkout bugs come from.
3. Late October — build and test the offers in a staging environment, including how they interact and what happens when a shopper qualifies for two.
4. Early November — freeze offer logic. Test the actual customer path end to end, on mobile, as a new customer.
5. Mid November — warm the list. The offer should not be the first message a subscriber has received in three months.

The freeze in step four matters more than it looks. Discount logic is the most fragile thing on a store during the highest-traffic week of the year, and every change after the freeze is a change you are shipping without time to observe it.

For the mechanics of building these offers on Shopify — where native discounts stop and Functions begin — see the [promotions and offers](/category/promotions-offers) archive. Checkout-side readiness is covered separately in [checkout and payments](/category/checkout-payments), and the full sequence lives in the [BFCM 2026](/series/bfcm-2026) series.

**Want the offer logic built and tested before the freeze?**
ByteInfy builds Shopify discount mechanics with Functions — tiered thresholds, gifts, bundles and stacking rules that behave under load.

[Start a project](https://byteinfy.com/#contact)

## FAQ

### When is Black Friday 2026?

Black Friday falls on Friday 27 November 2026 and Cyber Monday on Monday 30 November, with Cyber Week generally treated as 27 November to 3 December.

### Is a sitewide percentage discount ever the right answer?

Sometimes. It is defensible when you have broad overstock, when your catalogue has fairly uniform margin, or when your brand is well known enough that the headline number is itself the marketing.

### How deep does a BFCM discount need to be to get noticed?

Less deep than most merchants assume, if the offer is structured well.

### Should I discount my best sellers?

Usually not at the same rate as everything else. Your best sellers would have sold anyway, so every point of discount on them is margin given away rather than demand created.

### What is the most common BFCM margin mistake?

Modelling on gross margin and forgetting that shipping subsidies, payment processing and return rates all rise during BFCM.
