Skip to content

Coverage methodology

/v1/health/coverage returns a domain_coverage object per jurisdiction:

"MGA": {
"domain_coverage": {
"operators_with_domain": 106,
"normative_operators": 114,
"coverage_pct": 93
}
}

This page explains what those three numbers mean — because the honest answer depends on which question you’re asking. It covers domain coverage only; how we read each register and which regulator page sets each licence status is in our methodology.

Field Meaning
normative_operators Operators in this jurisdiction whose license type is one where domain disclosure is normative — i.e., the operator is consumer-facing and the regulator publishes (or could publish) a website field.
operators_with_domain Subset of those operators that have ≥1 linked domain (a row in domain_operators) in our DB.
coverage_pct operators_with_domain / normative_operators × 100. The honest “what fraction of operators we should have a domain for, do we?” number.

Different regulators license different activities. A B2B software supplier or a non-remote arcade operator can hold a perfectly valid license without ever running a consumer website. Including them in the denominator deflates coverage in a way that has nothing to do with our scraper quality — it just measures the regulator’s mix of consumer-facing vs. supplier licenses.

The normative subset filters them out. What’s left is operators where a missing domain is interesting — either we missed it (scraper bug we can fix) or the regulator didn’t publish it (upstream ceiling, defer to enrichment).

