{"id":8275,"slug":"spotify-african-chart-turnover-by-market-2026","title":"Distinct tracks and daily turnover on Spotify&#8217;s four African Top 200 charts, 16 August to 27 October 2026","source":"Spotify daily Top 200 country charts for Egypt, Morocco, Nigeria and South Africa, read daily from the kworb.net mirror by this desk","source_url":"https:\/\/kworb.net\/spotify\/","source_type":"computed","method":"Charts are read from kworb.net\/spotify\/country\/_daily.html, one page per market per day. Spotify publishes a daily Top 200 for four African markets: Egypt, Morocco, Nigeria and South Africa. This desk has collected all four every day it ran, 70 collection dates between 16 August and 27 October 2026, 200 positions each, 56,000 chart positions in total. A track is identified by its Spotify track ID, not by its title string, because the same recording appears under slightly different title and artist strings on different days. An entry is counted \"new\" on a date when its track ID was absent from that market's chart on the previous collection date. Two dates are excluded from the per-day turnover arithmetic and from nothing else: 17 August 2026, where the source returned the 16 August chart unchanged in Morocco (200 of 200 positions identical) and Nigeria (199 of 200), and 16 October 2026, the first collection after a three-day gap, where a \"new\" entry could have arrived on any of four days. That leaves 67 transition days, 53,600 chart positions, for the turnover columns. Chart presence is not consumption: a track outside a market's top 200 is invisible here however much it is played, and Spotify publishes no daily chart at all for the other African markets. distinct_tracks counts separate Spotify track IDs seen anywhere in a market's top 200 across the 70 dates; distinct_top50 and distinct_top10 repeat the count restricted to positions 1 to 50 and 1 to 10. tracks_all_70 counts track IDs present on every one of the 70 dates, tracks_one_date those present on exactly one. mean_dates_held is the mean number of collection dates a distinct track was present. new_per_day, pct_new_per_day, max_day_intake and mean_pos_new are computed over the 67 clean transition days. mean_run_27oct is the mean unbroken run, in consecutive collection dates, of the 200 entries on the chart of 27 October 2026, and it is censored at 70 because the record does not reach further back. positions_read is collection_dates multiplied by positions_per_day, 14,000 per market and 56,000 across the four. positions_transition is the same arithmetic over the 67 clean transition days, 13,400 per market and 53,600 across the four.","unit":"","license":"Afrobeats Wire's compilation and analysis are licensed CC BY 4.0. Rights in the underlying source data remain with the source named above.","confidence":"high","retrieved":"2026-10-27 08:10:17","n":4,"first_party":0,"columns":[{"key":"market","label":"Market","type":"text"},{"key":"iso2","label":"ISO","type":"text"},{"key":"collection_dates","label":"Collection dates","type":"number"},{"key":"positions_per_day","label":"Positions per day","type":"number"},{"key":"positions_read","label":"Chart positions read","type":"number"},{"key":"transition_days","label":"Clean transition days","type":"number"},{"key":"positions_transition","label":"Positions in turnover population","type":"number"},{"key":"distinct_tracks","label":"Distinct tracks, top 200, 70 dates","type":"number"},{"key":"distinct_top50","label":"Distinct tracks, top 50","type":"number"},{"key":"distinct_top10","label":"Distinct tracks, top 10","type":"number"},{"key":"tracks_all_70","label":"Tracks present on all 70 dates","type":"number"},{"key":"tracks_one_date","label":"Tracks present on one date only","type":"number"},{"key":"mean_dates_held","label":"Mean dates a track is held","type":"number"},{"key":"new_per_day","label":"New entries per day","type":"number"},{"key":"pct_new_per_day","label":"Chart replaced per day, %","type":"number"},{"key":"max_day_intake","label":"Largest single-day intake","type":"number"},{"key":"mean_pos_new","label":"Mean position of a new entry","type":"number"},{"key":"mean_run_27oct","label":"Mean unbroken run, 27 Oct, dates","type":"number"}],"rows":[{"market":"Egypt","iso2":"EG","collection_dates":70,"positions_per_day":200,"positions_read":14000,"transition_days":67,"positions_transition":13400,"distinct_tracks":235,"distinct_top50":66,"distinct_top10":18,"tracks_all_70":90,"tracks_one_date":11,"mean_dates_held":44.1,"new_per_day":5.69,"pct_new_per_day":2.8,"max_day_intake":12,"mean_pos_new":179.3,"mean_run_27oct":55.7},{"market":"Morocco","iso2":"MA","collection_dates":70,"positions_per_day":200,"positions_read":14000,"transition_days":67,"positions_transition":13400,"distinct_tracks":412,"distinct_top50":105,"distinct_top10":24,"tracks_all_70":101,"tracks_one_date":46,"mean_dates_held":34,"new_per_day":12.79,"pct_new_per_day":6.4,"max_day_intake":20,"mean_pos_new":173.7,"mean_run_27oct":45.2},{"market":"Nigeria","iso2":"NG","collection_dates":70,"positions_per_day":200,"positions_read":14000,"transition_days":67,"positions_transition":13400,"distinct_tracks":506,"distinct_top50":158,"distinct_top10":51,"tracks_all_70":81,"tracks_one_date":52,"mean_dates_held":27.7,"new_per_day":15.07,"pct_new_per_day":7.5,"max_day_intake":33,"mean_pos_new":159.8,"mean_run_27oct":38.9},{"market":"South Africa","iso2":"ZA","collection_dates":70,"positions_per_day":200,"positions_read":14000,"transition_days":67,"positions_transition":13400,"distinct_tracks":609,"distinct_top50":148,"distinct_top10":30,"tracks_all_70":64,"tracks_one_date":104,"mean_dates_held":22.9,"new_per_day":26.75,"pct_new_per_day":13.4,"max_day_intake":52,"mean_pos_new":154.2,"mean_run_27oct":31.1}]}