A badge is worth having in proportion to how hard it looks to get. That makes rarity the entire mechanism, and rarity is a number you cannot invent — it has to be computed from what people have actually done.
Achievements are now served by the API with a real unlock date on each one and a real rarity computed across everybody. The whole history was backfilled, so somebody who uploaded their first note eight months ago holds a badge dated eight months ago rather than one dated the day we shipped the feature. Without that backfill every badge would have read as brand new and every rarity would have started at 100%, which would have made the entire system meaningless in exactly the week people first saw it.
Secret achievements are now hidden from their owner as well as from strangers. Previously the owner could see the locked outline of something they had not discovered, which is not a secret — it is a spoiler with a lock on it.
The API also now tells the client how to read a progress number, so an achievement that is 3 of 10 renders as 3 of 10 everywhere rather than each screen guessing.
Everything in this release
- Added
Achievements are served from the API with real unlock dates and real rarity.
- Added
The full history was backfilled, so rarity is meaningful from day one.
Otherwise every badge would have looked new and every rarity would have started at 100%.
- Fixed
A secret achievement is now hidden from its owner too, not only from other people.
- Improved
Progress is expressed once, by the API, instead of being interpreted per screen.