TrackMyOsu vs. osu!track: feature comparison

TrackMyOsu and osu!track are both free osu! stat trackers built on the public osu! API, and both answer the same underlying question: what has changed since last time? They differ in what defines "last time". osu!track stores a snapshot each time a player's stats are refreshed and shows the difference between points on that timeline, together with graphs across the whole history it holds. TrackMyOsu makes the play session the unit — start, play, stop — and stores each session as a discrete permanent record with its own pp, rank and top-play difference. Neither model is more correct; they suit different questions.

The core difference: a timeline versus a session

Both tools store snapshots of the same public data. The difference is what they treat as the natural interval between two snapshots.

osu!track's model is a timeline of updates. Each time a player's stats are refreshed, a row is written; the difference between any two rows is a report, and a sequence of rows is a graph. The interval is whatever happened to elapse between refreshes, which might be an hour or eight months.

TrackMyOsu's model is a bounded session. Pressing Start writes an opening snapshot, pressing Stop writes a closing one, and the pair is stored together as a single record with an explicit beginning and end. The interval is a decision you made rather than an accident of when you last loaded a page.

If your question is "how have I changed over the last year?", a timeline answers it directly. If your question is "what did I actually get out of last night?", a bounded session answers it directly. Most players eventually ask both.

What both tools do

The shared ground is substantial, and worth stating plainly before any comparison.

Because they read the same source, they will not disagree about your pp. Where they differ is in what they store around that number, how a refresh is triggered, and how the result is presented back to you. If all you need is a rough sense of how much you have improved over a stretch of time, either tool will tell you.

How each one gets fresh data

osu!track's documented model is refresh-on-demand: statistics are updated when a user's page is loaded, or when the update endpoint is called, and the response reports the difference since the previous recorded update. The published API applies a much tighter rate limit to update calls than to read calls — five per minute versus six hundred — which reflects that an update is a write against the osu! API rather than a database read. In practice this means the granularity of a player's history is determined by how often somebody remembers to refresh it.

TrackMyOsu's model is refresh-while-running. Once a session is started it keeps refreshing on a 60-second cycle until you stop it, so the record fills in whether or not the browser tab stays open. Closing the tab does not end the session, and reopening it shows the session already in progress. The trade-off is symmetrical — TrackMyOsu needs you to remember to press Start, osu!track needs you to remember to refresh.

What a session record holds that a date range does not

A date-range difference tells you the net result between two moments. A session record additionally tells you the boundaries were intentional, which turns out to matter for comparison.

Because every TrackMyOsu session has a deliberate start and stop, sessions are comparable objects. Twenty of them form a series of like-for-like sit-downs rather than twenty arbitrary slices of calendar time. A session also carries the events that happened inside it — each new entry in your top 100, and any medals earned — attached to that specific block of play rather than to a date.

This is what makes questions like "how many of my sessions produced a new top play?" or "what does a typical session gain me?" answerable at all. On a pure timeline you can compute the same thing only by picking start and end points by hand and hoping they line up with when you were actually playing. Neither approach invents data; the session model just remembers where the edges were.

What osu!track offers that a session tracker does not

osu!track is the older and broader project, and several of its features have no equivalent in a session-based tool.

If you want long-arc graphs, a peak-rank figure, mode coverage beyond osu!, or programmatic access to your own history, those are concrete reasons to use it.

Side by side

The table below covers only points where the two genuinely differ; everything in the shared list above applies to both.

 TrackMyOsuosu!track
Unit of recordA play session with explicit start and stopA snapshot on a continuous timeline
RefreshAutomatic, every 60 seconds while a session runsOn demand, when stats are updated
Sign-inosu! OAuth — no password is handledLook up any username without signing in
Peak rank / peak accuracyNot offeredRecorded with timestamps
Public APINot offeredDocumented, with published rate limits
Chat botsNot offeredDiscord and IRC
ExtrasPublic profiles at /u/<username>, a pp-gains leaderboard, a Hall of Fame, profile badgesGraphs over full history, ladder stats, site-wide best plays

A blank in one column is a design boundary, not a defect: a session tracker has no reason to expose a peak-rank archive, and a timeline tool has no reason to poll every minute.

The same evening, seen both ways

Suppose you play from 20:00 to 22:00, set one strong play, and gain 67 pp.

On a timeline the entry reads: between your update at 19:58 and your update at 22:04, pp rose by 67, global rank improved, one new hiscore was recorded. If you forget to refresh until Thursday, the same 67 pp is folded into a Tuesday-to-Thursday block alongside everything else you played, and the evening stops being separable.

As a session the entry reads: session #34, 20:00–22:02, +67 pp, rank moved, one new top play at position #7, no new medals — stored permanently under that heading, next to sessions #1 through #33.

The pp figure is identical because both read the same osu! API. What differs is whether the evening survives as its own object. That 67 pp, incidentally, is what a roughly 470 pp play is worth to a top-100 list that runs from about 500 pp down to 150 pp: the play enters at #7 at weight 0.956, and every play below it loses 5% of its contribution.

Using both, and choosing between them

There is no conflict in running both. They read the same public osu! API independently, neither writes anything to your osu! account, and using one does not affect what the other records. A common arrangement is to use TrackMyOsu for the session you are currently playing and osu!track for the long-arc view across months.

If you have to pick one, the deciding question is what you want to be able to look back at:

Whichever you choose, the value only accumulates if the record is being kept while you play. A tracker with three entries in it cannot tell you anything about your trajectory; the habit is the feature.

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!