returnEasier
Blog
Optimisation · 14 min read

Store credit bonus: how much to offer, and when

The DTC bonus credit tactic, with the numbers behind it: how much to offer, what lift in acceptance makes it pay for itself, and what European law demands.

In short. A store credit bonus —«€100 back on your card or €110 in credit»— is almost never expensive compared with a refund: the threshold where it stops paying off sits so high you will never get near it. What decides whether it makes or loses money is something else: how many people change their decision because of the incentive, and the only way to know that is to measure it against a control group.

The tactic is old in direct-to-consumer retail and it keeps growing. What almost nobody spells out is the maths behind it: most guides to the store credit bonus tell you to switch it on and show you the settings screen, but they give you neither the formula that answers the only question that matters —how much to offer— nor the European part, where a badly placed incentive stops being a retention lever and turns into a dark pattern. This article does both. It is a satellite of our pillar guide on how to turn your returns into retained revenue.

What exactly is a store credit bonus?

It is store credit worth more than the amount returned. A customer returning a €100 order chooses between getting those €100 back on their means of payment or, say, €110 in credit to spend in your shop. The €10 difference is the bonus: an incentive you pay in product, not in cash.

There are two ways to set it up, and they are not equivalent:

Format How it is calculated Where it fits best Risk
Percentage of the amount 10% of what was returned Catalogues with a wide price spread: the incentive scales with what comes back A large return generates a large bonus; use a cap
Flat amount €10 per return Catalogues with a uniform basket On small returns the incentive is out of proportion

The tools on the market support one, the other or both. Loop Returns —a competitor of ours— allows both and, precisely because of the risk in the bottom row, requires that with a flat amount the value returned be at least double the bonus before it will even be offered. In returnEasier the bonus is percentage only (0–100%), with an optional cap per return; it is a decision taken for simplicity, and if your catalogue calls for a flat amount, that is a legitimate reason to look at another tool.

The second configuration axis matters as much as the format: which resolution it applies to. You can put the bonus on store credit, on the exchange or on both. We will come back to this, because it is the decision that moves the most money and the one almost everybody leaves on «both» without thinking about it.

What are the brands using it actually doing?

The bonus is no longer an experiment: it is established practice among the shops that offer «shop for an exchange». The best public data available on what Shopify merchants really do is the 2026 retention benchmarks report from Loop Returns, built on 23.4 million returns from more than 4,000 Shopify merchants between 1 November 2024 and 31 October 2025. It is their data, and it is better than any estimate we could improvise.

Indicator (Loop Returns, 2026 report) Value
Merchants offering exchanges 73.6%
Merchants offering «shop for an exchange» (Shop Now) 49.2%
Of those, the ones pairing it with bonus credit 51.7%
Average «shop for an exchange» bonus USD 11.28

Two readings. The first: more than half of those who open up their catalogue inside the return flow add an incentive on top. The second, the one worth not misreading: that USD 11.28 average is not a recommendation. It is the average across a set of mostly American merchants, with their margins and their catalogues. On a USD 60–80 cart it works out at around 15%, but copying that number without doing your own maths is exactly the mistake this article is trying to prevent.

When does a bonus stop paying off? (the answer is surprising)

Almost never, if you compare it with a refund. This is the first calculation to do, and it clears away the wrong fear.

When a customer accepts credit instead of money, two things happen: the amount stays in your till and, later on, you hand over product to the value of whatever credit ends up being spent. What that product costs you is not its selling price: it is its cost. Four variables show the whole picture:

V = amount returned
b = bonus (as a decimal: 10% → 0.10)
m = gross margin (0.60 = 60%)
r = final credit redemption (0.75 = 75% of everything issued will eventually be spent)

Retained margin = V × [ 1 − (1 − m) × (1 + b) × r ]

Against a refund —which leaves you at zero— bonus credit pays off as long as (1 − m) × (1 + b) × r is less than 1. Solving for the maximum bonus:

