ig iGregulator
~/methodology

How iGregulator verifies

In short. We show revoked, suspended or surrendered only when a regulator's own publication says so and we read it, and active only when the regulator listed it as current on our latest read (a Curaçao licence still under the CGA's final assessment is shown as active, marked provisional). A licence that simply disappears from a register becomes not_in_register — an observation about the register, not a revocation — and only after it has been missing from every read for 60 hours; a page we can't read changes nothing. Every status cites the page it was read from and when, and since 17 September 2026 we keep a stored copy of the register and enforcement pages behind it. The Tobique Gaming Commission publishes no revocations, so a Tobique licence is only ever active or not_in_register. Mistakes are marked and corrected in the open, never deleted — see the corrections log.

We read the public registers of seven gambling regulators every night and report what they say — each status with the regulator page it came from and when we read it. This page describes how that works, checked against the code that does it, including where it can go wrong.

Regulators
7 — UKGC, MGA, CW, KH, AN, TGC, IOM
Registers read
Nightly, 03:00–04:25 UTC
Freshness window
24 or 48 hours per register — live on the status page
Methodology last updated

What we are — and aren't

Source hierarchy

Four kinds of source, in order of authority. Only the first three can change what we say about a licence.

  1. The regulator's register — its download, PDF, web page or the data embedded in that page. It says who is listed and, for most registers, a status word too.
  2. The regulator's own status publications — enforcement registers, revoked- and suspended-licence lists, advisory notices, a former-licence-holders page, a per-licence verification page. These are the only sources allowed to set revoked, suspended or surrendered.
  3. The regulator's per-domain verification pages — Curaçao certificates (cert.cga.cw) and Tobique validation seals (validate.thetgc.ca), which say which domains a licence covers. We fetch them only from the regulator's own hosts; a certificate on any other host, such as a look-alike portal, is refused before it is fetched.
  4. Everything else — for discovery only. Search-engine results, seals embedded in casino footers, third-party brand lists, archived copies of older register pages. They tell us where to look. They never set a status and never link a domain to a licence on their own: a link is written only after we read the regulator's page and it lists that domain.

When two regulator sources disagree

Where each status comes from

Every register is read once a night. Where a regulator publishes its decisions somewhere other than its register, that publication is read on every run too — in the same run as the register, except Malta's enforcement register, a separate job at 05:00 UTC.

Jurisdiction The register we read Where revoked / suspended / surrendered come from Per-domain page
UKGC
UK Gambling Commission
Business licence register download (business-licence-data.zip, CSV files) The export's own status column — Revoked, Suspended, Surrendered, Lapsed —
MGA
Malta Gaming Authority
Licensee register (a JavaScript app, read in a headless browser), plus each licensee's verification page — the only MGA page allowed to say active The per-licence verification page (Suspended, Surrendered, Expired); the MGA Enforcement Register (revocations, suspensions) —
CW
Curaçao Gaming Authority
OGL register PDF, linked from the CGA's registry page, plus the CGA certificate registry (cert.cga.cw/token), which lists licences the PDF omits The CGA Enforcement Register PDF (revoked, suspended, not extended), linked from the same page; the OGL PDF's own status cell CGA certificates
KH
Kahnawake Gaming Commission
Permit-holders page (Interactive Gaming and CSPA tables) — it prints no status KGC advisory notices: revocation, suspension, voluntary termination (→ surrendered) —
AN
Anjouan Gaming Authority
Licence register (data embedded in the page) The Authority's revoked-licences and suspended-licences pages; the register's own status word —
TGC
Tobique Gaming Commission
Licence-holders page Nothing — Tobique publishes no decisions, so a licence that leaves its list can only ever be not_in_register Tobique validation seals
IOM
Isle of Man Gambling Supervision Commission
Online gambling licensee register, cross-checked against the spreadsheet it links The Former Licence Holders page: Surrendered → surrendered, Cancelled → revoked; any other word sets nothing —

A status word we have never seen is never read as active: it is recorded as unknown (or skipped) and logged, until we decide what it means from the real text.

Cadence and freshness

