Press

How votes count

The rules behind the K-Pop Arena ranking, live counters you can check, and every correction we make.

Methodology v1 · data in JSON

What counts

What doesn’t count

How it works (technical)

  1. Request. Each vote is one HTTPS request to our API on Google Cloud Run: POST /api/votes/{groupId} with a device ID (a random UUID created in your browser and kept in local storage) or your account ID when you are signed in. Writes are limited to 15 per minute per IP address.
  2. Bot filter. The user agent is matched against known crawlers and the source IP against Google’s official crawler ranges and Meta’s networks. A match gets HTTP 202 “not counted” and nothing is written. Google’s user-triggered fetchers are not blocked: there are real people behind them.
  3. 24-hour limit. The server reads the device’s last vote time; under 24 hours it answers HTTP 429 with the next vote time. The check runs again inside the database transaction, so two simultaneous taps cannot both count.
  4. One atomic write. A single Firestore transaction adds one to the all-time counter and to the season counter and stores the device’s last vote time: all or nothing.
  5. Public counters. Every outcome (counted, refused, blocked) adds to the counters below, per UTC day; counted votes also per hour.

A device is not a person: someone with several devices can vote from each. The ranking measures fan engagement on K-Pop Arena, not a census of every fan.

Stats for nerds

Live from /api/vote-transparency · last 14 days (UTC) · updated 2026-10-11 17:28 UTC

8,201Votes counted
2,650Refused: 24-hour limit
2,753Blocked: bots
Day (UTC)Counted24-h limitBotsCounted share
2026-10-11 (in progress)58722210764%
2026-10-1078218727063%
2026-10-0989420523167%
2026-10-0886918329165%
2026-10-071,05023736664%
2026-10-061,02229945058%
2026-10-051,22740340460%
2026-10-0498250019459%
2026-10-0378841444048%
2026-10-02————
2026-10-01————
2026-09-30————
2026-09-29————
2026-09-28————

These counters went live on Oct 3, 2026. Days before that show “—” (no data), not zero. “Refused” counts attempts, not people: one device retrying three times adds three. “Counted share” = counted ÷ all vote attempts that day.

When votes arrive (last 7 days, UTC)

00:00–00:59 UTC: 228 counted votes01:00–01:59 UTC: 249 counted votes02:00–02:59 UTC: 234 counted votes03:00–03:59 UTC: 298 counted votes04:00–04:59 UTC: 224 counted votes05:00–05:59 UTC: 292 counted votes06:00–06:59 UTC: 259 counted votes07:00–07:59 UTC: 281 counted votes08:00–08:59 UTC: 385 counted votes09:00–09:59 UTC: 272 counted votes10:00–10:59 UTC: 313 counted votes11:00–11:59 UTC: 306 counted votes12:00–12:59 UTC: 329 counted votes13:00–13:59 UTC: 441 counted votes14:00–14:59 UTC: 335 counted votes15:00–15:59 UTC: 323 counted votes16:00–16:59 UTC: 345 counted votes17:00–17:59 UTC: 304 counted votes18:00–18:59 UTC: 170 counted votes19:00–19:59 UTC: 203 counted votes20:00–20:59 UTC: 162 counted votes21:00–21:59 UTC: 209 counted votes22:00–22:59 UTC: 127 counted votes23:00–23:59 UTC: 142 counted votes 0003060912151821 hour of day (UTC)

Season 2 so far

18,005Votes in the ranking
120Groups with votes
2,753Bot votes blocked

Counter totals from Oct 3, 2026 (UTC): 8,201 counted, 2,650 refused by the 24-hour limit, 2,753 blocked as bots. “Votes in the ranking” is the season table after corrections.

Polls and small samples

Community polls and the Weekly Challenge show how much a result can be trusted, not just who is ahead:

The main ranking is different: it is not a sample but the exact count of the votes cast on K-Pop Arena under the rules above. Intervals describe how much a small poll could still move; they do not mean votes were miscounted.

Corrections log

  1. Crawler votes removed from Season 2

    We found that crawlers (mostly Meta's link-preview crawler) were triggering automatic votes from shared vote links. We blocked them and removed 1,747 crawler votes from Season 2.

    1,391 votes came from Meta's link-preview crawler, 354 from other bots identified by their user agent (for example ionbot, TikTokSpider, Baiduspider and Googlebot) and 2 from Meta's network.

    The removal touched 115 groups, in both the Season 2 table and the all-time totals. The values before and after were saved, so the correction is reversible.

    Votes that arrive through Google's user-triggered fetchers are not blocked: they come from real fans using a Google service, and about half of them hit the same device's 24-hour limit.

Data & citation

K-Pop Arena vote data, methodology v1, accessed Oct 11, 2026. https://bestkpopband.com/methodology

Press and data questions: apps@brainystack.co · Press kit

Videos

Technical walkthrough

Each step a vote goes through on the server, with the real endpoints and live counters. 84 s, no AI footage.

Short explainer

From Arena Notes

K-Pop Arena is a fan project, not affiliated with any artist or agency. If you find a problem with the numbers, write to us: confirmed problems go into the corrections log.