b_max = 1 / [ (1 − m) × r ] − 1
Gross margin Final redemption Bonus at which it would stop paying off
30% 100% 43%
30% 75% 90%
45% 75% 142%
60% 100% 150%
60% 75% 233%
75% 75% 433%

No shop offers a 90% bonus, let alone 233%. The threshold is so far away that the question «can I afford 10%?» is the wrong question. Unless you sell on very thin margins with redemption close to 100%, compared with a refund you can always afford it.

⚠️ Mind which number you put into r. It is final redemption —the fraction of what you issue that will end up being spent at some point—, not the figure you have at 90 days. If you follow the advice not to expire credit, whatever is still unspent on day 90 has not disappeared: it is live and can be redeemed later. Using the 90-day figure as if it were the final one inflates your result, and by a fair amount: with a 60% margin and a 10% bonus, going from 75% redemption to 100% raises the required relative lift from 4.5% to 7.1% and brings the maximum bonus down from 233% to 150%. Until you have a final figure of your own, use a high, not low estimate and treat 90-day redemption for what it is: a leading indicator of how attractive your credit is, not the model's variable.

So where is the real cost?

The right question: how many people are you giving it away to?

The cost of the bonus is not paid by the customers it converts, but by the ones who were going to choose credit anyway. Those people are getting free product for a decision they had already made. That is the spend that shows up on no dashboard, and it is what decides whether the tactic wins or loses.

If you call p₀ the share who would choose credit without a bonus and p₁ the share who choose it with one, the tactic pays off when the relative lift clears this threshold:

                         (1 − m) × b × r
Required relative lift = ─────────────────────────
                         1 − (1 − m) × (1 + b) × r

With a 60% gross margin and a 75% final redemption rate, you get this table:

Bonus Required relative lift in credit choice
5% 2.2%
10% 4.5%
15% 6.9%
20% 9.4%
25% 12.0%
30% 14.8%

Read it like this: if 30% of your commercial returns end in credit today, a 10% bonus breaks even when that 30% becomes 31.4%. Above that, you win. It is a low bar —and that is why the tactic works so often— but it is not zero, and it has to be checked, not assumed.

Margin shifts the bar a great deal. Same 10% bonus, same 75% final redemption:

Gross margin Required relative lift with a 10% bonus
30% 12.4%
45% 7.6%
60% 4.5%
75% 2.4%

The thinner your margin, the more people you have to convince for the bonus to pay for itself. An electronics shop on a 30% margin needs almost three times the effect of a cosmetics shop on 75%. If you ever wondered why this tactic looks obvious in some categories and doubtful in others, the answer is in that table.

The assumption underneath, said out loud

Both tables assume that bonused and non-bonused credit are spent in the same proportion, that is, that r is the same with the bonus and without it. It is the reasonable default and what keeps the tables down to two dimensions, but it is worth knowing it is there, because the bonus can also move redemption: credit the customer reads as a prize may get spent sooner, or get spent just the same but on a bigger order.

If your data says it does move —step 3 of the setup below asks you to measure redemption per group precisely so you can see it—, the honest comparison carries two rates: r₀ without the bonus and r₁ with it. The condition for it to pay off becomes:

p₁ × [ 1 − (1 − m) × (1 + b) × r₁ ]  ≥  p₀ × [ 1 − (1 − m) × r₀ ]

The tables above are the special case r₀ = r₁ (and in the b_max one, r is that of the bonused credit). The practical reading is simple: if your r₁ comes out much higher than your r₀, the bar rises; if it comes out lower, it falls.

And here comes the important warning, because it is counter-intuitive: until you have both figures, do not replace them with a single «prudent» one. There is no such thing. If the bonus really does move redemption, no single value comes anywhere near the real threshold. With a 60% margin, a 10% bonus, an r₀ of 50% and an r₁ of 100%, the general condition calls for a lift of 42.9%; any single r between 50% and 100% would give you between 2.6% and 7.1%, that is, six to sixteen times less. There the merchant who rounds is precisely the one who switches on a loss-making offer.

