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.
- Both are free to use and read from the public osu! API, so neither can see anything your profile does not already expose.
- Both record pp, global rank, accuracy and play count and report how they changed between snapshots.
- Both detect new top plays and surface them alongside the pp change, so a gain can be traced to the score that caused it.
- Both keep history rather than discarding it, so old records remain readable later.
- Both let you look at players other than yourself.
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.
- All four game modes. Its API documents coverage of osu!, osu!taiko, osu!catch and osu!mania, with separate stat histories per mode.
- Peak values. It records a player's best-ever global rank and best-ever accuracy along with when each occurred — a genuinely useful figure that a diff between two recent snapshots cannot reconstruct.
- A documented public API. Endpoints for stat history, hiscores, peak values and updates are published with their rate limits, so third-party projects can build on it.
- Bot integrations. Discord and IRC bots let players pull their update summary without visiting the site.
- Depth of history. It has been running and retaining data for many years, so for a long-standing player the archive may already reach back well beyond the point any new tool could start from.
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.
| TrackMyOsu | osu!track | |
|---|---|---|
| Unit of record | A play session with explicit start and stop | A snapshot on a continuous timeline |
| Refresh | Automatic, every 60 seconds while a session runs | On demand, when stats are updated |
| Sign-in | osu! OAuth — no password is handled | Look up any username without signing in |
| Peak rank / peak accuracy | Not offered | Recorded with timestamps |
| Public API | Not offered | Documented, with published rate limits |
| Chat bots | Not offered | Discord and IRC |
| Extras | Public profiles at /u/<username>, a pp-gains leaderboard, a Hall of Fame, profile badges | Graphs 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:
- Choose a session record if you think in sit-downs — if "what did tonight give me?" and "is a typical session still producing new top plays?" are the questions you actually ask.
- Choose a timeline if you think in months — if you want an accuracy curve across a year, a peak-rank figure, coverage of a mode other than osu!, or an API to query.
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 carrot12_. Last updated 2026-08-12.