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-2023, to 12-31-2023. 14 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 365 days, were calculated by determining the the difference between the number of followers on 12-31-2023 and 01-01-2023.

				
					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'=>'2023-01-01',
                'end_date'=>'2023-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
  • 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 earned 365 days
  • Amazon chart earned 365 days
  • Apple music chart earned 365 days
  • TikTok views earned in 365 days
  • Shazams earned in 365 days
  • 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.09
  • 1001 Tracklist support earned in 365 days – 0.095
  • Total Spotify streams in 365 days – 0.1
  • Spotify followers gained in 365 days – 0.5
  • 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 earned in 365 days- 0.05
  • Amazon chart earned in 365 days – 0.05
  • Apple music chart earned in 365 days – 0.075
  • TikTok views earned in 365 days – 0.085
  • Total Shazams earned in 365 days – 0.12
  • Beatstats Score – 0.12
Scroll to Top