AchievementRarity

Achievement rarity data from the Wizzleworks — an embeddable LibStub library: the share of accounts that hold each achievement (US/EU/global), plus rank-at-earn and collection standing. Install alongside a consumer add-on to keep its numbers fresh.

AchievementRarity

The achievement rarity data library, from the Wizzleworks. For any achievement in the game it answers three questions:

  • How rare is it? — the share of accounts that have earned it, measured for US, EU, and globally.
  • How early was an earn? — rank-at-earn: the share of all tracked accounts that had it before a given date. "You were in the first 0.4% to earn this."
  • How rare is a whole collection? — collection standing: a rarity-weighted score over everything a player has earned, read out against all tracked accounts. "Your achievements are rarer than 96% of EU accounts."

Data only — bring your own UI

The library draws nothing and saves nothing: no UI, no slash commands, no saved variables. Addons embed it and build their own surfaces on top — the reference consumer is How Rare?. It also ships an optional opinion layer: rarity tiers banded through WoW's loot-quality palette (legendary under 0.1%, epic under 5%, …), which consumers can use as-is or ignore and band the raw numbers their own way.

For players

Installing this standalone copy alongside an addon that uses the library keeps that addon's numbers fresh: the library is LibStub-versioned, so the freshest copy on your system transparently supersedes any embedded one, no configuration needed. Without it, a consumer addon simply rides the snapshot it embedded — also fine.

For addon authors

local AR = LibStub("AchievementRarity-1.0", true) -- silent: nil if not installed
if AR then
    local pct = AR:GetRarity(achievementID)       -- e.g. 2.7 (percent of accounts)
    print(AR:Format(achievementID))               -- "3%" (or "<1%")
    print(AR:GetTier(achievementID))              -- "epic"
end

Rarity, raw counts, rank-at-earn, collection weight/score/standing, tier bands and colours — the full API, the embedding guide, and the methodology live in the GitHub README. MIT licensed: embed it in anything, including closed-source addons.

Where the numbers come from

Built by the Wizzleworks from the public Blizzard armory — the same character pages anyone can view. Characters are grouped into the account that owns them (account-wide achievements complete at the same instant on every character a player owns), each account is represented by its most-complete character, and only accounts active in the last 30 days count. Over 830,000 accounts are tracked across US and EU today.

Every figure is a floor: the tracked population leans toward engaged players, so the true share can only be rarer than shown. Only aggregates are ever published — nothing that identifies an individual player — and a character that goes private drops out of the records.

Honesty rules ship in the data: achievements with too few tracked earners carry no rank curve (a percentile would be noise), unreliably old earn dates are suppressed rather than trusted, and retired achievements — still in the game files but removed from Blizzard's own achievement index — are excluded rather than passed off as ultra-rare.

Snapshots and freshness

Every release embeds a dated snapshot — GetMeta().asOf says exactly how fresh the numbers are, and each figure a consumer shows can carry that date. The library's version minor derives from the snapshot date, so among however many copies are on a system — embedded or standalone — the newest data always wins, automatically.


Data and library by the Wizzleworks. Issues, API questions, and source: github.com/wizzleworks-gg/achievement-rarity.

The AchievementRarity Team

profile avatar
  • 2
    Projects
  • 119
    Downloads

More from wizzleworks