Performance points (or pp for short) is a ranking metric that aims to be more contextually relevant to a player's progression in osu!.
It aims to shift the focus of skill progression from the amount of time played to an actual representation of the player's skill. This is attained by the calculation of a unique score known that is based on the difficulty of a beatmap and a player's performance on that beatmap.
The first initial implementation of such a score was revealed to the public during April 2012 and was known only as the mysterious '???' project, the enigmatic system eventually received its full name later on in the month.
Known thereafter as "pp" (an abbreviation for "performance points"), this new system sought to change the previous standard of player performance from simply total score to something that accurately reflected skill. The new system was met to widespread acclaim among the player base at the time.
Several months after its reveal, the 20120722-24 osu! release officially implemented the system to fully replace the old Ranked score system, with new scores being calculated every 30 minutes. Later on in August of the same year, the system was improved to update in real-time.
It continued to exist in this capacity for more than a year of service until Tom94, the creator of the osu!tp scoring metric, joined the osu! team and implemented his design into the system. The resulting system was titled ppv2, and became live on January 27, 2014, therefore renaming the old system to ppv1
On January 16, 2021, changes were made to the ppv2 system that aimed to more accurately award pp to more difficult aspects of maps. These changes were made in large part by the help of various individual members of the community such as Xexxar and StanR. The specifics of the changes made are detailed in the corresponding newspost. Very briefly, the main points of interest in the update were as follows:
ppv2 is currently in active service, with updates in the form of news posts published by the Performance Points Committee whenever new changes are deployed.
Performance points are heavily based on calculated beatmap difficulty, which is determined by a unique algorithm constructed for each individual game mode.
The difficulty of the beatmap a player is playing on determines the end pp value of their score. By design, the formula relies on four core values: aim, speed, accuracy, and strain. All of which are then combined in varying magnitudes to produce an overall score that relates to a beatmap's particular difficulty, and a player's individual performance in said beatmap.
Scores are then "weighted" against each other to ensure that only the best scores a user makes count the most towards their overall performance points ranking. Known as the weightage system, its goal is to prevent the rapid and repeated gaining of lower pp scores on easy beatmaps by reducing the amount of pp that is actually gained based on the player's other top scores.
Note: A small amount of bonus pp is awarded based on the number of Ranked maps you have set a score on.
The weightage system is a simple formula used after the calculation of the full amount of performance points a play is worth. The formula is used to reduce the amount of pp that is gained based on said play's placing in the player's top scores. The aforementioned formula is as follows:
Total pp = p * 0.95^(n-1)
Regarding the formula above, p represents each score's full pp value (pre-weighting), and n is the placing in the player's
Best Performance ranking. For example, if a player's top 5 scores were 110pp, 100pp, 100pp, 90pp, and 80pp, then the weighted scores would be approximately 110pp, 95pp, 90pp, 77pp, and 65pp.
Aim is a core value that considers how difficult it is to consistently hit consecutive notes in a beatmap.
Elements like approach rate and certain mods (namely Flashlight, Hidden and Hard Rock) make navigating the cursor quickly and accurately significantly more difficult, and thus influence the amount of pp a score gives.
In case of osu!, beatmaps with very large jumps are considered to be "high aim" beatmaps, and are thus often given very high pp scores. Likewise, beatmaps with more hyperdashing in osu!catch will be considered similarly. Aim is not considered in game modes like osu!taiko and osu!mania.
Speed is a core value that considers the rate at which a beatmap presents elements for a play.
Beatmaps with high numbers of hit objects in a short period of time are considered to have very high speed values. In this specific aspect, the faster a beatmap's speed is, the more difficult said beatmap is, therefore granting larger gains of pp.
As a result of this, mods like Double Time and Half Time significantly affect the speed of a beatmap considered by the performance points algorithm. Likewise, these mods also significantly affect pp gains when used.
See also: Accuracy
Accuracy is a percent measure of a player's ability to hit hit objects on-time; in regards to the pp algorithm, it is also a core value that is used to evaluate a player's individual performance on a beatmap.
Scores with high accuracy values are considered by the algorithm to be highly impressive, and will award very large scores because of this. A full combo play that obtained 80% accuracy can sometimes be worth 2/3 of a score set with 95% accuracy. Due to the algorithm's heavy reliance on accuracy, mods like Hidden, Hard Rock and Flashlight are considered to significantly increase the pp gain for plays with high accuracy.
Strain is a core value that considers how many times, and for how long, a player is subjected to high intensity sections within a particular beatmap.
Sections or of extremely high speed or difficulty patterning in a beatmap will significantly increase its considered strain values. E.g., beatmaps with more streams or fast jump waves will have high strain values, and thus increase the pp gain for that beatmap.
The performance points ranking for all players can be found on the rankings page.
You can also navigate to the rankings by using the
ranking dropdown panel at the top of the legacy web design, and choosing the
Your performance is ranked predominantly based on your scores on individual maps.
The best way to improve is to work at getting good scores on difficult maps or playing a wide variety of beatmaps.
Consider the following tips:
Performance points use a weighted system, which means that your highest score ever will give 100% of its total pp, and every score you make after that will give gradually less.
You can learn more about the weightage system above.
Up to 416.6667 bonus pp is given for setting large numbers of scores. This is attained at approximately 25397 scores.
You can calculate the exact amount of this bonus by following this formula, where
N is the number of ranked maps with a score set:
416.6667 * (1 - 0.9994 ^ N)
The median number of scores required to reach half of this bonus is roughly 1,155 scores. As you can see, the amount of scores required spikes sharply towards the upper end of the spectrum.
As above, older scores will eventually be weighted for less than a single percent of their total value. This means they will eventually contribute almost nothing to your total score as you improve.
At that point however, you would've set some comparatively more impressive scores, meaning that your pp will be higher overall as the higher scores you have set outweigh the older ones.
You might occasionally lose pp for setting a higher combo score with worse accuracy, or playing with mods with worse accuracy overall.
Total score is still important to individual map rankings, and this may produce unusual circumstances where a higher overall score with lower accuracy or mod use factored in will produce a "better" result that still ultimately loses you pp.
This is a matter of opinion more than anything else.
No system is completely perfect, and performance point totals will certainly vary between mapsets and certain mod combinations, even when the subjective difficulty of those plays may be lower than a more difficult map.
Overall, the current performance points system has been engineered to be as fair as possible under the constraints of its model.