What you can do without data is bound the two separately: set a low r₀ and a high r₁, and feed those two bounds into the general condition. You will get a stricter bar than the one in the tables, and that is the one that protects you. The tables, meanwhile, read them for what they are: a scenario —the one where redemption is the same in both groups—, not your number.

A full worked example (hypothetical)

⚠️ Made-up figures, for illustration only. returnEasier is a new product and we have no customer data; this example is here to teach the calculation, not to promise results.

A hypothetical fashion shop. In one month: 100 commercial returns averaging €70, €7,000 in play. Gross margin of 60%, credit redemption of 75%. Today, with no bonus, 30% of those returns end in credit.

Scenario Credit issued Product handed over (at cost) Cash retained Retained margin
No bonus (30% choose credit) €2,100 €630 €2,100 €1,470
10% bonus, rises to 40% €3,080 €924 €2,800 €1,876
10% bonus, rises only to 31.4% €2,418 €725 €2,198 €1,473

The middle row is the good case: +€406 a month for flipping a switch. The bottom one is the break-even point, and it is there as a reminder that it exists. Note three things:

  1. Product handed over is counted at cost, not at selling price. It is the most common accounting mistake in the opposite direction: believing that a 10% bonus costs 10% of the amount. It costs 10% of the cost of the product that ends up going out, and only on the part that gets redeemed.
  2. The calculation assumes the customer spends exactly their credit, and that bonused and non-bonused credit are redeemed in the same proportion (the r₀ = r₁ assumption above). Neither of those makes the calculation automatically conservative, and it is worth seeing why. Some customers spending more than their credit and paying the difference sounds like an improvement, but it only is one if that extra spend did not already exist: if the customer was going to put money on top anyway, the bonus substitutes that money instead of adding to it. With a €100 returned order, a 60% margin, 100% redemption and the same €110 cart in both cases, the group without a bonus leaves you €100 of credit + €10 in cash − €44 of cost = €66, and the bonused one, putting nothing on top, leaves you 100 − 44 = €56. There the real threshold is a lift of 17.9%, not 7.1%. In other words: the example is not a floor, it is a scenario.
  3. Legal withdrawals are not in this table. They do not belong in this calculation, and the next section explains why.

Is it lawful in the European Union to offer more in credit than in cash?

Yes as a commercial incentive, and with one condition that is not optional: the refund has to stay equally accessible. The bonus is not the problem; the problem is where you put it.

When a European consumer exercises their right of withdrawal, Article 13(1) of Directive 2011/83/EU requires you to reimburse all payments received «using the same means of payment as the consumer used for the initial transaction», with two cumulative conditions for stepping outside that rule: that the consumer expressly agrees to another means and that they incur no fees as a result. In Spain, for example, the same rule sits in Article 107 of Royal Legislative Decree 1/2007 (TRLGDCU).

A bonus does not stand in for that express agreement. It sweetens it, it does not create it. And «express» has a concrete content: the Landgericht Bochum, a German court, held in judgment I-13 O 72/25 of 15 October 2025 that a clause in the terms and conditions is not enough as express agreement for handing over a voucher after a withdrawal. We develop it in refund or store credit? what your customer can demand.

There is also a second front, and it comes with a date. From 19 June 2026, Directive (EU) 2023/2673 requires shops that direct their activity at EU consumers to offer a clearly identified withdrawal function for the contracts where that right exists. If that button lands on a screen where bonus credit shines and the refund sits in grey, you are not optimising: you are exposing yourself to it being found a dark pattern under Directive 2005/29/EC on unfair commercial practices, which already penalises today those practices that materially distort the decision of the average consumer, with no need to wait for any new law. Mind the nuance, because it decides how your screen gets judged: no rule on its own prohibits giving prominence to a voluntary alternative; what is assessed is the design as a whole and its effect on the decision. And the penalty regime introduced by Directive (EU) 2019/2161 sets, for widespread cross-border infringements, a maximum fine of at least 4% of the trader's annual turnover in the member state concerned.

