GamingMarkets Protocol v1.2: Hard Audit Methodology
Standard operating procedure for global evidence-based verification of executive power in the regulated iGaming economy.
1. Scope & Evidence Standard
This protocol defines the Hard Audit method used to rank executive power based on public primary-source evidence.
The output is a defensible record of liability and control.
Admissible Evidence (Primary Sources Only)
| Evidence Type | Acceptance Rule |
|---|---|
| Regulator Registry / Official Register | Must be an official regulator domain or official government publication (gazette/registry/authorized list). Must identify entity + authorization context. |
| Audited Issuer Filings | Audited annual filings only (SEC 10-K, SEC 20-F, audited exchange annual reports). Period must be explicit. |
| Statute / Regulation | Official legislative source only (Act/Decree/Gazette). Must support statutory gate or licensing authority. |
| Forbidden (Fail) | YouTube, trade blogs, PR-only claims, investor decks, unaudited metrics, 10-Q/quarterlies (unless Interim* Track is explicitly enabled). |
If a required primary-source document cannot be located, the value is treated as not verified. No estimates are substituted.
2. RFS — Regulatory Footprint Score
Definition: Quantifies exposure to regulatory oversight using Weighted Jurisdiction Units (WJU) for operators and market depth for regulators.
Tier-1 Jurisdiction Set (Lock)
| Code | Tier-1 Body / Framework | Proof Requirement |
|---|---|---|
| UK | UKGC remote gambling operating licences (GB) | UKGC public register / official publication |
| NJ | NJDGE + NJCCC (iGaming + OSB authorizations) | Official NJ regulator publications/lists |
| PA | PGCB interactive gaming + sports wagering authorizations | PGCB official approvals / lists |
| NV | NGCB/NGC gaming licences (Nevada) | NGCB/NGC official records |
| ON | AGCO registration + iGO market participation (Ontario) | AGCO registry + iGO official list |
| IT | ADM concessions/licences (Italy) | ADM official concession/licence records |
| ES | DGOJ general licences (Spain) | DGOJ official licence listings |
| DE | GGL authorizations (GlüStV) | GGL official authorizations |
| FR | ANJ framework + state exclusive rights where applicable (FDJ/PMU) | ANJ official publications + statutory sources for exclusivity |
Tier-2 Jurisdiction Set (Criteria Lock — Fail-Closed)
| Criterion | Acceptance Rule |
|---|---|
| Statutory Licensing | Law/regulation empowers a sovereign body to license/authorize/revoke. |
| Public Register | Official authorization mechanism visible to the public. |
| Fiscal Reporting | Official publication of GGR, taxes, levies, or fees. |
| Enforcement Visibility | Documented enforcement: blocking, sanctions, or fines. |
Jurisdiction Weighting (Lock)
| Tier Status | Weight | Count Rule |
|---|---|---|
| Tier-1 | 1.0 | Count only with Tier-1 proof above. |
| Tier-2 | 0.5 | Count only if all 4 Tier-2 criteria pass. |
| Grey/Offshore | 0.0 | Excluded from count. |
WJU Definition (Operator) — Jurisdiction Unit (Lock)
| Rule | Definition |
|---|---|
| Jurisdiction Unit | 1 unit = 1 verified jurisdiction where the entity holds at least one admissible authorization under the Tier rules. Multiple licences/verticals inside the same jurisdiction do NOT add units unless the protocol version explicitly introduces a Vertical-Unit layer. |
| Entity Scope | Units are counted at the audited legal entity level (Entity_ID). Subsidiaries are excluded unless a Sub-Entity Carve-out rule passes (Section 8). |
| Time Lock | Unit eligibility is evaluated as-of the EvidencePack AsOf date. If the register does not disclose validity status, the entry cannot be LOCKED (remains VERIFIED/DRAFT depending on completeness). |
RFS Population (Regulator) — Authorized Operators Count (Lock)
| Field | Locked Definition |
|---|---|
| #authorized_operators | Count of operators listed on the regulator’s official public authorization list/register for the regulated activity scope used by this Index (online/interactive where applicable). If no public list exists, RFS(Regulator) cannot be LOCKED. |
| Activity Scope | Must be explicitly declared per EvidencePack (e.g., “remote/online only” or “all regulated operators”). Mixing scopes across regulators is forbidden within the same EvidencePack. |
WJU = Σ (Jurisdiction Unit × Tier Weight)
RFS = MIN( 100, ( WJU ÷ 35 ) × 100 )
RFS = MIN( 100, ( #authorized_operators ÷ 100 ) × 100 )
3. VVT — Verified Volume Tally
Definition: Measures verified throughput using audited annual filings and official fiscal publications.
Admissible VVT Sources (Audited Only — Lock)
| Source Class | Accepted | Forbidden (unless Interim* track) |
|---|---|---|
| Issuer (Public) | SEC 10-K, SEC 20-F, audited exchange annual reports (audited financial statements) | 10-Q, trading updates, investor decks, press releases |
| Regulator | Official fiscal publications (GGR/taxes/levies) from official regulator/government sources | Unofficial summaries / media estimates |
VVT Input Selection (Line-Item Dictionary — Lock)
| Class | Primary Line-Item (Order of Preference) | Fail-Closed Condition |
|---|---|---|
| Issuer (OP/INF/PAY/AFF/CAP) |
(1) Audited “Gaming / Betting / iGaming revenue” line-item or segment total, if explicitly disclosed in audited statements; else (2) Audited “Revenue” (total) from the annual audited financial statements. |
If neither is available in an audited annual filing for the reporting year used, VVT cannot be LOCKED. |
| Regulator / Government Fiscal |
(1) Official “GGR” (or equivalent taxable gaming revenue) as labeled by the authority; else (2) Official gaming tax/levy receipts ONLY if GGR is not published and the authority explicitly ties receipts to the regulated activity scope. |
If no official fiscal publication exists for the AsOf/reporting year used, VVT cannot be LOCKED. |
The chosen line-item label must be recorded verbatim in QA fields. Changing a line-item selection is a methodology change and requires a version bump + changelog entry.
FX Normalization Policy (Lock)
FX_RATE = Foreign Currency per 1 USD (annual average)
USD = Local Value ÷ FX_RATE
Primary: IRS Yearly Average (when available) | Fallback: Federal Reserve annual average (G.5A) when IRS is unavailable for the reporting year
VVT = MIN( 100, ( VVT_USD ÷ 2.5B ) × 100 )
Once an entry is audited using IRS or Fed FX for a specific reporting year, that FX source is frozen for that entry.
Any backfill requires a version bump + changelog.
4. ICT — Institutional Criticality Tally
Definition: Scores systemic dependence on the executive seat using a closed, reproducible rulebook.
ICT Rulebook (Locked)
| Component | Score Range | Evidence Requirement |
|---|---|---|
| A) Seat | 0–40 | 40 = CODM / Principal Executive Officer / statutory signing authority proven. 20 = CEO/Chair title only. |
| B) Gate Power | 0–40 | 40 = Exclusive gate proven (statutory monopoly / explicit exclusivity language). 20 = partnership without exclusivity. 0 = none. |
| C) Dependency | 0–20 | 20 = quantified reliance (mandated reporting / audited throughput / primary provider count). 10 = qualitative only. |
ICT = MIN( 100, A + B + C )
5. Evidence Pack Architecture
EvidencePack Object (Schema Lock — v1.2)
{
“EvidencePack_ID”: “GM-EVP-YYYY-XXXX”,
“Methodology”: “v1.2”,
“AsOf”: “YYYY-MM-DD (Latest Publication Date Used)”,
“Seat”: {
“Name”: “Person Legal Name”,
“Title”: “CEO|Chair|Director|Commissioner|…”,
“Seat_Status”: “PERMANENT|INTERIM|ACTING”,
“Entity_Legal”: “Legal Entity Name”,
“Entity_ID”: “LEI|CompanyNumber|RegulatorCode (Fail-Closed)”,
“Verified_Source_URL”: “https://official-source.example/…”,
“Verified_Source_Publisher”: “Regulator|Government|SEC|Exchange”
},
“FX_Source”: “IRS|FED|N/A”,
“Extracted”: {
“RFS_input”: “…”,
“VVT_input”: “…”,
“VVT_line_item_label”: “verbatim label”,
“ICT_triggers”: “…”
},
“Outputs”: { “RFS”: 0-100, “VVT”: 0-100, “ICT”: 0-100, “Score”: 0-100 },
“Last_Verified”: “YYYY-MM-DD”,
“Evidence_Items”: [
{ “type”,”url”,”publisher”,”publication_date”,”hash”,”hash_basis”,”hash_normalization_id”,”extraction_snippet” }
],
“Status”: “DRAFT|VERIFIED|LOCKED”
}
DRAFT: missing seat proof URL OR missing Seat Status/Title OR missing Entity_ID.
VERIFIED: seat proven + at least one admissible source supports each numeric output (RFS/VVT/ICT).
LOCKED: VERIFIED + all QA fields complete + hash recorded + FX source frozen (where applicable). No mixed-source arithmetic.
6. Publication Output: Top 100 Index Table (Schema Lock)
The public ranking table is a strict rendering of EvidencePack outputs. No field may be inferred. Any missing mandatory field forces
Status = DRAFT and disqualifies the row from LOCKED.
Mandatory Public Fields (Fail-Closed)
| Field | Type | Lock Rule |
|---|---|---|
| Rank | INT (1–100) | Unique within list. No gaps only if list is complete; otherwise allow missing ranks but never duplicate. |
| Name | STRING | Must match the seat proof source. |
| Title / Seat | STRING | Mandatory. Examples: CEO, Chair, Director, Commissioner. |
| Seat Status | ENUM | PERMANENT | INTERIM | ACTING. Must be disclosed if stated in the primary source. |
| Entity (Legal) | STRING | Must match audited filings/statute/regulator identity. |
| Entity ID | STRING | LEI | Company Number | Regulator Code. Mandatory to prevent duplication/M&A ambiguity. |
| Class | ENUM | OP | REG | INF | LOT | DATA | GEO | KYC | LAB | AFF | PAY | CAP (dictionary locked). |
| Strategic Base | STRING | Descriptive label; cannot contradict evidence. |
| RFS | INT (0–100) | Must be computed per v1.2 rules and supported by admissible evidence items. |
| VVT | INT (0–100) | Audited-only unless Interim* Track; FX source must be recorded/frozen. |
| ICT | INT (0–100) | Must be supported by seat proof + gate/dependency evidence triggers. |
| Score | INT (0–100) | Numeric only. Never contains status text. |
| Status | ENUM | DRAFT | VERIFIED | LOCKED. |
| Verified Source | URL | Mandatory primary seat proof URL (official domain only). |
| Last Verified | DATE (YYYY-MM-DD) | Must equal the latest publication_date used in the EvidencePack. |
| EvidencePack ID | STRING | Mandatory link between public row and evidence record. |
Metric Availability & Score Publication (Fail-Closed)
| Rule | Lock Condition |
|---|---|
| Score Publication | Score is published ONLY if RFS, VVT, and ICT are all present (numeric 0–100) and each is supported by admissible evidence in the EvidencePack. |
| Missing Metric | If any metric is missing or non-computable, the row remains DRAFT; Score must be blank (not 0), and the entry cannot be LOCKED. |
SCORE = ROUND_HALF_UP( ( RFS + VVT + ICT ) ÷ 3 )
Rounding rule: halves round up (half-up), to nearest integer.
Status is the audit state (DRAFT/VERIFIED/LOCKED). Score is numeric only (0–100). Any mixing is invalid output.
7. Disclaimer & Correction Policy
GamingMarkets publishes only evidence-backed records under the Hard Audit Protocol. Any correction requires a primary-source delta and triggers a version bump + changelog.
Disputed data points: [email protected].
8. Entity Identity & Seat Governance
Fail-closed identity rules for Top 100. Prevents duplication and M&A ambiguity.
Non-Duplication Rule (M&A-Proof)
| Scenario | Audit Rule |
|---|---|
| Joint Venture (JV) | Distinct only if verified independent CEO + independent audited reporting (or explicit audited carve-out disclosure). |
| Merger / Acquisition | Post-completion: only surviving legal entity eligible. Pre-completion: distinct seats until official Effective Date. |
| Holding vs Operating (CAP carve-in) | Holding companies excluded by default. CAP-class eligible only if control is proven: >50% equity OR explicit board/management control. |
Seat Hierarchy (Principal Rule)
Default: only CEO, Chair, or Statutory Head may represent an entity.
Exception requires Sub-Entity Carve-out: independent P&L accountability + independent regulatory licensing + admissible reporting track.
If the primary source states Interim or Acting, the public row must carry that Seat Status. No normalization to “permanent”.
9. Advanced Registries & Reporting Tracks
Interim* Track (Strict Disclosure)
10-Q filings, trading updates, and unaudited prelims permitted ONLY under Interim* Track.
– Must be marked with asterisk (*).
– Mixing Interim and Audited values inside a single metric is Forbidden.
Classification Registry (Dictionary Lock)
| Code | Definition & Entry Criteria (Fail-Closed) |
|---|---|
| OP | Real-money operator (B2C). Requires verified Tier-1/Tier-2 authorization. |
| REG | Statutory regulator/licensing authority. Requires legislative mandate + public mechanism. |
| INF | Infrastructure/B2B. Requires quantified dependency by OP entities. |
| LOT | Lottery sovereign/operator. Requires statutory exclusivity + fiscal reporting. |
| DATA | Data-rights / integrity gate. Requires exclusivity language in primary source. |
| GEO | Geo/location compliance gate. Requires regulator/market-critical dependency evidence. |
| KYC | ID/KYC/AML gate. Requires regulator-linked compliance dependency evidence. |
| LAB | Testing/certification lab. Requires regulator-facing footprint evidence. |
| AFF | Affiliate/traffic sovereign. Requires audited revenue + reach metric. |
| PAY | Payments/FinTech. Requires audited throughput + regulated gaming exposure. |
| CAP | Capital sponsor. Requires >50% equity OR board control via primary sources. |
10. Caps Governance & Tie-Break Logic
1. Statutory Gate Power | 2. Exclusive Contract Gate | 3. CODM Status | 4. RFS Depth | 5. Uncapped VVT_USD
Caps are reviewed annually on Jan 1. Universal and fixed per version.
11. Reproducibility & QA Fields
– Publication_Date: ISO-8601.
– Extracted_Value: Raw numeric value.
– Line_Item_Name: Exact label (e.g., “GGR”).
– FX_Rate: Rate applied (if relevant).
– Document_Hash: SHA-256 of file (PDF) OR normalized snapshot (HTML).
– Hash_Basis: “file-bytes” | “html-snapshot:vX”.
– Hash_Normalization_ID: required when hash basis is html-snapshot (identifies normalization function/version).
– EvidencePack_ID: Must be present in public output for traceability.
For html-snapshot hashing, the snapshot must be a stored, immutable capture of the rendered HTML (not a live URL fetch).
Normalization rules must be applied before hashing: remove scripts, remove tracking query parameters, collapse whitespace, and freeze dynamic timestamps.
The exact normalization function/version identifier must be recorded in the EvidencePack (“hash_basis” extended: “html-snapshot:vX”).
12. Versioning & Changelog (Mandatory)
{
“version_from”: “v1.x”,
“version_to”: “v1.y”,
“date”: “YYYY-MM-DD”,
“reason”: “methodology|data-correction|evidence-backfill”,
“affected_evidencepacks”: [“GM-EVP-…”],
“delta_summary”: “what changed (no estimates)”,
“new_primary_sources”: [“https://…”]
}
No version bump = no backfill. No changelog = cannot claim LOCKED.