What are achievements?
Some people call them badges, or trophies; achievements are predefined goals you can set out for your users to try and accomplish. They should signify something of some level of importance generally. Meeting the conditions of an achievement means that the person has earned that achievement. There is usually some sort of graphical representation of this that the user can see so that they have a history of what they have done. Often they are also visible to other users as well, allowing for a sort of representation of that user’s accomplishments, strengths, and interests. Achievements that a user has yet to earn are generally considered “locked”. Since most achievements take some work to earn they often have some sort of progress indicator as well, so users can know where they stand and what they still have to do in order to “unlock” the achievement.
What to reward
Where points are used to signal immediate feedback for specific actions, achievements should carry a little more weight. They mark the milestones of a user’s progress through your system.What kinds of things should you reward via achievements? Here are some ways we have seen them used:
- Exploration: These types of achievements reward exploration of your product. It’s useful if you want to reward users for getting in to all the nooks and crannies of your site and should be considered when you have a large, sprawling site that can support this type of achievement. Recognizing the discovery of hidden and secret Easter egg style portions of your product can also fall in to this category.
- Use: This is what is most commonly seen across the internet today. These types of achievements recognize use of the system. Try to think of interesting use cases and reward those rather than just bland repetition of common tasks.
- Loyalty: If someone has been with you since the beginning it might be nice to recognize that, right? Common loyalty based achievements recognize how long someone has been using the product or special support that the person has given.
- Skill: Did a user do something that is very difficult? Did they do something in a creative way or under a certain handicap? Skill based achievements can be difficult to implement in some applications but if the circumstances are right they can make for some very worthwhile achievements.
- Real Life: Can you capture things that users are doing in real life? Maybe people visited your booth at a convention or met some members of the team.
- Tutorial/Onboarding: Basic tasks to help get the user using the system. This can really help to reduce initial turnover as it can act as a way to help guide and direct new users who may be unsure of what the system does and what is expected of them.
- Collection: Reward users for collecting collateral in your system. Completing special collections can be a very interesting motivator if that is something your system can support.
This is by no means an exhaustive list but it does help you start to think about how you can reward users using achievements.
Achievement Conditions
An achievement is unlocked when all of its conditions have been met. An achievement must have at least 1 condition but it could have as many as you’d like to add. Most usually have around 1-3, but there are plenty of examples where there may be 20 or more. There are many different types of conditions; some of the more common ones are listed below:
- Bit: A bit condition records whether you have done something or not. This is a true/false style condition. Examples would include: “Connect your account to Facebook” or “Log in to the website between midnight and 4 AM”. These types of conditions are met or unmet. There is no progress because you can’t partially accomplish it.
- Count: A count condition is simply counting the number of times you have done something. It could be as simple as “Upload 10 photos” or more complex, such as “Leave a comment that gets at least 5 upvotes on 5 different blog articles”. With these types of conditions you would expect to see some progress so you know how far in you are and what you still need to do to finish.
- Sum: this is very similar to count based conditions. Instead of counting the number of times something happens you are instead looking at meta data to reach a certain threshold. The easiest example is something along the lines of “Spend $500 dollars”. It doesn’t matter if someone spends $950 in one purchase or makes 50 purchases of $10 each. As soon as a total of at least $500 is met, the condition is fulfilled.
- Achievement: This condition means that you have to earn a different achievement in order to be met. This type of condition generally signifies that the achievement is a “meta achievement” since it is based on other achievements. Generally this type of achievement only has achievement based conditions (and more than 1, usually 4-5 or more).
- Point: A point condition means that you have to earn a certain amount of points in order to satisfy the condition.
- Level: A level condition just means that the user must reacha certain level. Just as with Point and Achievement conditions this is a somewhat meta, internal type of condition.

Achievement Chaining
Some achievements are very closely related and are really just “harder” versions of previous achievements. We refer to these as achievement chains. An example would be “Upload 1 Photo”, “Upload 10 photos”, and “Upload 25 photos”. It’s the same basic condition over and over, just requiring more work each time. You have to earn the earlier ones before you can earn the later ones. Achievement chains are interesting when used sparingly but when they become the primary or even sole style of achievement you offer they becoming very boring very quickly. Used judiciously, however, they can be a nice addition to your reward system.
Design Considerations
When designing achievements it is important to consider the full life cycle of the user or player. You need to have some that are relatively easy to unlock in order to help draw the person in and introduce them to your reward system. The frequency with which a person can earn achievements should gradually slow down as they become more and more difficult. You need to find a nice balance where people aren’t becoming so showered in achievements that they stop caring but don’t make them so difficult that they seem to be impossible to achieve. You also want to be careful about letting players earn all the achievements possible before their lifecycle with your product is up. Earning everything signals to a user that they are “done” or have “finished” your system. You need to take into consideration that people will advance at different rates. Some may go slow and take their time. Power users may potentially burn through everything in a week if not planned out properly.
Common Pitfalls
There are a few common pitfalls that you’ll want to avoid. The first is making boring achievements. This comes in to play especially when people start making simple count based use-style achievements like “Leave 20 comments”. It feels much more like a chore or task than something I might want to “earn”. Not only is that boring for the user but it isn’t even helpful for you. Even if you want to encourage more commenting, stop and think – do you really just want more comments? My guess is you really want more high quality comments. This brings me to the next pitfall – not aligning achievements with your true goals. I could easily earn the achievement above by leaving gems such as “dfsgshsdfg”, “etdhahwret”, or even “i agree” as comments if I do it enough times. That doesn’t solve anything for you – in fact it creates more problems than if you had nothing at all.