Where you put the bonus Can you?
Commercial flow (exchange or return under your policy) ✅ Yes, freely: it is a service you choose to offer
Legal flow, as an option alongside the refund ⚠️ Only with express agreement, at no cost and with full parity of access
Legal flow, as an option featured above the money ⚠️ High risk: it is a dark pattern if it distorts the decision. We do not recommend it
Legal flow, as the default resolution ❌ No: silence is not express agreement

The operational recommendation we give is stricter than the legal minimum, and deliberately so: keep the bonus out of the legal flow entirely. Not because it is impossible to do it properly there, but because doing it properly means proving express agreement case by case, and that is precisely the surface that has to be spotless in front of an inspection.

Expiry, VAT and the liability nobody writes down

Three matters that always come up after you switch the bonus on, never before.

Credit issued is a liability, not revenue. If you issue €10,000 in credit and €7,000 gets spent, you have retained €7,000 and you owe €3,000 in future product. Carrying the two figures separately —issued and spent, by cohorts— is the only way for your redemption rate r to end up being a fact rather than a wish: each cohort shows you what fraction of what you issue gets spent, and over what period. The 90-day cut is the first point on that curve, not its end.

Do not build the model on credit that never gets spent. The arithmetic has a trap in it: a low redemption rate makes the bonus look more profitable, because you hand over less product. It is a mirage in three ways. In accounting terms you still carry the liability. Commercially, a customer with unspent credit is a customer who did not come back. And legally, if the credit came from a withdrawal the customer accepted, that money was theirs.

Expiry depends on the country. Shopify lets you set an expiry date when you issue credit and, when a customer builds up several balances, spends the one expiring soonest first; but Shopify itself warns that expiry laws vary by country and recommends checking them. There is no harmonised European rule on minimum validity. Two prudent criteria you can apply in any market:

  • If the credit replaces a refund the customer accepted, do not put an expiry on it.
  • If the credit is a commercial incentive, an expiry announced before the choice is defensible in the markets that allow it, and for whatever period each one permits. Announced afterwards, it is not.

And it is worth looking market by market before you settle on a number, because «I announced it up front» is not always enough. Germany is the example that catches shops out most often: claims arising from the credit are by default subject to the standard three-year limitation period of § 195 of the German Civil Code (BGB), which starts running —under § 199(1)— at the end of the year in which the claim arose; and a shorter expiry imposed through your general terms and conditions has to survive the fairness review of § 307 BGB. In other words: setting six months and announcing it may leave you with an unenforceable clause rather than with expired credit.

VAT on the bonus part, with your adviser. The European framework is Directive (EU) 2016/1065, which inserts Articles 30a, 30b and 73a into the VAT Directive and distinguishes single-purpose vouchers (VAT is due on each transfer) from multi-purpose ones (due on redemption). Generic credit redeemable against any product usually falls into the second group, and there the later supply is still a taxable transaction: Article 73a sets its taxable amount at the consideration paid for the voucher or, where no information on that consideration is available, at the monetary value indicated on the voucher itself or in the related documentation, less the VAT relating to the goods or services supplied. What is particular about the bonus is not that it sits outside the taxable amount, but that it was issued without any additional consideration — and that is exactly the question worth closing off with a tax adviser before you scale the volume. Treat this as orientation, not as an answer.

How to design a bonus that cannot be gamed

A badly built incentive becomes a way of extracting value without buying anything. Five design rules, with what returnEasier does on each:

  1. The bonus must never turn back into money or into a withdrawable voucher. It is the rule everything else rests on: if the customer can return, collect the bonus as credit and not buy, you have built a machine for giving margin away. In returnEasier, when the replacement cart is worth less than what was returned, only the unspent base turns into a voucher; never the bonus.
  2. Cap it per return. An uncapped percentage bonus turns a big return into a big gift. The optional cap per return exists for exactly that.
  3. Calculate it on what was paid, not on the list price. If the order carried a discount, the base is the amount the customer actually paid. Putting a bonus on the list price means paying for the same promotion twice.
  4. Do not put a bonus on shipping. The base is the value of the product returned; including carriage inflates the incentive with no relation to what you retain.
  5. Freeze what the customer saw. If you lower the bonus while someone has the screen open, the honest thing —and the thing that avoids a complaint— is to honour the offer shown. returnEasier does that today on store credit: it stores the bonus at the moment it is shown and reads it again on confirmation, with a best-effort mechanism (if that temporary record is unavailable, the settings in force apply). On «shop for an exchange» it does not: the discount is recalculated with the settings in force at confirmation and is frozen only from there on, in the draft order. Which means that if you touch the percentage while a customer is browsing your catalogue, that change can indeed move. Practical conclusion, whatever tool you use: do not touch the bonus while there are open requests.