Jur Normative subset Excluded
UKGC license_type_raw = 'Remote' Non-Remote (physical premises), Ancillary Remote (B2B suppliers, game studios)
MGA license_number LIKE 'MGA/B2C/%' MGA/B2B/* (suppliers), MGA/CRP/* (Critical Gaming Supply / Recognition / Personal)
CW license_type_raw ILIKE 'b2c%' b2b (suppliers post-LOK)
KH license_type_raw = 'Interactive Gaming Permit' CSPA (Casino Software Provider Authorisation, B2B suppliers)
AN 'B2C' = ANY(license_types) pure-B2B and pure-White-Labeling-only operators
TGC license_type_raw = 'B2C' B2B (suppliers)
IOM license_type_raw = 'Full' Network Services, Software Supply (B2B — networks and game suppliers)
ON every operator in the directory nothing — iGaming Ontario’s operator directory lists operators of player-facing sites only, and prints no licence type
SE license_type_raw IN ('Kommersiellt online', 'Kommersiellt vadhållning') nothing we hold — but see below: every other Swedish licence type is not loaded at all
ES every licence nothing — every DGOJ licence is an online one; but see below: lotteries and land-based gambling are not DGOJ licences at all
BE every licence nothing we hold — only the three online classes (A+, B+, F1+) are loaded; but see below: land-based licences are not loaded at all
DE every licence nothing we hold — only the GGL’s four internet game types are loaded; but see below: a Land’s online casino permits, lotteries and land casinos are not loaded at all
CO every licence nothing — every Coljuegos concession we load is an online one; but see below: land-based gaming and the lotteries are not loaded at all
UA every licence nothing we hold — only PlayCity’s three online types (Online casino, Online poker, Bookmaking) are loaded; but see below: land casinos, slot halls and the lotteries are not loaded at all

For MGA we filter on the license-number prefix because license_type_raw carries the gaming-service breakdown (Type 1, Type 2, Type 3, Type 4), not the B2B/B2C class distinction.

For AN, operators with mixed license_types (e.g., ["B2C","B2B"]) are included — having any B2C component makes the operator consumer-facing.

For IOM, Full is the Online Gambling Regulation Act licence to offer gambling to the public; the Isle of Man Gambling Supervision Commission lists a website in a licensee’s profile only “where a licence holder is actively offering services to the public”. A Network Services licensee (a poker network, say) can run a consumer site and still falls outside the subset — the filter follows the licence type the Commission names.

For ON, what we read is iGaming Ontario’s operator directory — the public list of the operators the Alcohol and Gaming Commission of Ontario (AGCO) registers; the AGCO’s own list page points at it. Each entry names the operator’s gaming sites, so every operator is in the subset. A site is linked by its host; a host the directory lists under two operators is linked to both, and a look-up names each of them.

For SE, we load two of the licence types in Spelinspektionen’s register — Kommersiellt online (commercial online gaming) and Kommersiellt vadhållning (betting), the two the register lists web addresses for. Not loaded: B2B software permits (Spelprogramvara), land-based casino and card games, state gaming machines, ships, and public-benefit and state lotteries. Some of those lotteries run websites (bingolotto.se is one), and /v1/check answers not_found for them: that is a limit of our coverage, not a finding that the site is unlicensed. The register lists some addresses with a market section (betsson.com/sv); we link the host, and keep the address as listed in the licence’s raw_data.

For ES, we load the Dirección General de Ordenación del Juego’s (DGOJ) state-level online licences: one record per general licence (Apuestas, Concursos, Otros juegos) of each operator on the DGOJ’s “Operadores con licencia” list, and the domains its operator page lists (“Lista de dominios”). Every one can cover a website, so every operator is in the subset. Not in our data: the state lotteries (SELAE — Loterías y Apuestas del Estado — and ONCE), which are reserved by law and hold no DGOJ licence, and land-based and regional gambling, which the autonomous communities license. /v1/check answers not_found for such a site: a limit of our coverage, not a finding that the site is unlicensed.

For BE, we load the Belgian Gaming Commission’s (Kansspelcommissie) three online licence classes, each the online extension of a land licence: A+ (online casino games), B+ (online arcade games) and F1+ (online betting), read from the Commission’s published lists of active licences. Each row names the sites it licenses; we link the host, and a site the Commission lists for two operators is linked to both. Not in our data: the land-based classes (A, B, C, F2) and the Loterie Nationale. /v1/check answers not_found for such a site: a limit of our coverage, not a finding that the site is unlicensed.

For DE, we load the four internet game types the Gemeinsame Glücksspielbehörde der Länder (GGL) itself permits, from its official whitelist: Virtuelle Automatenspiele (virtual slots), Online-Poker, Sportwetten (sports betting) and Pferdewetten im Internet (online horse betting); a retail-only betting permit is not loaded. The whitelist lists each permit’s websites, sometimes with a section (pokerstars.de/sports); we link the host, and keep the listing as printed in the licence’s raw_data. Not in our data: online casino table games licensed by a Land (Schleswig-Holstein, Bayern), lotteries (the state DLTB lotteries, lottery brokers, charity lotteries) and land casinos, though the whitelist names them. /v1/check answers not_found for such a site: a limit of our coverage, not a finding that the site is unlicensed.

For CO, we load Coljuegos’ online gaming concessions — juegos novedosos of the juegos operados por internet kind — from its page of authorised online operators: one record per concession contract, its license_number Coljuegos’ own contract number (2182, C2261). The page names each operator’s website; we link the host. Not in our data: land-based gaming (juegos localizados) and the lotteries. /v1/check answers not_found for such a site: a limit of our coverage, not a finding that the site is unlicensed.

For UA, we load PlayCity’s online casino, online poker and bookmaking licences from its register of every licence (a PDF linked from playcity.gov.ua): one record per issuing decision, license_number our reference (PlayCity prints none). The register names each licensee’s websites and apps; we link every website host. Not in our data: land casinos, slot halls, per-machine and per-table licences, bookmaker shops and the state lotteries. /v1/check answers not_found for such a site: a limit of our coverage, not a finding that the site is unlicensed.

For a given jurisdiction, coverage_pct is the most useful single indicator of “how complete is iGregulator on this regulator?” relative to what’s recoverable. It’s not the same as “% of all licensees that have a domain” — that older framing mixed B2B and consumer-facing operators and obscured the real ceiling.

Two consequences worth flagging:

  • A coverage_pct of 0 means either (a) the upstream regulator doesn’t publish website data at all, or (b) our scraper hasn’t started picking up the field yet.
  • A coverage_pct near 100 means we’re at the upstream ceiling — any remaining gap is operators who haven’t disclosed a domain to the regulator, not a scraper bug.

Regulator-verified domains (Curaçao, Tobique)

Section titled “Regulator-verified domains (Curaçao, Tobique)”

Curaçao and Tobique publish no bulk domain list — but both run a per-domain verification surface of their own: the CGA certificate portal (cert.cga.cw, including the /token registry that lists each licence’s complete approved-domain cluster) and the Tobique validation seal (validate.thetgc.ca). Our coverage for these two jurisdictions is built directly on those pages:

  • Every CW/TGC domain we hold carries the regulator’s own verification_url — surfaced on /v1/check so you can confirm the verdict against the primary source yourself.
  • A nightly re-verification pass re-reads up to 500 stored pages per jurisdiction, oldest first — every Tobique seal each night, each Curaçao certificate every 2–3 days — and moves domain_status only on a clean read of the regulator’s own words — in both directions (active ↔ delisted), never on a guess. A page we cannot fetch or parse changes nothing.
  • Weekly discovery finds what’s new: a CGA /token registry sweep (more complete than the published OGL PDF) and a Tobique headless-render pass over candidate casino sites (the seal is JS-injected in site footers, so a plain fetch can’t see it).

This makes CW/TGC domain rows stronger than a register listing: each one is backed by a regulator page we re-checked within the last three days.

Numbers can shift when methodology changes

Section titled “Numbers can shift when methodology changes”

The 1.4.0 changelog (2026-04-28) introduced this metric. Prior versions reported coverage as total_domains / total_licenses per jurisdiction, which inflated KH (3+ domains per IGL holder average made it read 91% even though only 42 of 61 holders had any domain disclosed) and deflated UKGC (the 17.3% denominator was 2,660 total ops including 1,594 non-remote licensees, dragging the rate down).

If you compare numbers in a 1.3.x response to numbers in ≥1.4.0, expect movement. The DB hasn’t changed — only the question we’re asking it.

As of 2026-09-30 (read from /v1/health/coverage, where the live numbers always are):

Jur coverage_pct With domain / normative Reading
AN 99% 1,394 / 1,405 Near-ceiling — the remaining AN operators chose not to disclose a domain upstream
CW 93% 566 / 607 Was 0% until 1.9.0 — built from the CGA’s own verification portal (/token clusters + certificates), ~4,850 domain links, each re-verified against its certificate every 2–3 days
MGA 93% 106 / 114 Post-enrichment ceiling (a handful of B2C operators omit the Website Urls section upstream)
KH 73% 46 / 63 Matches the upstream ceiling — the missing IGL holders chose not to disclose
UKGC 55% 520 / 937 Upstream ceiling — only Remote-license holders in domain-names.csv can be covered
TGC 16% 28 / 171 Seal-discovery live (weekly headless-render pass) — growing run by run; the register itself publishes no website column
IOM 88% 14 / 16 At the upstream ceiling — the two Full licensees without a domain (PlaySmart IOM, Premier Gateway International) have no website in their register profile. 50 domain links across 27 licensees in all, suppliers included
ON — — New on 2026-10-08; the live endpoint has the figures. The directory listed 49 operators and 84 gaming sites on 2026-10-07
SE — — New on 2026-10-08; the live endpoint has the figures. On 2026-10-07 the register held 139 online-gaming and betting licences over 80 holders, listing 197 hosts on 137 of them (two licences list no website)
ES — — New on 2026-10-15; the live endpoint has the figures. 78 licensed operators, 135 general licences and 126 .es domains at the first read
BE — — New on 2026-10-15; the live endpoint has the figures. 81 licences (A+ 9, B+ 48, F1+ 24) over 76 operators and 79 hosts at the first read
DE — — New on 2026-10-15; the live endpoint has the figures. 72 licences over 50 operators and 123 hosts at the first read
CO — — New on 2026-10-16; the live endpoint has the figures. 14 concessions over 14 operators and ~15 hosts (all .co / .com.co) at the first read
UA — — New on 2026-10-21; the live endpoint has the figures

Questions about a specific jurisdiction’s upstream behaviour — founder@igregulator.io.