Korant

Referral expiry windows: the setting nobody tunes

What the numbers say

  1. 01

    Modelled redemption rises from 21% at a 24-hour window to 68% at 30 days, then only to 74% at 90 days.

    Modelled on stated assumptions: redemption requiring a future order, concentrated in the first weeks after issuance.

  2. 02

    Extending from 30 to 90 days buys 6 percentage points of redemption while roughly tripling modelled outstanding liability.

    Modelled on stated assumptions: liability accumulating with window length at a constant issuance rate.

  3. 03

    Median days to redeem runs 0.4 days at a 24-hour window and 26 days at 90 days, so the window largely sets the behaviour it measures.

    Modelled on stated assumptions about urgency compressing or extending the decision.

  4. 04

    The redeeming order carries a modelled 9% higher average order value at a 30-day window, because a capped balance cannot be cleared on a minimum basket.

    Modelled on stated assumptions: a 15% redemption cap against a ₹1,450 average order value.

  5. 05

    2 clocks are needed: an offer window measured in days and a coin expiry measured in months, because they control different things.

    Derived from the distinction between a rotating live discount and an earned wallet balance.

Expiry gets set once, during setup, by whoever was clicking through the configuration screen. Usually 30 days or never, chosen in about four seconds.

It is the only setting in a rewards program that moves conversion and liability at the same time, in opposite directions, and almost nobody goes back to it. (Composite, drawn from configurations we have reviewed.)

The redemption curve by window length

Modelled on a ₹1,450 average order value with a 15% redemption cap.

WindowRedemption rateMedian days to redeemAOV of redeeming orderRelative liability carried
24 hours21%0.4 daysplus 2%Near zero
7 days44%3.1 daysplus 6%Low
30 days68%11 daysplus 9%Moderate
90 days74%26 daysplus 9%High
No expiry76%38 daysplus 8%Unbounded

Read the first column against the last. Redemption climbs steeply to 30 days and then almost stops, while liability continues rising for as long as you let it.

That flattening point is the whole decision.

Where the curve stops paying

Going from 7 days to 30 buys 24 percentage points of redemption. Going from 30 to 90 buys 6, and roughly triples the outstanding liability.

Twenty-four points of redemption is a different program. Six points is a rounding adjustment purchased with an obligation you carry for three months.

The AOV column stops moving at the same place. A 30-day window produces a modelled 9% higher basket on the redeeming order, because a capped balance cannot be cleared on a minimum purchase, and stretching to 90 days adds nothing to that effect.

Two of the three benefits plateau at 30 days. Only the cost keeps going.

The window sets the behaviour it measures

Median days to redeem tracks the window almost exactly: 0.4 days at 24 hours, 26 days at 90.

Customers are not revealing a natural redemption timeline. They are responding to a deadline you set, and mostly acting near it.

This is why extending a window rarely produces the redemption you expect. The extra time gets absorbed as delay rather than converted into additional redeemers, which is the mechanism behind the flattening curve above.

It also means a short window is not measuring impatience. A 24-hour window producing 21% redemption is measuring how many customers happened to want something that day, which is a small and fairly arbitrary group.

Two clocks, not one

The common configuration error is running one number for two different things.

An offer window is a live discount with a deadline. It works in hours and days, its job is urgency, and a short window is correct.

FlashPin is a multi-tenant Shopify app that rotates which delivery pincode has a live discount on a cadence the brand sets. Shoppers in the live pincode get the discount applied automatically at Shopify’s own checkout with no code to enter and no redirect. Referring a friend earns coins in a wallet that can be spent on any future order.

Those are two clocks in one product, deliberately. The rotation cadence controls the live discount and creates the reason to buy this week. The wallet balance outlives the rotation, because an earned asset that expires when the zone moves would punish the customer for a schedule they do not control.

SB&R is a Shopify app for chained referral rewards. Every referral link belongs to someone who has already bought. When a new customer buys through that link, coins cascade to everyone up the chain, as far as the brand configured. Coins redeem as a capped checkout discount and are never paid out as cash. Coins earned from a chain need the longer clock for the same reason: a level-three participant may have earned their share from an order they had no involvement in this week.

Set the offer window in days. Set the coin expiry in weeks or months. Never let one configuration field control both.

FlashPin is the wrong choice for multi-currency stores, and for brands with no delivery-zone variation. Without zones there is no rotation, which means only one clock is needed and the offer window question disappears.

Setting the coin window from your repeat interval

Thirty days is the modelled knee and it is not the answer for every category.

The rule underneath it: the window has to be longer than your median repeat purchase interval, or a large share of customers physically cannot redeem within it.

A consumables brand with a 34-day repeat interval and a 30-day window has set a window most customers cannot meet, and the 68% figure above collapses. A high-ticket brand with a 90-day interval needs a considerably longer window or the reward is decorative.

Calculate the interval from your own order file, take the 60th to 75th percentile, and set the window just above it. That produces a deadline most customers can meet while still creating a deadline.

Communicating the date

State the expiry at the moment coins are earned, in the same view as the balance, as a date rather than as a duration.

Twelve weeks from now is a calculation. The 9th of November is a fact, and facts get remembered.

Extending an expiry later is safe. Shortening one is not, regardless of what the terms permit, because the customer was told a date and moving it closer reads as the brand taking something back. If you need a shorter window, apply it to new issuances only and let the old ones run out.

Write the expiry as a ledger entry rather than as a balance adjustment, so the liability release is auditable rather than a number that simply changed. The reasoning is in building a referral program your finance team will approve.

What expiry cannot do

A short window will not rescue a reward nobody wants. Urgency applied to something uninteresting produces a customer who ignores it slightly faster.

Expiry also does not substitute for a redemption cap. An unbounded balance with a tight deadline still gets spent all at once, on one heavily discounted order, at a moment you did not choose.

And the numbers here are modelled from stated assumptions rather than measured across stores. The shape is the finding: steep to 30 days, flat afterwards, liability rising throughout. Run the same curve on your own ledger before adopting any specific figure, because your repeat interval will move the knee more than anything else in this article.

The tool for this · Shopify app FlashPin FlashPin's referral window runs on its own clock, so a friend can buy long after the pincode rotated and the referrer still earns. Also relevant · Shopify app SB&R SB&R runs the chain: set the depth, set the coin value per level, and the ledger handles the cascade.

Questions people actually ask

How long should a referral reward last before expiring?

For a wallet balance, around 30 days on the modelled curve, because redemption flattens after that while liability keeps rising. Set it against your own repeat purchase interval rather than the model: a window shorter than the interval means most customers cannot use the reward even if they want to.

Does a short expiry increase urgency or just destroy redemption?

Both, and the balance tips fast. A 24-hour window models to 21% redemption, which is urgency purchased at the cost of four out of five rewards going unused. Unused rewards produce no repeat purchase, which was the reason for issuing them.

Should an offer window and a reward expiry be the same length?

No. An offer window creates urgency around a discount that is live now and works in days. A coin balance is an earned asset and works in weeks or months. Using one number for both either kills redemption or removes all urgency from the offer.

Can I extend an expiry after coins have been issued?

Extending is safe and shortening is not. Customers were told a date at the moment they earned, and moving it closer reads as taking something back regardless of what the terms permit. If you need shorter windows, apply them to new issuances only.

What happens to the liability when rewards expire?

It releases, which is the point of having an expiry at all. Write expiry as a ledger entry rather than as a balance adjustment so the release is auditable, and only recognise it under the policy the customer was told about at the time of earning.

Written by Nayak — Builds checkout, referral and attribution tooling for Shopify D2C brands