And one configuration decision worth more than the five above put together: start by applying the bonus to credit only, not to exchanges. If your exchange rate is already high, putting a bonus on them is mostly subsidising decisions you already had. The incentive pays for itself when it turns refunds into retention. Extend it to exchanges later, if the data justifies it.

How do you know whether it is working? The control group

Without a control group you are not measuring the effect of the bonus: you are measuring seasonality. It is the part almost nobody sets up, and without it every table in this article is theory.

The minimum honest setup:

  1. Leave between 10% and 20% of commercial returns without seeing the offer, assigned at random. Genuinely at random, request by request and in a stable way: splitting by date, by channel or by product is not a control group, it is a comparison between different populations. That is your p₀.
  2. Compare the credit-choice rate between the two groups over at least one full return cycle for your shop.
  3. Measure redemption for each group separately, not just the choice. Credit that is chosen and not spent has retained nothing. And measuring it per group is what tells you whether your r₀ and your r₁ are equal, which is the assumption the tables hang on. The 90-day cut works for you as a leading indicator; for the model, what counts is final redemption.
  4. Look at the value of the redemption order in both groups. The customer spending above their credit only counts as value if the control group was not already producing it: if they were going to put money on top anyway, the bonus saves them that money instead of adding to it.
  5. Record the margin cost of the bonus actually handed over, not of the bonus issued.

Two cautions. The first, legal: the experiment may vary the incentive, never access to the refund; both groups see the money equally available, with the same clicks. The second, on scope: this is done in the commercial flow. The legal withdrawal flow is not a testing ground.

And now the uncomfortable part: at your scale, that experiment does not conclude

The low bar that makes the tactic attractive is also what makes it almost impossible to verify in a small shop. It is worth saying out loud, because no guide says it and because knowing it changes what you do with the result.

A 4.5% relative lift on a 30% acceptance rate is 1.35 percentage points. Telling a movement that size apart from noise with the usual confidence would take something like 18,000 returns in each group. If you handle 50 returns a month, that experiment does not finish within your working life.

So the honest position is this:

  • Use the threshold as a decision criterion, not as something you are going to measure — but the threshold that actually applies to you, not the one in the table. The question stops being «how much has it gone up?» and becomes «does it seem plausible to me that my bonus moves acceptance above my threshold?». And that one has to be worked out: if you suspect that your r₁ is not the same as your r₀, or that part of the spending above the credit was already there without the bonus, the right number is not the 4.5% in the table but the one that comes out of the general condition with your bounds, which can be several times larger. The cost of being wrong is small in the scenario of the tables; outside it, it does not have to be.
  • Measure what can be seen at your scale. The big effects do show up: if acceptance goes from 30% to 40%, around 350 returns per group is enough to tell it apart. And the redemption rate and the value of the redemption order are estimated from far fewer observations than a one-point difference.
  • Leave the control in place anyway. It will not give you statistical significance, but it protects you from the opposite trap, which is the one that really loses money: crediting the bonus with a rise that was seasonal.
Metric What it tells you Common trap
Credit choice (test vs. control) The real effect of the incentive Having no control and crediting it all
90-day redemption Whether the credit turns into revenue Using it as the model's final redemption
Value of the redemption order Whether the customer spends above it Counting it as gain without checking the control
Margin cost of the bonus What you really pay Counting it at selling price
Outstanding credit issued Your pending liability Booking it as retained revenue

