Where the data comes from
- osu! statistics (rank, pp, accuracy, plays, scores, maps) come only from the official osu! API. Nothing is estimated or invented. When we don't have something, the page says so.
- Tracked players are refreshed in small batches every couple of minutes; the global rankings every 10 minutes; high-pp plays from the global score stream every 90 seconds. Right after a Discord session ends, that player is refreshed immediately.
- Rank history is our own snapshots of the API over time, so it starts the day we first saw a player.
- Test data is fictional and always badged DEMO. It never mixes into real rankings.
- Any player can stop being tracked; their data is deleted and can't be re-added.
Skill profile (the analyzer)
Six numbers from 0 to 100, built from a player's top plays. Plays are weighted like osu!'s own pp weighting (the n-th best play counts 0.95ⁿ), so the profile says what someone is best at, not what they play casually. At least five plays are needed. Each number is a proxy — here is exactly what it measures and where it falls short:
| Axis | How it's calculated | Limitation |
|---|---|---|
| Aim / difficulty | pp-weighted average star rating (with mods) of top plays, scaled 3★ → 0 and 9★ → 100. | Star rating mixes aim and speed; the API's per-map aim/speed split isn't used yet. |
| Speed | pp-weighted average BPM of top plays after rate mods, scaled 140 → 0 and 300 → 100. | BPM of the song, not of the densest stream; jump maps at high BPM count as 'speed'. |
| Accuracy | pp-weighted average accuracy of top plays, scaled 90% → 0 and 100% → 100. | Doesn't know the map's OD; 98% on OD10 is harder than 98% on OD8. |
| Stamina | pp-weighted average drain time of top plays after rate mods, scaled 1 min → 0 and 6 min → 100. | Length isn't density: a 5-minute map can be mostly breaks. |
| Reading | Distance of effective AR from the comfortable ~9.3 (both low and high AR are reading tests) plus the share of Hidden plays. | Can't see pattern complexity, only AR and Hidden. |
| Consistency | Share of top plays that are full combos (70%) and weighted average misses (30%, 8+ misses → 0). | Top plays are already a player's best runs; this overstates day-to-day consistency. |
Evidence and confidence
Every number comes with how much of your data actually tests it. A play counts as evidence for:
- Aim / difficulty — every top play with a star rating
- Speed — plays at 170+ BPM after rate mods
- Accuracy — every top play
- Stamina — plays with 3+ minutes of drain time
- Reading — plays at AR 9.7+, AR 8.5 or lower, or with Hidden
- Consistency — every top play
High: 15+ relevant plays among your 50 heaviest top plays. Medium: 6–14. Low: fewer — the number may just mean you haven't played that kind of map. Low-confidence skills are shown faded with a “?” and are never named your weakest skill: unknown is not the same as weak.
Skill history is one saved profile per day, taken when a player is refreshed. Trends only use those real snapshots; nothing is filled in between.
How a map fits you compares the map's star rating, BPM, drain time and AR with the weighted levels of your top plays, in those same units, and says which ones stretch you. It never claims a map is “perfect” for you.
Each axis links to the Handbook chapter that trains it. Suggestions ("next goals", maps to practise) follow from your weakest axis and never claim more than the data shows.
Evidence in the Handbook
Every source carries a tier. The letter rates the source, not whether a claim is true:
- A Official — osu! wiki, official posts, the game's code. Authoritative for mechanics.
- B Research — Peer-reviewed studies. Strong on mechanism; transfer to osu! must be argued.
- C Community — Forum guides with peer review, community data, edited interviews.
- D Creator — Named creators' experience. Attributable, not independently verified.
- E Unverified — Second-hand or unverified material.
- T Tool — Software or tools referenced.
Community comments and suggestions are opinions and are shown as opinions. They change the Handbook only after review, and the change is recorded in Updates. Donating never gives anyone's view more weight.
Stars
- Stars have no monetary value and can't be bought, sold, withdrawn or redeemed.
- Everyone starts with 1,000. Daily claim: 250 + 50 per streak day (up to 10 days).
- Rewards for real events, e.g. a new top play 250, an SS 150, a Handbook chapter 100, an implemented suggestion 5,000. Play rewards are capped at 2,500 a day.
- Every change is a row in an append-only ledger, and balances are checked against it (see economy).
Predictions (markets)
- Parimutuel: everyone who backed the winner splits the whole pot in proportion to their stake. The site takes nothing.
- Displayed odds add a virtual 1,000 Stars to each side so a new market doesn't show absurd numbers. That virtual amount is never paid out.
- Rounding leftovers go to the largest winning stake, so the pot always adds up exactly. If nobody backed the winner, or the match is cancelled, everyone is refunded.
- You can back only one side of a market. Markets lock at the match's scheduled start.
Rankings, feeds and awards
- Server and crew leaderboards use the same osu! numbers as global rankings, limited to their members.
- The live feed ranks events by an importance score set per event type (a rank milestone outranks an ordinary full combo); pages hide low-importance events so big moments stay visible.
- "New peak" announcements are limited to one per player per week, so rank jitter doesn't flood the feed.