Jurisdiction Read (UTC) Last read (UTC) Freshness
UKGC 03:00 stale
MGA 03:15 fresh
CW 03:30 fresh
KH 03:45 fresh
AN 04:00 fresh
TGC 04:15 stale
IOM 04:25 fresh

Last read and freshness as of 2026-09-30 20:21 UTC, from the keyless /v1/health/coverage endpoint when this page was built; your browser refreshes them on load. The same figures are on the status page.

Capture and evidence

What we don't have

The dates we publish

status_observed_at
— the latest read, on the page that published it, that still says the status we show.
last_listed_at
— when the register last listed the licence.
not_listed_since
— the first read that no longer listed it.
_meta.scraped_at
— when we last confirmed the record against its register.
snapshot_fetched_at
— on a history event, when we first fetched the bytes behind it.
_meta.source_modified_at
— reserved for the regulator's own “last updated” date. Always null: we don't record it for any register yet.

Status vocabulary

Eight statuses. Only active means licensed now. The others are not interchangeable, and choosing the wrong one is a claim about a real business.

Status What it means Where it comes from
active Licensed now. The register or verification page that sets status in that jurisdiction listed it as live on our latest read.
pending An application under assessment — not licensed yet. The register says so (UKGC Pending; the CGA's “Assessment in progress” on a licence not yet granted).
suspended The regulator suspended it. A suspension the regulator published and we read.
revoked The regulator ended it — a revocation, or a cancellation for cause. A regulator publication we read (the Isle of Man's Cancelled, under OGRA 2001 s.13, is one).
surrendered The operator gave it up. Not enforcement. UKGC, MGA and GSC Surrendered, a KGC voluntary termination, the CGA's “revoked … at the request of the operator”.
expired It ran out or lapsed. UKGC Lapsed, MGA Expired, the CGA's “not extended”.
not_in_register The register stopped listing it and published no reason. An observation about the register — not a revocation. Absence from complete reads past the grace period. Comes with not_listed_since and last_listed_at.
unknown The register lists it, in words we can't classify. We claim neither way. An unrecognised status word, or two publications of one register that disagree.

active can carry a qualifier: status_qualifier: provisional_under_assessment marks a Curaçao licence past its stated term whose final assessment is outstanding — the CGA keeps it in force until it decides. The regulator's own word is kept alongside every status as upstream_status (empty for a licence the register no longer lists).

Guards on every status write

Licence numbers that are ours

Kahnawake, Tobique and the Isle of Man publish no licence numbers. For them, license_number (KH/IG/…, KH/CSPA/…, TGC/B2C/…, TGC/B2B/…, IOM/OGRA/…) is an iGregulator reference that identifies the record in our API — don't quote it to the regulator. The UK Gambling Commission amends a licence by stepping the last part of its number (…-013 → …-014); we track that as one licence with a new number, not a new licence and a lost one.

Absence is not revocation

On 17 September 2026 an operator disputed a revoked we showed for its licence. No regulator had said it: the licence had dropped off the register, and our code read that silence as a revocation — for 80 licences across six registers. We corrected all of them, marked rather than deleted, and changed the rule everywhere: a licence that leaves a register is not_in_register, and revoked, suspended and surrendered come only from a regulator publication we read. The same review found 627 UK licences the Commission lists as Surrendered shown as revoked; they read surrendered now.

Mass-change holds and invariants

Some failures don't look like failures: the regulator serves a file, it parses, and it is wrong.

Post-load invariants

After every load we compare counts before and after. Domain and operator rows never shrink (we delete nothing); no operator loses all its domains; the numbers of de-listed domains, white-label domains, trading names and active licences don't fall more than 10% in one run; a verification page is linked to one company, never two. A violation marks the run degraded and records exactly what moved. It never rolls anything back — undoing a load is a decision for a person.

Domains and operators

Corrections

Report an error

Email founder@igregulator.io with the page, domain or licence and what the regulator's page says — a link helps. We check it against the regulator's page and our stored copy of what we read. If we are wrong, we correct it as above and say so.

Limitations

Changes to this methodology

Methodology last updated . Changes to API fields and behaviour are in the changelog.

Read next