Common mistakes

  • Putting the bonus inside the legal flow. The expensive mistake. See above.
  • Counting credit issued as revenue. It is a liability until it is spent.
  • Putting a bonus on exchanges you already had. Start with credit; extend with data.
  • Copying the average figure from another market. The USD 11.28 in Loop's report is the average across mostly American merchants, not a recommendation for your margin.
  • Announcing the expiry after the customer has chosen. That is no longer an incentive.
  • Calculating the bonus on the list price instead of on what the customer paid.
  • Leaving the bonus uncapped in a catalogue with a very wide price spread.
  • Hiding the refund «to help» conversion. It is the short road to an enforcement file, with the 4% regime behind it.

Frequently asked questions

What is a store credit bonus? Store credit worth more than the amount returned: €100 back on the card or €110 in credit. The difference is a commercial incentive, and it is set up as a percentage of the amount returned or as a flat amount depending on the tool.

How much of a bonus is worth offering? The useful question is how many more people have to choose credit for it to pay off. With a 60% margin and 75% final redemption, a 10% bonus needs a 4.5% relative lift in credit choice; a 30% bonus, 14.8%.

Is it lawful to give more in credit than in cash in the EU? Yes, as a commercial incentive and with the refund equally accessible. On a withdrawal, Article 13(1) of Directive 2011/83/EU requires the express agreement of the consumer and that it costs them nothing; a clause in the terms and conditions is not that.

Can I put an expiry on it? It depends on the country; there is no harmonised European rule and Shopify warns that the laws vary. In Germany, for example, the credit is time-barred under the standard three-year period of § 195 BGB, and shortening that in the general terms and conditions must survive the review under § 307. If the credit replaces a refund the customer accepted, the prudent thing is not to expire it.

Should I put a bonus on exchanges too? Start with credit only. Putting a bonus on exchanges you already had is subsidising decisions already taken.

How do I know whether it works? With a 10–20% control group, assigned at random, that does not see the offer. Without a control, you are measuring seasonality. But reckon with this: at small-shop scale a control picks up big movements, not one-point differences —telling a 4.5% relative lift apart would call for some 18,000 returns per group—, so the threshold serves you as a decision criterion, not as something you are going to measure — and the threshold that counts is yours, worked out with your r₀ and r₁ bounds, not the 4.5% in the table.

Conclusion

If you sell on Shopify to European consumers and you are weighing up bonus credit, the order is this. First, work out your threshold with your numbers —gross margin and final redemption, not the 90-day one; and if you suspect the bonus also moves redemption, bound r₀ and r₁ separately and use the general condition instead of the tables— and keep hold of the relative lift you need, not the percentage another brand uses. Second, switch it on for credit only, capped and calculated on what was paid. Third, set it up with a randomised control group from day one: it is cheap at the start and impossible to reconstruct afterwards, even if at your scale it serves to show you big movements rather than to fine-tune a single point.

And a fourth thing: keep it out of the legal withdrawal flow. Let us be honest about what that costs, because it does cost something. It is not true that there was nothing to win there: a customer who expressly agrees to the credit, at no cost to them, leaves the money in your till just as in the commercial flow. The thing is that this retention is small —it takes an express agreement case by case— and fragile, because it is won on the one surface that has to be spotless in front of an inspection. Giving it up is a deliberate decision: you trade a minor opportunity for a legal flow you do not have to defend. We think it is a good trade, but it is a trade, not a free lunch. How credit is set up in Shopify, with its real limits, is in Shopify store credit; the full map of levers is in the retained revenue pillar guide.

💡 Ready to incentivise without risking compliance? returnEasier keeps the compliant withdrawal button —refund to the original means of payment, no friction— separate from your commercial flow, where the bonus is set as a percentage, with a cap, and with a choice of whether it applies to the exchange, to the credit or to both (Pro plans and above). Try it free — 3 trial returns, no card.


Official sources

Shopify is a registered trademark of Shopify Inc.; Loop and Loop Returns are trademarks of Loop Returns, Inc. Third-party data captured on 18 September 2026.

Informational content; not legal or tax advice. For specific cases, consult a lawyer specialising in consumer law or your tax adviser.