Once you have decided to run a raffle, the thing that actually stalls you is the numbers. How many days of entries, how many winners, how long to pay. Get these wrong and it shows up either as thin entry numbers or as unsold stock sitting behind winners who never paid.
Choosing the entry window
Set the window by how long your announcement takes to reach people. Too short and only the people who happened to see it can enter, which defeats the purpose. Too long and the interest cools.
| Situation | Window | Why |
|---|---|---|
| Mostly existing customers, strong channels | 3–5 days | One pass of email and social is enough |
| You also want new reach | 7–10 days | Covers two weekends for sharing and a second announcement |
| High-profile collaboration | 2–3 days | It will reach people anyway; a long window mostly gives resellers time |
Put the closing time inside your support hours. A midnight deadline means nobody notices the last-minute problems — entries failing, emails not arriving.
Winners versus stock
Do not set winners above your stock count. Some winners never pay, and there are two ways to handle that:
- Winners = stock, and fill unpaid slots by re-drawing (recommended)
- Over-draw and confirm whoever pays first (this brings first-come back — not recommended)
Take the first and automate the re-draw. Non-payment rates vary with price and how well the drop was announced, but plan for 10–20% on your first run, and leave room in the calendar for a second payment window after the re-draw.
With 100 units, 100 winners and 15 non-payers, you re-draw 15 more winners — and those 15 need their own payment window. Work backwards from your ship date and reserve two payment windows, not one.
Payment deadlines and re-draws
A shorter deadline turns stock over faster, but too short and it filters for people who happen to be free that day. Around 48 hours is workable, and that is also the Bonafan default.
- Winners receive a winner-only checkout
- A reminder goes out halfway through the payment window
- Unpaid wins expire at the deadline
- Expired slots are re-drawn, with the same payment window
The reminder measurably changes the non-payment rate. Even in a manual workflow, a single batch email at the halfway point is worth the effort.
Decide the cap on re-draws in advance too. Something like "at most two rounds, then the remainder goes to general sale" — otherwise fulfilment can never start.
How to weight the odds
Pure random or weighted by purchase history is the most opinionated decision in a raffle sale.
| Allocation | Fits when | Side effect |
|---|---|---|
| Pure random | New product, thin customer base | Reseller entries win at the same rate as anyone |
| Weighted by history | You have regulars and want them served | New customers rarely win |
| Weighted plus a new-customer share | You want both (recommended) | More settings to explain |
The third splits the winner slots into a pure-random share and a history-weighted share. At the Bonafan default, a fan score of 20 wins roughly five times as often as a score of 0. Push the multiplier much higher and new customers effectively stop winning, so start around 5x and watch.
If you weight the odds, say on the entry page what counts as history. Left unsaid, it just reads as favouritism. Said clearly, it tells people what to do next: buy here, at retail.
Repeat entries and identity
Decide up front how many entries one person may have, and say so. In practice, one entry per person, matched on:
- The store customer account (most reliable, when they are logged in)
- Email address, normalised for case, plus-tags and dots
- Shipping address (workable, but it also catches households sharing one)
Unless fan+1@example.com and fan@example.com resolve to the same person, entries can be multiplied at will. Gmail also ignores dots, so normalise those too.
Announcing results
Do not leave the people who missed out with nothing. Silence produces support tickets and a smaller entry list next time. But losing-entry emails are also the largest batch you will ever send, so there are three practical options:
- Include a results-page link in the entry confirmation email, so people check for themselves (no extra sends)
- Segment the customers who did not win and send one batch after the draw (Shopify Email keeps this cheap)
- Email everyone individually (the most considerate, and the most expensive)
Whichever you pick, publishing the exact date and time results will be available cuts support volume sharply.
First-run checklist
- Entry window (open and close times; close during working hours)
- Winner count (equal to stock, assuming re-draws)
- Payment window (around 48 hours; reminder or not)
- Maximum re-draw rounds, and what happens to leftovers
- Odds allocation (pure / weighted / new-customer share) and the wording that explains it
- What identifies one person, and how repeats are treated
- When results are published, and how non-winners hear
- Ship date, checked against payment window times re-draw rounds
Before the real drop, run a one-winner test raffle end to end. Two things are worth seeing with your own eyes: that the invoice email arrives, and that the winner-only checkout completes.
- How to run a raffle sale on Shopify — Manual workflow versus a raffle app
- Anti-scalping methods compared — Including the options that are not raffles
- Bonafan user guide — What each setting means, and the plan limits
Every number above maps to a field on the Bonafan raffle form. Reminders and re-draws then run on their own.