Virality v0.2.0 — what we measure and how
FanHub’s virality score is a 0–100 composite of eight components, each weighted and refreshed daily. Numbers come from publicly visible signals only — we don’t claim insight into private platform analytics. This page documents what each component measures, where the data comes from, and how often it’s refreshed.
Components
Streaming momentum
18%Source: Spotify Monthly Listeners + kworb Indonesia rank delta
7-day delta of Spotify monthly listeners (per artist), z-scored against tier peers, fused with kworb's Indonesia rank movement.
YouTube momentum
18%Source: YouTube view velocity + subscriber delta
Combined view-rate and subscriber-rate change over 7 days. Cross-platform fusion was removed in v0.2.0 — YouTube's signal is treated as standalone.
TikTok momentum
22%Source: TikTok hashtag scrape (per-artist)
Rolling 7-day post count for the artist hashtag, z-scored against tier peers. Highest-weighted component for v0.2.0 — Indonesia is TikTok-first for music discovery.
Spotify editorial lift
10%Source: Spotify editorial playlist scan
Number of editorial-playlist appearances in the past 7 days, weighted by playlist follower count.
Search momentum
6%Source: Wikipedia pageviews + Google Trends (geo=ID)
id.wikipedia pageviews fused with Google Trends Indonesia interest. Tiers G/I/J/K fall through to en.wikipedia when the artist's id-locale article doesn't exist.
Shazam rank delta
6%Source: Shazam Indonesia chart
7-day movement on Shazam's Indonesia top 200. Lower position numbers are better; we invert before normalising.
Chart lift
12%Source: Apple Music Indonesia + kworb
Apple ID position + kworb's best 30-day position, lower-better. New in v0.2.0 — replaces the radio_airplay component which had no free data path.
Press mentions
8%Source: Indonesian press (Google News RSS)
Rolling 30-day press-mention count from Indonesian outlets, log-banded against tier peers.
Sources
Spotify
Daily 02:00 + 02:15 + 02:30 WIBThree passes: API metadata, page scrape (for monthly listeners and follower count, since Spotify's 2024 client_credentials change), and editorial playlists.
YouTube
Daily 03:00 WIBPer-artist channel statistics. Subscriber delta and view-velocity derived in transform.
kworb
Daily 04:00 WIBIndonesia daily streams + best chart position. Matched to artists by Spotify ID. We don't claim kworb's underlying methodology is ours — see kworb.net for theirs.
Wikipedia
Daily 07:30 WIBid.wikipedia pageviews (1d + 7d windows). Article-title matching is strict — fuzzy matches are flagged for review and excluded from the score until verified.
Refresh schedule
Sources fetch in a staggered window from 02:00–07:45 WIB. The score recompute fires at 08:00 WIB; public materialised views refresh at 08:10 WIB. End-to-end latency from a metric becoming visible on a source platform to landing on FanHub: roughly 24 hours, with batch lag and per-source freshness shown explicitly via the LIVE / STALE / IMPUTED pills on every datapoint.
Version log
- v0.2.0 — 2026-04-27. Streaming momentum redefined (Spotify ML + kworb instead of Spotify + YouTube fused). YouTube momentum standalone. Search momentum split into id.wiki + Google Trends. New chart lift component (replaces radio_airplay). Press mentions bumped 5% → 8%. Tier E (dangdut/koplo) and Tier A (legacy) override profiles introduced.