Rethinking referral codes… or,🍕💯🚀

Mitchell Lee
Mission.org
Published in
5 min readJun 7, 2016

See my blog for the most up to date version of this post.

Our heads are filled with memorized sequences of letters and numbers. Passwords, social security numbers, anniversaries, phone numbers, Twitter handles… Some of those are important; others, not so much.

Do you know what comes dead last on that list though? Referral codes.

Whether you know it or not, you probably have in excess of a dozen referral codes spread across the services you use. How many of them do you actually remember? One, maybe two?

The fact of the matter is that referral codes are boring and hard to remember. That’s problematic since it means there’s a lot of extra friction to referring your friends to services you like. That’s not only annoying for you, it’s also bad for the company; it’s a lose, lose.

When it came time to build a referral program for Penny, we decided to re-think things a bit.

First, the problem:

Most people don’t remember their referral codes for most services.

Next, the solution:

Emoji.

Problem solved 😉

Okay, obviously there’s a lot more to it than that. Before we get to our solution, let’s take a look at some existing solutions to this problem.

MITCH974264

First or Last Name + Next Available Number

Lyft and Sprig: great services, but those codes are 😖

This is among the most common type of “friendly” referral code. It’s more memorable than a random code, but if your name is “Alex” and you’re on a popular service where there are tens of thousands of other Alex’s, you’re out of luck. Even if your name is not all that common, remembering more than a couple random digits is tricky, especially if you have many other codes with a similar format but different numbers.

This method also doesn’t work well for short or hard to type names like JJ or 妀. On the malicious front, you leave yourself open to internet trolls that set their first name to swear words because that’s what trolls do. I doubt most companies want people promoting referral codes with profanity in them.

MITCHELLLEE14

First and Last Name + Next Available Number

By using the person’s first and last name, you greatly cut down on the number of collisions. Unfortunately, full names can be long and tricky to spell, making the referral code entry process tedious and prone to errors.

The same logic applies to using part of the email address in the code, with the added downside of leaking the person’s email address. Probably not the best idea.

CAT LOCK TREE

Unique Word Combinations

Now we’re starting to get creative. This takes a page out of a popular XKCD comic. It turns out that a few random words are often easier to remember than alphanumeric strings because our mind has an incredible ability to make stories out of them. “The cat found a lock while climbing a tree.” Done.

Sadly, this method suffers from two drawbacks. First, it can get lengthy. That’s problematic both for the person entering in the referral code, and for the presentation of the code to the user (i.e. it takes up a lot of screen and/or URL space). Second, you need to be very careful selecting your random word list, lest you accidentally generate a culturally distasteful series of words. In our experiment, we ran into a lot of issues with that.

QFJXKO

Random

My actual Uber referral code 😱

I mean, because who actually cares about the customer experience?

To be fair, some of these companies expect you to exclusively copy and paste the code; others encourage you to share links that your friends need to follow to sign up. Suffice it to say that those are neither foolproof nor limiting factors. You can rely on both of those techniques while also having something that’s pleasant on the eyes and conducive to all varieties of sharing.

We went back and forth for arguably way too long on the relative merits of each system. Then this happened:

Now before you get all judgey judgey and make assumptions about my mental health, hear me out.

The key requirement of a referral code is that it’s unique. Having unique referral codes mean you need a lot of entropy (i.e. a lot of possible combinations). All of the examples above make use of a limited character set—in most case: 26 characters, 10 digits. That means that to get lots of possible combinations, you need a lot of characters.

Let’s look at a very simple example: say that after removing visually similar characters like l, I and 1, you’re left with 30 characters (this assumes case insensitivity, which you should do unless you enjoy causing your users great frustration). Even if you use a completely random code, you’d need at least five or six characters to get to a reasonable level of entropy (30^5 ≈ 24 million). If you incorporate names, which overlap significantly more than random characters, you need way more characters to get there.

In contrast:

There are a total of 845 emoji characters commonly supported across most platforms. These include emojis up to and including Unicode 6.1. — Emojipedia

Technically, there are now over 1,500 emoji with the release of Unicode 8.0, but who’s counting. For simplicity, we’ll stick with 845 emoji.

If you string together three emoji, you’ll end up with over 600 million possible codes. If you bump that to four, you’ll be over 509 billion.

Clearly, we don’t want to make use of all 845 emoji. For one, there are a lot of visually similar emoji. Exhibit A: 😁 and 😬. But, even if we curate a list of 100 easily recognizable, commonly used emoji, that’s way better than our set of 30 alphanumeric characters — we get to our desired level of entropy much, much faster.

Moreover, there are a lot of other benefits:

  • They’re ubiquitous. Emoji usage is growing at an amazingly (frighteningly?) fast pace. Just ask Instagram.
  • They’re universal. Everyone speaks emoji, so internationalization is not an issue.
  • They’re short. You’ll never need more than four emoji to get the entropy you need.
  • They’re memorable. The image of the emoji (🚀) is reinforced by both the word for the emoji (rocket) and the emotion it invokes (speed, excitement, future).
  • They’re fun. When is the last time you got excited about your referral code?

The icing on the cake? Emoji fit perfectly with our brand.

#shipit

By the way, 🙌👍🚀 is my actual referral code. Give it a shot. 😉

-Mitch, cofounder @ Penny

If you enjoyed this, don’t be shy about 👏 for it!

--

--