Subscription sales in an online store: calculate the discount before you promise it
Michał Kloczkowski
Published date: 2026-09-14
Update date: 2026-09-15

Have a specific question?
Subscription sales look like a simple idea. The customer signs up once, gets a package every few weeks, and you get predictable revenue. When we were building a subscription module for our clients' stores, it quickly became clear that most of the work doesn't sit in the recurring order itself. It sits in four numbers: how fast the discount grows, where it stops, what happens when the customer changes the order, and how many times a year they can take a break. Set them before anyone starts coding, because each of them decides your margin and what you need to keep in stock.
A subscription model is a two-way commitment
The customer commits to buying regularly, and the store commits to delivering regularly. Most conversations about subscriptions only cover the first half of that sentence.
One thing came out of our interviews with clients: for many buyers, flexibility is the price of entry. They want to pause deliveries for a holiday, change the quantity, cancel at any time. A subscription that's hard to leave puts people off at the sign-up stage.
The catch is that every bit of freedom you give the customer shifts risk onto you. A customer who isn't forced into anything needs a reason to stay, so a loyalty discount appears. The discount eats into the margin. A pause leaves stock in the warehouse that was reserved for a delivery that never went out. The four parameters below are where you draw that line.
The subscription model comes in several variants. A curated subscription is a surprise box the store puts together for the customer every month. An access subscription gives membership, discounts or content in return for a fixed fee. This article is about the third one, the replenishment subscription: the customer regularly receives the same product they use up, and the store has to have it and deliver it on time. That's where the maths of discounts and stock is least forgiving.
Example: a coffee shop
All numbers in this article are assumptions for the calculation, not values from a specific implementation. The point is the method, which you can apply to your own margin, just as with product bundles, where the discount also has to be calculated before it goes into the catalog.
A coffee shop sends subscribers a box every 4 weeks. This is what one box looks like:
| Item | Amount |
|---|---|
| Box price | 120.00 PLN |
| Cost of goods (40% margin) | −72.00 PLN |
| Shipping paid by the store | −14.00 PLN |
| Payment fee (2%) | −2.40 PLN |
| Left per box | 31.60 PLN |
Those 31.60 PLN are the entire budget you pay customer loyalty from. Each parameter below either takes something out of it or protects it.
Progressive discount (X): how fast it grows
X is the discount the customer gets for each subsequent subscription period. It decides how fast loyalty starts paying off for the customer and stops paying off for you.
In the example, X is 2%. The first delivery goes out at full price, the second at 2% off, the third at 4%, and so on until the discount hits the cap. With a 10% cap, the customer reaches the full discount on the sixth delivery, after roughly five months.
A low X means the first boxes earn the most, and the customer sees a growing benefit throughout the first year. A high X shortens that path and looks more attractive at sign-up, but it gets every subscriber to the least profitable level faster. Progression makes sense precisely because it rewards how long the subscription lasts.
Discount cap (Z): where it stops
Z is the discount cap, above which the discount no longer grows. It's the only parameter that protects your margin from your best customers.
Without a cap, a subscriber three years in would be buying at a loss. You don't pick Z by gut feeling, you calculate it from what's left per box:
| Cap Z | Discount per box | Left per box |
|---|---|---|
| 10% | 12.00 PLN | 19.60 PLN |
| 20% | 24.00 PLN | 7.60 PLN |
A 20% cap sounds better in marketing, but it leaves 7.60 PLN. One complaint, one lost parcel or a price rise at the roastery, and the profit from the next few deliveries is gone. At 10%, the store still has room for ordinary life. The rule is simple: set the cap so that a box at the maximum discount can still survive one bad month.
Order change threshold (Y): what happens when the customer changes the order
Y is the order value change threshold above which the discount reacts. Cutting the order by more than Y suspends the discount for that period, and raising it by more than Y gives the customer another X.
Without this threshold, flexibility has a hole in it. A customer on the full 10% discount switches from the 120 PLN box to a smaller one for 80 PLN, and keeps the discount. Let's calculate it with the same cost ratios:
| Order | Cost of goods | Shipping | Payment fee | 10% discount | Left |
|---|---|---|---|---|---|
| 120 PLN | 72.00 PLN | 14.00 PLN | 2.40 PLN | 12.00 PLN | 19.60 PLN |
| 80 PLN | 48.00 PLN | 14.00 PLN | 1.60 PLN | 8.00 PLN | 8.40 PLN |
Shipping costs the same whatever the box size, so a smaller order at the full discount earns almost as little as the 20% cap, only through the back door. In the example, Y is 25%. Going from 120 to 80 PLN is a drop of one third, so the discount is suspended for that period and the store keeps 16.40 PLN. The customer can still shrink the order, they just don't take the reward for value they're no longer buying.
The other side of the threshold works as an incentive. A customer who raises the order by more than 25% gets an additional X, and the store sells more at the same shipping cost.
Pauses (N): how many your warehouse can take
N is the number of periods per year for which the customer can pause the subscription. For the customer it's a holiday convenience, for the store it's stock that was meant to ship and didn't.
With a 4-week cycle, a year has 13 deliveries. In the example, N is 2, so a subscriber who uses both pauses receives 11 boxes. That sounds harmless until you set it against stock reservation. If the store reserves coffee several months ahead, every pause is a batch waiting on the shelf, and coffee loses freshness.
That's why you set N together with the reservation horizon, not on its own. While you're at it, settle the question customers will ask first: does a pause freeze the accumulated X discount or reset it? Both answers are defensible, but they have to be in the terms and conditions before anyone pauses their first delivery.
Cancellation is a separate matter, and there's nothing to set here. The customer must be able to cancel at any time.
A customer dashboard that shows the parameters
The subscription dashboard has to show the effects of these four numbers, next to the order list. A customer who can't see what they've gained has no reason to stay, and flexibility they can't find doesn't exist.
The minimum it should include:
Subscription period, chosen from predefined intervals, for example every 2, 3 or 4 weeks.
Start day, so the customer decides whether the package comes from the 15th of the month or from the sign-up date.
Pause and delivery address change, with a visible counter of pauses used (that's N in practice).
Accumulated discount, meaning how much the customer has saved through regular purchases (that's X and Z in practice).
Shipping dates: when the first package went out and when the last one did, so the customer can plan purchases instead of guessing whether something is still on its way.
Subscription status: active, paused, awaiting confirmation.
Editing the order should say right away what will happen to the discount. A customer who moves the quantity down should see that they're crossing threshold Y before confirming the change, not after the fact on the invoice.
Stock: the other half of the commitment
If you're not the manufacturer and you don't sell a virtual subscription, the delivery promise rests on your warehouse. The customer paid for regularity, and running out of stock hits it directly.
Three things worth setting up before launch:
1. Reservation based on the forecast. The store knows the number of active subscriptions and their cycles, so it can reserve stock several months ahead. Pauses (N) and order changes (Y) adjust that forecast, so the reservation has to see them. This commitment has another side too: active subscriptions tell you in advance how much stock will move in the coming cycles, so the sales forecast stops being guesswork. 2. Automatic out-of-stock alert. When a subscription product drops below the level needed for the next cycle, the administrator should know immediately. The simplest version is an email, a more advanced one is stock monitoring. 3. Product selection. Not every product fits a subscription. Consumables work best: products that wear out at a predictable pace, which customers forget to reorder exactly when the old one runs out. For one of our clients, whose products get replaced every few weeks, the subscription delivers the next unit when the previous one runs out. Only products whose regular delivery you can guarantee go into the offer. Selling well isn't enough.
Recurring payments without card numbers in the store
A subscription needs a saved card, and the store shouldn't be the one storing it. The card number stays with the payment provider, and the store keeps only a token it uses to request each subsequent charge.
Payment providers call this vault different things, often simply Vault. The mechanism is the same: the customer enters card details once, in the provider's form, and every next delivery charges them automatically. For the customer it's the convenience a subscription can't work without. For the store it means no responsibility for storing the most sensitive data that passes through a purchase.
Choosing a payment provider is therefore part of the subscription project, alongside negotiating fees. Recurring payments are offered by Polish providers including Przelewy24, Autopay, Tpay and PayU, but the details differ between gateways. Before you sign, check whether the gateway supports recurring card payments with a stored token and how it handles a card that expires during the subscription.
Summary
Subscription sales are easy to build in a way that looks good at sign-up and slowly loses money on every loyal customer. Four parameters guard against that at the design stage. X decides how fast the discount grows, Z where it stops, Y what happens to a smaller order, and N how many breaks the warehouse can take.
You don't pick any of them by gut feeling. You calculate all of them from what's left of one box after the cost of goods, shipping and payment. Then the same numbers come back in the customer dashboard, in stock reservation and in the choice of payment gateway, because a subscription is a commitment in both directions.
Na jakie pytania znajdziesz odpowiedź w tym artykule?
What discount should a subscription offer?
One where a box at the maximum discount still makes money after the cost of goods, shipping and payment. First calculate what's left from one delivery, then set the discount cap with a buffer for complaints and swings in purchase prices. A progressive discount that grows with each period rewards how long the subscription lasts instead of the sign-up itself.
Should customers be able to pause a subscription?
Yes, for buyers flexibility is the price of entry. It's worth limiting the number of pauses per year, though, and setting it together with how far ahead the store reserves stock, because every pause leaves goods in the warehouse that were prepared for a delivery.
What should you do when a customer reduces a subscription order?
Set an order value change threshold. A cut above the threshold suspends the discount for that period, because shipping costs the same, and a smaller order at the full discount can earn a fraction of what the full one does. A rise above the threshold, in turn, can add to the discount.
What is the difference between a subscription and a membership?
In everyday use the two often overlap. A membership usually means a fixed fee for access to a service, perks or content, often for a set term. A subscription in an online store most often means a regular product delivery that the customer can change, pause or cancel. For the store, what you write into the terms and conditions matters more than the name: whether there's a minimum term, how many pauses are allowed and how the discount works.
How do you store card data securely in a subscription?
By not storing it in the store at all. Card data stays in the payment provider's vault, and the store keeps only a token for requesting subsequent charges. When choosing a gateway, check whether it supports recurring payments and expiring cards.
