The Rotation chart
How the Rotation chart is calculated
We rank songs by momentum: how fast a song is gaining ground across the world's charts. Not how big it is. A song sitting at number one everywhere has no momentum. A song that was 150th in nine countries last week and is 60th in them today has a lot.
Six signals go in. Every one of them is published on every row, so you can check our work.
Velocity - how much a song improved its rank. We measure the move inside each market separately over a seven day window, compress each market's move with a logarithm, and then add them up. The compression is the point: going from 180th to 20th in one country is worth about as much as going from 40th to 25th in three. Climbing into the top of a chart counts for more than shuffling around the bottom of one.
Breadth - how many markets the song charts in today compared with the start of the window. Arriving in new markets counts for more than already being in them. This is the signal that separates a song spreading outward from a song spiking in one place.
Acceleration - whether the rate of gain is itself increasing. We split the window in half and compare the daily rate of climb in the back half with the front half. A song gaining faster every day outranks one gaining steadily.
Discovery - Shazam-class "what is this song" intent, which is people reaching for a name they do not have yet. Where a short-form platform publishes videos-using-the-sound, we count that too. We do not have sound-level play counts; nobody publishes them, and we will not imply we do.
New entry - the song was on no chart we track during the window and has just appeared.
Cross-source confirmation - how many independent sources the song is moving on. Two sources agreeing is evidence; one source alone is a rumour. This one multiplies the score rather than adding to it, and stops counting above four sources.
The first five signals are weighted - velocity 40%, breadth 25%, acceleration 20%, discovery 10%, new entry 5% - and added, then multiplied by cross-source confirmation (7% per extra source). Each signal is mapped onto a 0 to 100 curve that approaches its ceiling without ever touching it, so no two songs get pushed into a tie by the arithmetic. If two songs still land on the same number, we separate them by a fixed published order - more markets, then more sources, then alphabetical - and nudge the lower one down by 0.01.
Some sources publish momentum themselves: QQ Music publishes a growth rate, Kugou and Boomplay publish a previous rank. We ingest those as inputs, convert them into our own units, and mix them with everything else. We never pass a source's own number through as our score.
Two things are deliberately not in here. Stream counts, because a chart of stream counts is a chart of how big things already are. And our own opinion, because the chart is data. Our opinion goes on the front page, where it is signed, and never into the rank.
The second axis
How EARLY ON is ranked
The momentum chart is breadth-weighted, and that is the right answer to “what is crossing over”. It is the wrong answer to “what is about to”. Weighting breadth structurally buries a song breaking hard in a few markets before anywhere else has noticed, which is the event this chart captures Nigeria, Korea, China and Kenya in order to see. So that event gets its own ranking rather than a thumb on the scale of the first one, and both are published.
EARLY ON ranks intensity divided by spread. Intensity is the song’s velocity plus its acceleration, the same two signals the momentum chart uses. Spread is the number of markets it charts in, compressed with a logarithm, and it DIVIDES rather than subtracts: the axis asks how concentrated a move is, instead of asking the breadth question again with the sign flipped. The same move spread across ten markets scores lower than in three.
Three floors keep arithmetic from winning on its own. The move has to be real rather than chart noise. It has to have reached at least a second market, because one chart wobbling in one country is not a break and the first pass of this axis returned twelve rows that were each a single market. And it has to be confirmed by at least two independent sources, which matters more here than anywhere else: dividing by spread deliberately amplifies small numbers, and it would amplify one source’s error with them. Above twelve markets a song is no longer early anywhere and drops off the axis by itself.
A day with an empty EARLY ON list is a normal day. The floors are published so that an empty list can be read as a result rather than a bug.
What this chart cannot see
Stated plainly, on the same page as the method. A chart that only publishes its strengths is asking to have its holes found by somebody else.
- No TikTok measurement: the public sounds chart was removed in the TikTok One migration, and no vendor sells sound-level play counts because the platform does not publish them.
- Geography is a Spotify-only signal. Every other source confirms that a song is moving, not where.