A referral pays on the first order, not at sign-up
When we built referrals there were two options that look almost identical, and one of them ruins the programme entirely.
The one that looks easier
Pay the reward when the friend registers an account. It is fast, and it produces lovely numbers in the first week.
Then somebody works out that registering is free and e-mail addresses are unlimited. You are paying for e-mail addresses, not customers.
What we did
Both sides — the referrer and the friend — are paid on the friend’s first placed order. Nothing is paid at sign-up.
With three constraints that are database rules rather than good intentions: a shopper can be referred exactly once per store no matter how many people claim to have invited them; nobody can refer themselves; and somebody who already bought from the store before entering a code earns nothing.
And a small thing about the codes
Our referral codes contain no zero and no letter O, and no one, I or L. A code gets dictated over the phone and typed off a screen, and one nobody can say out loud clearly is a referral that never happens.