---
title: "Double Points at BFCM: What a 2x Weekend Costs in Margin"
slug: "double-points-weekend-cost"
url: "https://joy.so/blog/double-points-weekend-cost/"
kind: "post"
author: "Thomas Nguyen"
author_url: "https://joy.so/author/thomas/"
published_at: "2026-10-21T09:00:00.000+00:00"
updated_at: "2026-10-21T09:00:00.000+00:00"
description: "A 2x weekend on a discounted order can take 10% of its gross margin. The full arithmetic, with every assumption printed."
category: "Loyalty Strategy"
tags: ["Loyalty Strategy", "BFCM & seasonal", "Program design", "Loyalty Program"]
reading_time: 11
feature_image: "https://cdn-web.joy.so/cdn/image/2026/10/row7-double-points-ff6cdd.webp"
---

# Double Points at BFCM: What a 2x Weekend Costs in Margin

Every loyalty vendor recommends a double-points weekend for Black Friday. We went looking for one that had costed it, and could not find one. The recommendation is everywhere; the arithmetic is nowhere.

So here it is, on one product, with every assumption printed. The number that matters is not what the [points cost as a share of revenue](https://joy.so/blog/loyalty-point-cost/), which barely moves. It is what they cost as a share of the margin left after the discount, which roughly doubles — and that figure is the one no vendor publishes and the one your finance team will ask for in January.

**Key Takeaways**

- On a $100 product with $40 of COGS, the same earn rate costs 1.67% of gross margin at list price and 3.00% at 40% off. The discount, not the loyalty setting, is what moved it.
- Awarding points on the pre-discount price instead of the amount paid takes that to 5.00% of margin, and a 2x weekend on the pre-discount base takes 10.00%.
- Those are the figures if every point is redeemed. At the 13.67% average redemption rate Smile.io reports across its merchant base, the 10.00% case costs 1.37% — but a BFCM points push exists to raise redemption, so the average is the wrong number to plan with.
- The earning base is the single most expensive setting in the program and most merchants have never deliberately chosen it.
- A tier-gated multiplier costs less than a blanket one for the same headline, because it spends the margin on customers who buy at full price the rest of the year.

**Published 21 October 2026.** The table below is reproducible: the assumptions are listed in full, and the only external figure is Smile.io's published redemption rate, which is linked.

![Bar chart of what the same loyalty earn rate costs as a share of gross margin](https://cdn-web.joy.so/cdn/image/2026/10/fig-row7-margin-efc227.webp)

_The same earn rate, six ways. Full assumptions below._

## Everyone recommends it, nobody prices it

Start with what the category actually says. [LoyaltyLion's Black Friday/Cyber Monday program recommendations](https://help.loyaltylion.com/en/articles/9944208-black-friday-cyber-monday-program-recommendations) tell merchants to "**Launch double points promotions for major events like Black Friday, Christmas, and New Year's**". The page carries seven recommendations and not one line about margin, cost or what any of them is worth.

[Rivo's article on BFCM loyalty and reward strategies](https://www.rivo.io/blog/5-bfcm-loyalty-and-reward-strategies-to-boost-conversions) makes it strategy number two of five, "**Double loyalty points on purchases during BFCM**", explaining that customers earn twice the usual amount for every purchase. Again, no cost analysis anywhere in the article.

That is the state of the published record in this category: the recommendation, repeated, with no arithmetic attached to it. No margin table, no worked example, no list of assumptions. The rest of this page is the missing arithmetic.

## The assumptions, before the number

A costing you cannot check is a marketing claim. These are the inputs, and changing any of them changes the table in ways you can work out yourself.

- One product at $100 with $40 of cost of goods, held constant whether or not the product is discounted.
- One point per dollar of the earning base; 100 points redeem for $1, so [a point is worth exactly one cent](https://joy.so/blog/loyalty-points/).
- The discount is 40% off, applied at the order level.
- Processing fees, shipping and pick-and-pack are excluded. Including them makes the discounted rows worse, not better, because they are mostly fixed per order.
- The last column multiplies the margin cost by 13.67%, the average redemption rate Smile.io reports across its own merchant base. It is a redemption rate, not a breakage assumption.

## What a point costs, six ways

| Scenario | Revenue | Gross margin | Points | Reward cost | % of revenue | % of gross margin | At 13.67% redemption |
| --- | --- | --- | --- | --- | --- | --- | --- |
| List price, 1x on amount paid | $100.00 | $60.00 | 100 | $1.00 | 1.00% | **1.67%** | 0.23% |
| 40% off, 1x on amount paid | $60.00 | $20.00 | 60 | $0.60 | 1.00% | **3.00%** | 0.41% |
| 40% off, 1x on pre-discount price | $60.00 | $20.00 | 100 | $1.00 | 1.67% | **5.00%** | 0.68% |
| 40% off, 2x on amount paid | $60.00 | $20.00 | 120 | $1.20 | 2.00% | **6.00%** | 0.82% |
| 40% off, 2x on pre-discount price | $60.00 | $20.00 | 200 | $2.00 | 3.33% | **10.00%** | 1.37% |
| List price, 2x on amount paid | $100.00 | $60.00 | 200 | $2.00 | 2.00% | **3.33%** | 0.46% |

Read the two bold columns against each other. As a share of revenue the earn rate is almost invariant: 1.00% at list price and 1.00% at 40% off, because the base moved with the price. That is the number the program reports and the reason nobody flags it.

As a share of gross margin the same earn rate costs **1.67% at list price and 3.00% at 40% off**, because the discount took two thirds of the margin and none of the reward. Nothing in the loyalty program changed. The promotion changed, and the loyalty cost went up by 1.8 times as a consequence nobody configured.

The two rows underneath are where it stops being subtle. Award on the pre-discount price and a single order costs **5.00% of its gross margin** in points. Run a 2x weekend on that same pre-discount base and it costs **10.00%**. A tenth of the margin on every discounted order, decided by two settings most merchants have never opened.

## The redemption-rate column, and why it is a trap

The last column is what the margin cost becomes if only 13.67% of points are ever redeemed, which is the average Smile.io reports across its own merchant base, in [a blog post on improving loyalty redemption rates](https://blog.smile.io/improve-average-loyalty-redemption-rate/). On that basis the worst row falls from 10.00% to 1.37%, and the whole problem appears to go away.

Two things are wrong with resting on it. The first is that it is somebody else's merchant base: a cross-merchant average over programs with different reward ladders, different point values and different reminder emails tells you very little about yours. The second is circularity. **The purpose of a double-points weekend is to raise redemption**. Planning it on an assumption that [redemption stays at the average](https://joy.so/blog/loyalty-program-redemption-rates/) is planning for the promotion to fail.

And there is a third, which is the uncomfortable one: if the points really are never redeemed, they are cheap because they changed nobody's behaviour. A loyalty cost that stays low is usually a loyalty program that is not doing anything. The honest way to read the table is to model the case where the promotion works, and check that you can still afford it.

## The same promotion costs a different brand twice as much

The table above holds one thing fixed that varies enormously between stores: the cost of goods. Keep the promotion identical — 40% off, 2x points on the pre-discount price — and move only the COGS, and the cost of the points as a share of what is left swings by a factor of three and a half.

| Gross margin at list price | Cost of goods on a $100 product | Margin left after 40% off | What the 2x points cost that margin |
| --- | --- | --- | --- |
| 75% | $25 | $35.00 | 5.71% |
| 70% | $30 | $30.00 | 6.67% |
| 65% | $35 | $25.00 | 8.00% |
| 60% | $40 | $20.00 | **10.00%** |
| 55% | $45 | $15.00 | 13.33% |
| 50% | $50 | $10.00 | **20.00%** |

A brand at 75% gross margin can run the aggressive version of this promotion and barely feel it. A brand at 50% running the identical promotion gives up a fifth of the margin on every discounted order. Both read the same vendor blog post recommending a double-points weekend, and the post is right for one of them.

![Bar chart showing the same promotion across six cost structures](https://cdn-web.joy.so/cdn/image/2026/10/fig-row7-cogs-d03183.webp)

_One promotion, six catalogues. The cost swings by a factor of three and a half._

Below about 60% cost of goods the discount itself has taken everything, and the loyalty question stops mattering because the order no longer has a margin to spend. If your catalogue has SKUs in that territory, the lever is the discount depth on those SKUs, not the earn rate.

## The cost does not land in the month you book the revenue

Points issued over a November weekend are a promise redeemed later, which means the revenue and the cost of earning it fall in different periods and usually in different quarters. The weekend's reported margin is therefore better than the weekend's real margin by whatever the outstanding points eventually cost.

This is the part worth raising with whoever closes your books, before November rather than after. A double-points weekend roughly doubles issuance without doubling redemption, so the immediate effect is a larger outstanding balance rather than a larger expense — and the expense arrives in January and February, in the quarter that is already the thinnest.

It also means the honest measure of the promotion is not the weekend's revenue. It is the weekend's revenue minus [the eventual cost of the points it issued](https://joy.so/updates/loyalty-program-metrics/), which you will not know for months. Decide in advance what you will compare it against, because after the fact everyone compares it against the week before and declares victory.

## Six levers, in order of what they save

| Lever | What it is worth | How to use it |
| --- | --- | --- |
| Choose the earning base deliberately | Removes the 5.00% row entirely | Decide whether points are earned on the amount paid or the pre-discount price, and write the decision down. This is the difference between 3.00% and 5.00% of margin on the same order. |
| Gate the multiplier by tier | Roughly halves the cost of a 2x headline | Your top tier is the group that buys at full price for most of the year. A blanket 2x spends the same margin on a one-time deal hunter. |
| Cap points per order | Caps the tail | A cap costs nothing on a typical basket and removes the worst case, which is a large discounted order earning at a multiplier. |
| Exclude the deepest-discount collection | Removes the worst rows | Both Smile and Rivo document exclusion mechanisms; decide which SKUs are doorbusters and keep them out of the earning base. |
| Pay in an instrument that is not margin | Moves the cost off the weekend | Free shipping, early access, or store credit dated into January costs differently and often less, and January is when the margin denominator is large again. |
| Measure with your own redemption rate | Makes the number real | The 13.67% average is somebody else's merchant base. Yours is knowable, and it is the only multiplier in the last column that belongs to you. |

## The earning base is the decision

Of those six, one is worth more than the rest combined, and it is a single setting: whether points are calculated on what the customer paid or on the price before the discount. On the worked example that is the difference between 3.00% and 5.00% of gross margin, on an order the customer experiences identically either way.

It is also the setting with the least consistent behaviour across the category, which is why it has to be checked rather than assumed. Vendors differ on whether discounted orders are excluded at all, on whether an exclusion covers discount codes only, and on what happens with an automatic discount that is neither a code nor a compare-at price. Open the setting, read what it actually says, and run one test order at the discount you plan to run in November.

While you are in there, settle the discount combination setting in the same sitting. It is the other half of the same cart, and it has a deadline of its own, because changing it does not reach reward codes a customer is already holding.

## What this means for the weekend you are planning

None of this argues against running a multiplier. It argues for running one you have priced. A 2x weekend on a list-price base, capped per order and [gated to your top tier](https://joy.so/membership-program/), is a different instrument from a blanket 2x on a pre-discount base, and the gap between them on a discounted order is most of the margin that makes the weekend worth doing.

The other eight mechanics that work on a loyalty base during BFCM, and when each is the cheaper choice, are in our [BFCM loyalty strategies guide](https://joy.so/blog/loyalty-strategies-for-bfcm/). The order of work for the weeks before the weekend is in our [Black Friday checklist](https://joy.so/blog/black-friday-checklist/).

## The discount is the expensive half, and somebody measured that

Everything above prices the loyalty side of the weekend. It is worth putting the other side next to it, because the only large-cohort measurement we could find points somewhere uncomfortable.

Klaviyo analysed a stable cohort of 10,000 brands across BFCM 2025 and reported, in [a press release filed with the US Securities and Exchange Commission](https://www.sec.gov/Archives/edgar/data/1835830/000183583025000114/bfcm2025reportpressrelease.htm), that **"brands offering the smallest discounts saw the highest growth (+14% YoY) across BFCM"**. The same filing puts revenue growth from repeat customers at **13.5% year on year**, outpacing revenue from new buyers.

That is a correlation across a cohort rather than a controlled experiment, and shallow discounting and strong brands travel together. But it reframes the arithmetic on this page. The expensive decision in November is usually the depth of the discount, and the loyalty multiplier is the thing that makes a deep discount worse rather than the thing that caused it. If the table above makes you want to cut the multiplier, check whether cutting five points off the discount would do more.

There is a third cost that lands later still. The points you issue are deferred revenue rather than a cost already paid, and, as [PwC's revenue guide on unexercised rights](https://viewpoint.pwc.com/dt/us/en/pwc/accounting_guides/revenue_from_contrac/revenue_from_contrac_US/chapter_7_options_to_US/74unexercised_rights_US.html) sets out, the estimate behind that balance is reassessed every reporting period. A weekend that doubles issuance mostly enlarges the balance, and the cost of it arrives in the quarter after the one you are celebrating in.

## What this page cannot tell you

One number would settle the whole argument and it does not exist publicly: how much incremental revenue a points multiplier actually produces. No vendor, platform or research house publishes a controlled measurement of a double-points weekend against a held-out group. Every figure in circulation measures participation, not causation.

So the cost side of this decision can be calculated to the cent, as above, and the benefit side cannot be calculated at all from published sources. That asymmetry is uncomfortable, and it is the reason the recommendation has survived uncosted for so long: there is nothing to weigh it against, so nobody weighs it.

[The practical response is a holdout](https://joy.so/blog/loyalty-program-roi/). Run the multiplier on most of your base and not on a randomly chosen slice, then compare revenue per member across the two over the following ninety days rather than over the weekend. One weekend run that way produces a number that belongs to your brand, and it is worth more than every benchmark in this category put together.

## Run the table on your own numbers

Replace $100 with your average order value, $40 with your real cost of goods, and 13.67% with your own redemption rate. The structure holds: the cost as a share of revenue will barely move, the cost as a share of margin will roughly double under discount, and the earning base will be worth more than the multiplier. Then decide the weekend with the number in front of you, which is more than the category has managed so far.

## FAQs

### Is a double-points weekend more expensive than a discount?

It is cheaper per order and it lands later, which is the honest version of the vendor argument. A discount cuts the price of every sale; points cost money only when they are redeemed. What the vendor argument leaves out is that the two are usually stacked, so the points are calculated on an order whose margin the discount has already halved.

### What is the single most expensive setting in a loyalty program?

The earning base. On the worked example above, awarding on the pre-discount price rather than the amount paid moves the cost from 3.00% of gross margin to 5.00%, with no change to the headline a customer sees.

### Should I use the 13.67% redemption rate in my own model?

Only as a sanity check, and never as a planning assumption for a BFCM push. The whole purpose of a points promotion is to raise redemption, so planning with an average that assumes it stays flat is circular. Use your own rate, and model what happens if the promotion works.

### Is low redemption good news?

No, and this is the trap in the arithmetic. Points that are never redeemed are cheap precisely because they changed nobody's behaviour. A program that looks inexpensive on this measure is usually a program that is not working.

### Does a points liability sit on the balance sheet?

Part of each sale is allocated to the loyalty credits and deferred, then recognised when the credits are redeemed. That is a finance conversation rather than a marketing one, and it is the reason to have it before November rather than in January.

### What about the customers who would have bought anyway?

That is the real question and no public dataset answers it for a BFCM cohort. What you can do is run the multiplier on a segment rather than the whole base, and compare. One weekend of a held-out group is worth more than a year of benchmarks.
