Global Network on Combatting Islamophobia

Methodology

Methodology note: This dashboard describes media coverage of incidents, not verified occurrences. Counts reflect what was reported, not what happened. Coverage is biased toward English-language and Western sources. Sub-Saharan Africa, Central Asia, and Latin America are systematically under-covered. See the methodology page for full details.

What this dashboard measures

Media coverage of anti-Muslim incidents globally. Articles are pulled from GDELT 2.0 across 53 English keywords + 61 native-script keywords across 13 languages, classified by Anthropic Claude (Haiku 4.5 cascading to Sonnet 4.6 on uncertain items), clustered into discrete incidents, and verified by hand before appearing in any aggregate count or branded report.

What this dashboard does NOT measure

Verified occurrence. We count what was reported, not what happened. Two common categories of distortion:

Editorial decisions (locked)

  1. Critique of Islamism is included with a islamism_critique cross-tag. The line between “critique of political Islamism” and “anti-Muslim rhetoric targeting Muslims as a group” is too easy to weaponize. Including both with a filterable cross-tag is the most honest editorial position.
  2. Anti-Arab and anti-Palestinian incidents are included via cross-tags. They overlap with anti-Muslim coverage in practice and excluding them would understate the lived reality of communities at the intersection.
  3. Underlying terrorism events by Muslim individuals are excluded from incident counts. The backlash and conflation rhetoric that follows them is in scope. We are tracking anti-Muslim coverage, not categorizing violence.
  4. Intra-Muslim sectarian incidents are included (anti-Shia, anti-Ahmadi, anti-Ismaili, anti-Sufi) with sub-tags. These groups experience anti-Muslim hostility too.

Verification workflow

Every classified article is reviewed by hand before it influences any count. Incidents at severity 4 or 5 require two independent reviewers (the trigger fires when either the classifier OR a human reviewer rates the article ≥ 4). No row with human_reviewed = 0 appears in any published report.

Reproducibility

Every numeric claim in every report traces to specific incident_id rows in the database. Every classification carries model_version, prompt_version, and taxonomy_version stamps. Source URLs, fetch timestamps, and per-run statistics are preserved in the audit log. The pipeline refuses to run if the taxonomy SHA hash drifts from config/taxonomy.lock.

Coverage limitations and bias audit

Quarterly bias audits compare our incident set against specialist databases (CAIR, Tell MAMA, NCCM, Equality Labs, Bridge Initiative). The most recent audit lives at docs/bias-audit-YYYY-Q?.md in the source repo. v1 operates with a single reviewer, so true inter-rater agreement (Cohen's kappa) is not computed — instead, severity 4-5 incidents get a self-blind second pass with prior labels hidden after a 24-hour cooling-off interval, and the first/second-pass disagreement rate is reported in the quarterly audit. When a second independent reviewer joins, kappa will be reported here.

What we are NOT doing