Skip to main content
WaveScorePro
Methodology · how we measure

The WaveScore Method

Audience measurement in West Africa has historically meant quarterly diary surveys — accurate when fresh, stale by the time the numbers ship. WaveScorePro blends four data layers so every chart you see is labelled with the confidence behind it. We will never display a number without telling you where it came from.

DIRECT

Direct stream measurement

We continuously poll the public Icecast / Shoutcast endpoints of every streaming station in our catalogue. Each poll returns the current number of TCP connections to the stream — a deterministic count of online listeners. This is the most reliable layer of the stack. Where DIRECT is available, that number is what you see. Device counts are converted to people using a persons-per-connection multiplier anchored to GSS 2021 PHC (household size × radio-listenership) and GLSS-7.

PANEL

USSD panel survey (Hubtel)

For non-streaming (FM-only) stations and for offline audience modelling, WaveScorePro uses a USSD-based listener panel delivered via Hubtel. Panel Phase 1 launches Q3 2026, targeting 500 initial respondents across Greater Accra and Ashanti, scaling to 5,000 respondents across all 16 regions by Q4 2026. Until the panel is live, non-streaming station estimates are labelled MODEL and carry 60–75% confidence. We will never label data PANEL until real panel responses are included in the calculation.

MODEL

Statistical model

When neither DIRECT nor PANEL data is available for the slot you're querying (e.g. demographic breakdown for a station that doesn't stream), we apply a probabilistic model trained on the historical DIRECT + PANEL pairs we've collected. The model output is clearly labelled MODEL on every chart, and we publish the model's accuracy versus the panel as a public benchmark each quarter.

HYBRID

Hybrid (panel + model)

Our default ratings layer blends PANEL responses against MODEL output, weighting in favour of PANEL where the sample is large enough. This is the closest analogue to traditional RAM (Radio Audience Measurement) figures published by Ipsos / Geopoll / Kantar and is the figure most often used in trading decisions.

Country calibration

Only one West African market — Ghana — is fully calibrated today. The others are honestly labelled so you never see a number without knowing what backs it:

  • Ghana · CALIBRATED — anchored to GSS 2021 PHC + GLSS-7. LSM bands (SAARF ladder) available. Panel-corrected where a USSD panel is running.
  • Nigeria · MODEL — live streaming counts captured but not calibrated against NBS census figures. Every audience number carries a MODEL badge. Excluded from ranking positions and certificates.
  • Senegal · COMING SOON — not yet measured. Browsable stations only; no audience numbers surfaced.
  • Côte d'Ivoire · COMING SOON — same as Senegal.

The certificate flow

The detection ladder is DETECTED → PENDING → CONFIRMED → CERTIFIED. A metadata match on the station's now-playing string is a sighting, not proof. A row only reaches CERTIFIED when an independent audio fingerprint match confirms the actual audio aired. Until fingerprint verification is live (Wave 3), the ladder tops out at CONFIRMED and no certificate is minted from metadata alone.

Admins can issue certificates manually — those are stamped "Manually issued · not fingerprint-verified" on the PDF face and can never claim independent proof. Certificates carry a diagonal NCA licence watermark when the station was claimed under our hardened NCA-registered-email flow. Verify any certificate at /verify/<certificate-number>.

The Credible Crawl Engine

DIRECT numbers are produced by an open-web crawler that probes public Icecast / Shoutcast stats endpoints in a specific order (the "probe ladder"):

  1. Icecast /status-json.xsl
  2. Shoutcast v1 /7.html
  3. Shoutcast v2 /stats?sid=1&json=1
  4. ICY in-band metadata (last resort — title only, no count)

The crawler is polite: one hit per host every 30 seconds, exponential backoff on 429/5xx, and it honours robots.txt. Its identifying User-Agent is WaveScorePro-Crawler/1.0 — see /crawler for the full policy and a live coverage snapshot.

Anti-gaming sanity layer — every crawled number passes three defences before publication: (1) endpoint authenticity (only structurally-valid Icecast/Shoutcast responses count), (2) endpoint dedupe (two stations sharing one mount-point can't double-count), and (3) spike freeze (anything more than 3× the trailing 24h mean is frozen to the 90-day P95 and flagged for review — legitimate spikes thaw after two consistent cycles).

Compliance & transparency

We comply with Ghana's Data Protection Act, 2012 (Act 843). USSD panel respondents give explicit opt-in consent before any personal data is processed. Inferred demographic data (MODEL output) is disclosed as such on every chart. Methodology audits are commissioned annually from an independent statistician. The previous audit letter is available on request from methodology@wavescorepro.com.

© 2026 I-Assist Pro Limited · Accra, Ghana
We use strictly-necessary cookies and browser storage for auth & playback. No third-party trackers. Read our Privacy Policy.