How to read your osu! stats: a beginner's guide to the profile page

An osu! profile page shows three different kinds of number, and mixing them up is the most common source of confusion. Skill metrics — pp, weighted accuracy and grade counts — describe how well you play. Volume metrics — play count, play time, ranked score, total score and level — describe how much you have played, and only ever go up. Ranking metrics — global rank and country rank — are positions in a table that every other player is also moving through. Reading a profile well means knowing which family a number belongs to before reading anything into a change in it.

The three families of numbers

Sorting the profile into families first saves a lot of misreading later. Skill metrics respond to how well you played: pp, hit accuracy, and grade counts. Volume metrics respond only to how much you played: play count, play time, ranked score, total score, level, total hits. Ranking metrics are relative positions: global rank and country rank.

The practical consequence is that the families move on completely different timescales. Volume metrics move every single play and never move backwards, so they carry no information about a bad night. Skill metrics move only when you beat something you have already done. Ranking metrics can move while you are asleep, because they depend on everyone else. A player who says "my stats didn't move" almost always means their pp did not move, while three other numbers on the same page moved quite a lot.

pp: what the headline number is actually made of

Profile pp is not the sum of everything you have earned. The osu! servers take your best-scoring plays, sort them by pp, and add them up with a decaying weight: the n-th best play is multiplied by 0.95n−1. Only your best score on any given beatmap is eligible, so farming the same map repeatedly replaces an entry rather than adding one.

PositionWeightA 300 pp play here adds
1st1.0000300.0 pp
2nd0.9500285.0 pp
3rd0.9025270.8 pp
5th0.8145244.4 pp
10th0.6302189.1 pp
25th0.292087.6 pp
50th0.081024.3 pp
100th0.00621.9 pp

The weights of an infinitely long list would sum to 20. Your first 25 plays account for roughly 72% of that total, the first 50 for about 92%, and the first 100 for about 99.4%. The profile's Best Performance list shows 100 entries, and past that point a play's arithmetic contribution rounds away to almost nothing.

A worked example of a pp gain

Inserting a play at position k does two things at once: the new play is added at weight 0.95k−1, and every play below it shifts down a slot, so each of those loses 5% of its previous contribution. The net gain is the first effect minus the second, which is why a good play is worth far less than its raw pp value.

Take an illustrative top 100 running smoothly from a 500 pp best play down to a 150 pp hundredth. Its weighted total comes to roughly 8,119 pp.

None of them adds anything close to its face value. The same 470 pp play set by a newer player, whose list is much shorter and flatter, would be worth several times more. That asymmetry is the whole reason pp gains slow down as you improve, and it is worth checking against your own top play list rather than assuming.

Bonus pp: the part that comes from breadth

A second component is added to the weighted sum: bonus pp, granted for the number of distinct ranked beatmaps you have a score on. The osu! wiki gives it as 416.6667 × (1 − 0.995min(N, 1000)), where N is that count. It saturates at 1,000 maps, contributing a maximum of 413.894 pp.

Ranked maps with a scoreBonus pp
100164.3
250297.7
500382.7
1,000 or more413.9

The curve front-loads hard. Getting from 100 to 500 distinct maps is worth about 218 pp; getting from 500 to 1,000 is worth only about 31 pp more, and nothing beyond that. For a low-ranked account this is a meaningful share of total pp and explains why simply playing a wide spread of new maps raises the number early on. For an established player it is a fixed constant that has long since maxed out, and it never moves again.

Global rank and country rank are positions, not scores

Global rank is your index in the worldwide table sorted by pp, descending. Country rank is the same ordering restricted to players registered to your country. Neither is a measurement of you in isolation — both are measurements of you against a population that is playing while you are not.

Two consequences follow. First, your rank can worsen on a day you did not open the game, simply because other players gained pp and passed you. Second, the pp-per-rank exchange rate is wildly non-linear. Near the top of the table few players span a wide pp range, so a 60 pp session may move you a handful of places. Deep in the list players are packed within a few pp of each other, and the same 60 pp can move you tens of thousands of places. If you want a measure of your own progress that is not contaminated by everyone else's, watch pp and the turnover of your top plays; treat rank as a leaderboard position rather than a score.

Hit accuracy is a weighted average, not a plain one

The accuracy shown on your profile is not the mean of every play you have submitted. The server takes the same list of best-scoring plays used for pp, applies the same 0.95 decay to each one's accuracy, and then divides by the sum of those weights so the result normalises back to a percentage. Your very best plays therefore dominate the figure, and a flawless run on an easy map far down the list barely registers.

