
Abstract
The objective of this algorithm is to create a ranking based entirely on data extrapolated from the world’s leading streaming and ranking platforms during the time period of 01-01-2022, to 12-31-2022. 15 different parameters extracted from 11 platforms were used. Once the data was extrapolated and normalized using min-max normalization, a weighted sum of these values was performed to give greater weight to certain platforms and calculate a final score called ‘points’ for ranking purposes.
Data Access
All the data used in this study was sourced from the main electronic music DSP’s and social media platforms. It was possible to access daily data for the entire time period considered for the ranking. Artists from all over the world were analyzed and taken into consideration for the ranking.
Certain data were already aggregated and readily available for our purpose, such as the Amazon chart total. Other data, such as the Instagram Followers Earned in 265 days, were calculated by determining the the difference between the number of followers on 12-31-2022, and 01-01-2022.
public function getArtistData($spotify_artist_id){
$client = new Client([
'base_uri' => 'https://api.songstats.com/enterprise/v1/',
]);
$response = $client->request('GET', 'artists/historic_stats', [
'headers'=> [
'apikey' => xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx’
],
'query'=> [
'source'=>'spotify,apple_music,instagram,amazon,tiktok,tidal,soundcloud,youtube,shazam,tracklist',
'spotify_artist_id'=> $spotify_artist_id,
'start_date'=>'2022-01-01',
'end_date'=>'2022-12-31',
'with_aggregates'=>'true'
]
]);
return $response
}
After obtaining data for each artist, it was saved in a database for future use in calculating the score.
Parameters used
- Instagram followers gained in 365 days
- Instagram likes earned in 365 days
- 1001 Tracklist support earned in 365 days
- Total Spotify streams in 365 days
- Spotify followers gained in 365 days
- Youtube views earned in 365 days
- Youtube subscribers earned in 365 days
- Soundcloud streams earned in 365 days
- Soundcloud followers gained in 365 days
- Tidal chart total at 31-12-2022
- Amazon chart total at 31-12-2022
- Apple music chart total at 31-12-2022
- TikTok views earned in 365 days
- Total Shazams as of 12-31-2022
- Beatstats Score
Min - Max normalization
After extrapolating all of the data, a normalization process was conducted to scale the data with a range of 0 and 1. This process preserved the relationships between the original data values in the same way.
This process includes 2 steps:
The maximum and minimum values for each parameter was determined using the previously downloaded data.
foreach($sources as $key=>$params){
$query ="SELECT MAX(cast( value as DECIMAL ) ) FROM artists_stats WHERE param=".$key."";
$result = $mysqli->execute_query($query);
$sources[$key]['max_value']=$result;
$query ="SELECT MIN(cast( value as DECIMAL ) ) FROM artists_stats WHERE param=".$key."";
$result = $mysqli->execute_query($query);
$sources[$key]['min_value']=$result
}
After determining the maximum and minimum values for each parameter in each artist file, the values were normalized to a scale of 0 to 1.
foreach($sources as $key=>$params){
foreach($artists as $key2=>$artist){
$value=get_value_params($artist['ID'],$key,true);
$value_normalized=(value - params['min_value'])/( params['max_value']-params['min_value']);
if(is_nan($value_normalized)){
$artists[$key2][$key]=0;
}
else{
$artists[$key2][$key]=$value_normalized;
}
}
}
WEIGHTED SUM
To differentiate the relevance of the various parameters, a weighted sum was carried out as the final step. The result of this operation is the points that will determine the position in the chart.
PARAMETER - WEIGHT
- Instagram followers gained in 365 days – 0.06
- Instagram likes earned in 365 days – 0.06
- 1001 Tracklist support earned in 365 days – 0.095
- Total Spotify streams in 365 days – 0.085
- Spotify followers gained in 365 days – 0.035
- Youtube views earned in 365 days – 0.06
- Youtube subscribers earned in 365 days – 0.025
- Soundcloud streams earned in 365 days – 0.04
- Soundcloud followers gained in 365 days – 0.04
- Tidal chart total at 31-12-2022 – 0.05
- Amazon chart total at 31-12-2022 – 0.05
- Apple music chart total at 31-12-2022 – 0.075
- TikTok views earned in 365 days – 0.085
- Total Shazams as of 12-31-2022 – 0.12
- Beatstats Score – 0.12