Introduction
I think a lot about loyalty programs - what they are for, how they operate, and how to build them. Over the last six months at Stack, a loyalty program creation platform for onchain products, I've spoken with over 300 teams, answering questions and advising many of them on how to think about, design, fund, and implement their own loyalty programs. Three consistent themes have emerged in these conversations:
1. Many teams understand that loyalty, points, and gamification are important and are actively exploring incorporating them into their products
2. There is a lot of anxiety and analysis paralysis around designing and implementing a points program given the high stakes and expectations (real or perceived) of a potential future token generation event
3. There aren't great resources specifically for builders in the onchain economy about how to think about and design a loyalty program of their own from first principles
I spend most days talking and thinking about this exact topic with the rest of the Stack team, so I thought I would make a guide to share how I think about all this.
For context, I previously worked as a management consultant where I had the opportunity to work on the team that designed the current Dunkin' Donuts loyalty program. Our team was tasked with designing a modern program to help Dunkin' compete with Starbucks, measure the incremental impact our proposed new loyalty program could have, and then convince 10,000 franchisees to vote to approve and implement the program. (A version of) the program we recommended was recognized this year as an industry leader by Newsweek.
This guide's goal is to provide you with a framework and process that will help you create your own loyalty program from first principles.
Why loyalty programs matter
Loyalty programs are the relationship management software of an organization that help increase user engagement and retention. They are the "love language" that help measure - and deepen - the relationship between a user and a brand. Loyalty programs are most important in industries where the product is commodified and brand loyalty is the only moat a company can rely on. Airlines, coffee shops, credit cards, ride share services, and hotels are good examples of this, so it's not surprising most people think of these types of companies when they think of loyalty.
The onchain economy takes this idea even further - since users self-custody their assets and identity onchain in their wallet address, it is always easy for a user to exit one platform and enter another at any time. I've written previously that I believe web3 can be understood as one big loyalty program, so take a look at that if you're still not convinced loyalty is important.
Now, let's get into loyalty program design.
Loyalty program design overview
You can think of building a loyalty program like building a house - first you build the foundation, then the frame, and finally the interior design. There are 6 steps necessary for designing a loyalty program and "building your dream house":
- Define your business objectives
- Establish your user profile
- Select your earn activities
- Determine your rewards menu and funding model
- Experiment with your program elements
- Launch and continuously communicate your program
1. Define your business objectives
When designing a loyalty program, it’s critical to select the program’s primary goal. To do this, you must first understand what your primary business objective is. Issues are likely to arise when stakeholders are not aligned about what the loyalty program is set to achieve. For example, at Dunkin' the franchisees were sold the original Dunkin' Rewards program as a cost-saving measure, while the Dunkin' corporate team viewed the program as a way to drive incremental customer spend and visits. So, you can imagine the anger and frustration franchisees felt whenever a fee increase to the program was proposed. If your stakeholders are not aligned on the purpose of the program and it's relationship to your business objectives, issues will undoubtedly arise downstream. Don't skip this step or assume everyone is on the same page.
In the onchain economy, many teams struggle to decide if their business objective should be to recognize and reward whales - who spend a lot of money purchasing/minting but perhaps not much time engaging in the community - or active community members who spend lots of time but not much money. It will be difficult to imagine a program that adequately caters to both types of valuable users without establishing what the organization's business goals are first.
So, the first step in creating a great loyalty program is deciding what your organization's business objectives are and distilling it down into a fundamental business equation. Perhaps you care about maximizing revenue, or about time spent using your product, or about frequency of engagement, or all of the above. You are allowed to have more than one goal, but you need to pick one that is the most important. Your loyalty program's goal is to then support this objective by impacting the variables in the equation.
Once you have determined your primary business objective and fundamental business equation, you are ready to proceed to step 2.
2. Establish your user profile
This might sound obvious, but is worth stating: a prerequisite to designing a program is first understanding what activities can be measured and attributed to a user in your product.
In the onchain economy, this can be a challenge as many wallet addresses may be associated with an individual user. So even if a user takes all of the actions you might wish them to, but does so using multiple wallet addresses that are not associated with each other in a unified profile, you will get a fragmented picture of their activity. In other words, you need a unified profile for each user that encompasses all of the identities that have engaged with you or risk having a fragmented picture. This may not always be necessary, but is important to consider.
As a business, do you have a unified profile of your users? If not you might want to get one. If you can't, you might want to consider building one. Farcaster's verified addresses feature is useful here as it allows users to associate multiple (Eth and Solana) wallets to one Farcaster profile and can be queried by anyone. Blackbird uses their own proprietary customer profile for diners as the foundation of their onchain loyalty program.
Once you have determined the profile for your users, you are ready to proceed to step 3.
3. Select your earn activities
Earn activities are the actions users can take that are included in your loyalty program. Not every action a user can take can should be part of your program. Only the most valuable ones - meaning, the ones that impact your fundamental business equation - should be included as earn activities.
With your fundamental business equation in mind, you can list out all of the actions your users can take to influence these metrics. In the coffee world, earn activities center on getting more visits per customer, more spend per each visit, and growing the customer base. In the onchain world actions are often onchain transactions where a user is spending some amount of money to create, mint, bid, swap, stake, bet, etc.
To figure out which ones to include, follow this simple process:
1. Listing out every activity that can be tracked and measured
2. Filter down to identify the ones that matter to your fundamental business equation
3. Rank the actions in this filtered list by their relative value
The final rank and relative value is context-specific, but typically there are one or two primary activities you care about most (e.g. amount spent, frequency of transaction), another few less-important actions (e.g. try a new product), and then some nice-to-haves (e.g., referrals, follow on social media, etc.).
Once you have your ranked list of earn activities, you are ready to assign point values to them. Points are useful as a means of assigning value to actions a user can take. Most teams jump straight to this step without taking time to do the prior ones. This "finger in the air" method of assigning points is a critical mistake that should be avoided. There should be a clear logic and rationale as to what actions are recognized and how valuable they are.
Start by anchoring points around the primary earn activity. For example, if a program’s primary activity is minting NFTs where users earn 10 points per $1 spent and the average mint price is $5.00, then one mint is worth 50 points. With this anchor in mind, points can then be assigned to secondary and tertiary earn activities relative to 50 points.
Once you have assigned point values to your earn activities, you can create a model (spreadsheet) to test them against real data to see how points would be earned in your program if implemented today. After you've assigned all your points you will be able to see the hypothetical points balances of all your users. Does the ranking look correct? Does it "feel" right? Are your best users the ones with the most points? If so, congrats, you've done a good job valuing your earn activities. If not, you can fine-tune and calibrate the program further. The beauty of this process is that you can test your points program before ever launching or announcing it to users.
If you want a great product designed precisely for this type of exercise, I strongly recommend trying Stack. Stack enables you to connect multiple on-and-offchain data sources, assign and edit points to your earn activities, see your users in a leaderboard, and deep-dive activity-and user-specific feeds. It's free, accessible to technical and non-technical users alike, and it's designed specifically for onchain companies and projects. If you've read this far and want a demo, let's grab time to chat.
Once you have determined your earn activities and assigned point values to them, you are ready to think about the other half of your program - rewards and proceed to step 4.
4. Determine your rewards menu and funding model
If the earn activities are the "science" side of loyalty program design, then rewards are the "art". Rewards matter because they give you a way to show your users that you understand them and the things they value. Valuable rewards create an aspirational goal that users seek to achieve. I could say more about this but Elaine from Seinfeld makes the point better than I ever could when she loses her punch card for her free sandwich from Atomic Subs.
Of course, rewards also have costs associated with providing them, so paying for (funding) them - or finding ways to not have to - is the next step in creating your loyalty program. Rewards can come from internal and/or external sources.
Internal rewards
Internal rewards are pretty easy to think through - give users for free more of what they usually have pay for. Free coffees, free transactions, discounts, etc. (most teams I speak with have a good grasp of this so I won't spend much time on it). These rewards typically have costs associated with them - your favorite airline still incurs costs when you fly for free, for example. Here is a simple unit economics model of self-funding rewards for a free flight on an airline:
Your business has to be able to afford these rewards, so if that is not an feasible beyond a certain point, you may choose to partner with external rewards providers to fund them.
External rewards
If you cannot afford to pay for rewards your users care about, you can instead partner with an external reward provider who will pay you for the right to reach and acquire your users. Creator brand deals are a great example of this model as are credit cards rewards programs where airlines, hotels, and merchants will partially (or completely) subsidize the cost of the rewards to get distribution to valuable segments of user they seek to reach. These types of deals can be a win-win as card issuers can now afford to provide more valuable rewards to users and reward providers can acquire new users more cost-effectively than other channels like advertising. The cost of integrating your points program with external parties can be expensive and time-consuming using traditional technical architecture.
Rewards arbitrage
I said earlier that rewards can be more art-than-science. That's because of the concept of "rewards arbitrage" or the difference between the cost of providing a reward and the user's perceived value of it.
Mr. Beast explains the concept perfectly in his recently-leaked guide:
Most all onchain companies only think about rewards as free money - a.k.a tokens. My personal view is that your best users value other things - like social status and non-financial rewards far more than financial ones, all else being equal. Non-financial rewards are often more meaningful (read: higher perceived value) and lower-cost to provide. As a general rule, the further a reward feels from "free money", the higher perceived value it can have. A $100 gift card to a store your user loves shopping at is better than $100 of tokens. A $50 surprise reservation at their favorite restaurant is probably worth more than the $100 gift card. And a handwritten note thanking them for loyalty plus a free month off from the $30 /month subscription you charge them is probably even more valuable than all of these. On a fundamental human level, we all have a deep desire to feel appreciated and recognized for our contributions. The best loyalty programs obsess over this and find creative ways to save money and establish enduring emotional connections with their most valuable users. "One 'good work' is worth a thousand tokens" said Kanye once, or something like that...
I know most of you are reading this with a token generation event in mind. So consider this: what if your loyalty program required users to stake their allocated tokens for a specific period of time as the way they enroll in your loyalty program to access other rewards? What if those staked tokens earned revenue that could be used to fund those rewards? What if cashing out tokens was less valuable than holding and staking them?
With a robust rewards menu, this is possible. Don't believe me? Consider American Express credit cards: cardholders can cash out their points (the equivalent of selling tokens), but they can get far more value using them instead to redeem for free flights, hotels, and products.
Amex Points Use Case | $ Value of 10,000 Points | Reward provider |
Use points for statement credit | $60 | American Express |
Pay with points at checkout with select merchants | $70 | Merchant |
Redeem for gift cards | $100 | Retail, restaurant, entertainment, and travel partners |
Book travel | $100 | Airline, hotel, and other travel partners |
Transfer points to partners | (varies) | Various travel |
Not every company well-suited to take advantage of rewards arbitrage. The most powerful examples of rewards arbitrage occur where strong emotional relationships between users and a brand exist. Some relationships with users are predominantly-economic in nature, like airlines. Meaning you will take the cheapest flight when searching, but if two flights are close-enough in price, you might be willing to pay a bit more so that you can earn your miles on your preferred airline. Other relationships are predominantly-emotional in nature, where users have deep passion for a brand that they may never spend a dollar on. Your favorite YouTuber, podcaster, or music artist is a good example of this.
If you do have a solid emotional relationship your users, here are five examples of rewards that cost you (almost) nothing to provide with high perceived value:
1. Follow or mention on social media
2. Social status and badges
3. Leaderboards - like these
4. Special access to you/your team
5. (Early) access to exclusive content/BTS
Once you have determined your rewards menu and model for paying for them, you are ready to test and refine more program elements.
5. Experiment with your program elements
At this point in your program development process, you will have a clear strategy for your program, you know what activities matter most, and you know what rewards you want to provide. To return to our loyalty program-as-house analogy, the foundation has been laid, the house has been constructed, and now it's time to call in the interior designer to turn your house into a home. It's time to add the user-facing elements of your program that make participating in your program an attractive and exciting experience. You have a menu of program elements to choose from - status and badge tiers, leaderboards, gamification features, and more.
Program Element | Strategic Value | Example |
Points | Establishing and quantifying reputation, can be used as in-game currency as well | Starbucks Stars |
Points partnerships | Strategic loyalty program alliances between complementary organizations make participating in a loyalty program more valuable as a user can earn points from more than one brand for the same activity. This option is becoming increasingly popular among rideshare companies, airlines, and rental car companies | Lyft / Delta |
Badges and status tiers | Categorizing users into segments | Marriott |
Leaderboards | Social status and ranking users, competition | Strava |
Power-ups and multipliers | Incentivizing particular activities, especially time-sensitive or initiative-specific activities | American Express |
Rewards and redemptions | Retain users by demonstrating you understand them and the things they value | Chase Ultimate Rewards |
Coupons and special offers | Strategic one-off partnerships with external brands | T-Mobile Tuesdays |
Subscriptions | Recurring revenue | Uber One |
Like any well-designed home, you can choose a more maximalist or minimalist approach by incorporating many elements or just a few. Keep in mind that more elements = more complexity for the user to understand and potentially distract from your core product. Finding the right balance will likely require experimentation and testing over time. Experimentation at the program feature-level is allowed (and encouraged) so long as the program fundamentals do not change. Meaning, introducing a status tier system and then switching it to a simple leaderboard later on, or changing the points value of a particular earn activity can be done if communicated clearly.
Note, if your program is working and your users like it, any changes no matter how small will always be met with complaints and frustrations from users in the short-term. When the Dunkin' program changed from 100 points per $1 spent to 10 per $1 spent, customers flocked to social media to complain that their points were being devalued when, in fact, they were actually worth more. Because Dunkin' is such a beloved brand by so many people, It took several years for customers to understand that the change was actually to their benefit. But it worked in the end.
Your loyalty program is meant to be a tool you use to direct traffic and drive users to do what you want them to do. Those who do not understand their program cannot operate it confidently and will be paralyzed with fear whenever their users are vocal with negative thoughts about the program. You must overcome this fear by commanding your program with confidence. The data will tell you if your program is working, but your users posting negatively on social media about it will tell you if it is not. You need to be ready to hear their feedback and carefully consider changes with a steady hand.
Once you have incorporated your program elements, your program is complete. The final step is to launch the program.
6. Launch and continuously communicate your program
By now you've done the hard work to build a best-in-class loyalty program and it's time to launch it. Continuous communication and simplicity is the key. Your program can be as complex to manage and run under the hood, but must be dead-simple for users to understand and use. This is the true art of a good loyalty program.
A user should be able to understand:
- The earn activities and behaviors the program rewards (and those it does not)
- Who the program is for (all users? Just some?)
- How points are earned and can be redeemed
- How to join and participate
- Where to go if they issues (expect them to resort to social media, not always ideal)
Chipotle's recently-updated rewards program does a great job keeping things simple and explaining changes to the program:
Earn activities
Rewards
Opt-in vs. auto-enroll
One last idea to consider is a decision to allow users to opt-in to your program or auto-enroll them by default. Traditional loyalty programs typically require users to opt-in to their program for a few reasons:
1. User must accept the program's terms and conditions
2. Opportunity to capture some more profile data from the user (email, birthday, location, etc.)
3. Identify more-engaged users through organic self-selection
4. Measure program's value at driving incremental activity by comparing loyalty member metrics against non-loyalty members
This last point is most important. Starbucks' loyalty program members spend 3x as much as non-members and Starbucks loyalty members are 5x more likely to visit a Starbucks everyday than non-loyalty members. They know this because they can compare the groups through their opt-in program.
For onchain economy companies that are new to loyalty, an opt-in program can also reduce the risk of the program not being well-received by your users by framing it as “in beta”.
Once the program has launched, your job is to monitor, fine-tune it, and continuously communicate it. It is very fun and exciting to start seeing data showing your program is working and helping drive incremental activity. Once you see it work a little, you'll want to keep investing in the program to make it work a lot.
Conclusion
A loyalty program will not save you, but it can be the difference between retaining and churning users. A terrible coffee shop with a perfectly-designed loyalty program is still a bad business. Loyalty programs are chiefly a retention tool. There are many other tools for acquiring users that should not be confused with true loyalty to a brand.
If you made it this far, thank you for reading. I hope this guide has given you some clarity on how to think about a loyalty program from first principles and clarified the process for creating one. If you're interested in learning more, follow me on X, subscribe to the Stack Weekly Digest, and reach out ([email protected], Telegram - @bradorbradley). If you haven't noticed, I love this stuff and would love to help you design your company's loyalty program.
Cheers,
Bradley