Per-play accuracy itself differs by mode:

ModeAccuracy formula
osu!(300×300s + 100×100s + 50×50s) / (300 × total notes)
osu!taiko(GREATs + 0.5 × GOODs) / (GREATs + GOODs + misses)
osu!catchcaught fruits, drops and droplets / total fruits, drops and droplets
osu!mania (ScoreV2)(305×MAXs + 300×300s + 200×200s + 100×100s + 50×50s) / (305 × total notes)

In osu!taiko, drum rolls and spinners are excluded; in osu!catch, bananas are excluded. Note also that osu!(lazer) judges slider heads strictly, so the same osu! play can report a different accuracy there than on stable.

Grade counts, silver grades, and the thresholds lazer changed

The profile counts only the upper grades: SS, silver SS, S, silver S and A. B, C and D results are recorded on the beatmap but are not tallied on your profile, so the grade block is a count of strong finishes rather than a full history. The silver variants are awarded for a qualifying score set with Hidden, Flashlight or Fade In.

The thresholds are not the same in both clients, which is a common source of confusion when a play that would have been an S on stable comes back as an A:

Gradeosu! / osu!taiko — stableosu! / osu!taiko — lazer
SS100%100%
S>90% 300s, ≤1% 50s, no misses≥95%, no misses
A>80% 300s no misses, or >90% 300s≥90%
B>70% 300s no misses, or >80% 300s≥80%
C>60% 300s≥70%

The osu!catch and osu!mania thresholds are effectively unchanged between clients: S at 98% and A at 94% in osu!catch, S at 95% and A at 90% in osu!mania. See grades for the compact version.

Ranked score, total score and level

Total score is the sum of every score you have submitted on every beatmap, failed attempts included. Ranked score is the sum of your best score on each ranked, approved and loved difficulty played online. The first time you set a record on a ranked map both rise; after that, total score grows with every submission while ranked score only grows when you beat your own previous best on that map.

Level is derived from total score alone. The osu! wiki gives the requirement for level n as 5,000/3 × (4n³ − 3n² − n) + 1.25 × 1.8n−60 up to level 100, and 26,931,190,827 + 99,999,999,999 × (n − 100) beyond it.

LevelApproximate total score required
106.15 million
25101 million
50821 million
752.78 billion
10026.93 billion
101126.93 billion

Past 100 each level costs a flat 100 billion, so level is a stamina counter, not a skill rating. The client's stored values differ from the formula by a fraction of a point because per-level differences are pre-rounded.

Play count, play time, total hits and maximum combo

Play count counts submitted plays, so a retried map counts once per attempt and a five-second retry spiral inflates it quickly. Play time is stored as total seconds played and displayed in hours, which makes it the more honest volume figure of the two — it cannot be padded by restarting.

Total hits is the cumulative count of scoring hits across all submitted plays, and it tracks play time closely. Maximum combo is the single longest unbroken chain you have ever achieved, on any map, ever; it is a personal record rather than a running total, and because osu!(lazer) gives slider tails their own accuracy-affecting judgement while osu!(stable) does not, the same play can report a different accuracy on the two clients.

Replays watched by others is a popularity figure, not a performance one. None of these numbers can go down, which is exactly why none of them tells you whether tonight went well.

Which numbers actually move in one session

Over a two-hour sit-down, most of the profile is inert. Play count and play time creep up. Total score rises on every submission. Level almost certainly does not change. Ranked score moves only if you beat your own record on a ranked map. What genuinely reflects the session is a short list: pp gained, rank moved, new entries in your top 100, and any new medals.

That short list is what TrackMyOsu is built around. You press Start before you play, which snapshots pp, global and country rank, accuracy, play count and your full top-100; the page refreshes every 60 seconds while the session runs, flagging new top plays and medals as they land. Pressing Stop takes a closing snapshot and stores the difference as a permanent session record. Every session stays in your history, so you can scroll back and see the plays behind each gain rather than trying to reconstruct them from a profile page that only ever shows the present.

Sources

Game mechanics described here follow the official osu! wiki — in particular Performance points, Star rating and Accuracy — and the ppy/osu difficulty and performance calculators. Session figures are computed from TrackMyOsu's own tracked-session database.

By . Last updated 2026-08-12.

Track your own osu! sessions

TrackMyOsu snapshots your pp, rank and top plays when you start playing, then shows exactly what changed when you stop. Every session is kept permanently. Free, no install, no password — it uses osu! OAuth.

Login with osu!