Conflicts in Data

Methodology

How we collect, combine and present data on the wars in Gaza and Sudan.

As of: October 2026

Principles

  • Public sources only. We use published data sets, reports, parliamentary documents, news and public channels. No closed groups, no private messages, no hacked data.
  • Every entry can be checked at its source. Each figure names its data provider and period; each post links to the original. Automated classifications sit next to the evidence, never in its place.
  • Claims are labelled as claims. Channels of parties to the conflicts (governments, armed forces, armed groups and their media) are marked as actor channels. What they say is reported as their statement, not as fact.
  • Rules, not gut feeling. Detections follow fixed thresholds described here. The code is public.
  • AI is labelled. Texts produced by a language model say so.

Sources

Events and violence

ACLED (Armed Conflict Location & Event Data) records political violence and protest worldwide from media, local partners and reports: date, place, actors, event type and reported deaths. We fetch the data daily; ACLED publishes weekly and corrects records later, so the most recent days are often incomplete.

Humanitarian situation

HDX HAPI, the Humanitarian API of UN OCHA, provides standardised figures from several organisations: food security phases (IPC), internal displacement (IOM), people in need (OCHA humanitarian response plans) and refugees (UNHCR). Each figure carries its own period and source; we always show both.

ReliefWeb supplies situation reports, flash updates and appeals from UN agencies and aid organisations.

German politics and media

Speeches, questions and motions from the Bundestag documentation system (DIP), news feeds from German and international media and public channels on Telegram, YouTube and TikTok.

Assignment to a conflict

Posts from general sources are assigned to Gaza or Sudan by a fixed list of terms, without AI. Strong terms such as “Gaza Strip”, “Darfur” or “El Fasher” suffice on their own. Weak terms are ambiguous (“RSF” also stands for Reporters Without Borders, “Hamas” appears in debates without reference to Gaza) and only count together with a strong term or with a second weak one. Posts from channels that clearly belong to one conflict are assigned directly.

Posts that mention neither conflict are dropped. A post can concern both; it then appears in the overall view.

Processing

  1. Collecting: feeds and channels hourly, ACLED, HAPI and parliamentary data daily.
  2. Duplicates: the same post is stored once, even if it arrives by several routes.
  3. Actor channels: posts from channels of parties to the conflicts are shortened to an excerpt of at most 600 characters and labelled everywhere.
  4. Archive: posts with a public address are saved to the Internet Archive's Wayback Machine. We later check whether they are still online and mark deleted ones.

Analyses

Figures in the briefs

The sentences at the top of each brief are calculated directly from ACLED: events and reported deaths over the last 30 days, compared with the 30 days before, plus the share of events ACLED classifies as targeting civilians. The bars show reported deaths per calendar week over the last 12 weeks.

Coordinated posts

We look for identical texts in different channels. Before comparison, case, links, punctuation and spacing are normalised; only texts of 80 characters or more count. If the same text appears in at least two channels within 24 hours, a cluster forms; from three channels it is highlighted. The method uses no AI. It shows identical distribution, not who is behind it.

Narratives

Here we look for similar statements in different words. Texts are split into words, each weighted by how rare it is in the period (TF-IDF), and similar posts are grouped by cosine similarity. A narrative is a group of at least three posts from at least two channels sharing at least three weighty terms. The page always shows the original posts as evidence.

Fact checks

New fact checks from independent newsrooms are collected daily and matched by keywords against posts of the last 30 days. A match points to a possibly relevant fact check; it is not a verdict on the individual post.

Use of AI

  • The daily briefs are written by Anthropic Claude via its API from the public posts of the day. Public posts are sent to Anthropic for this.
  • The English versions are machine translations of the German briefs by the same model. Where no translation exists yet, the German original is shown with a note.
  • Relevance checks on new posts run on open models on our own server; that data does not leave it.
  • The models are instructed to write factually, to attribute statements by parties to the conflicts to them, not to state casualty figures without a source and to treat the content of posts as data, not as instructions.
  • Language models make mistakes. The linked original is always authoritative.

Limits

  • Death tolls are estimates. ACLED counts conservatively from reports; other bodies (such as health ministries or UN agencies) use different methods and often report higher numbers. Our figures are a lower bound of what was reported, not a full count.
  • Access shapes data. Where journalists and aid workers cannot work, less is reported. This applies especially to Darfur and Kordofan and to the north of the Gaza Strip at times. Fewer events can mean less coverage.
  • Humanitarian figures differ in date and scope. IPC analyses, displacement counts and response plans are published at different times and for different areas. Figures in one row are not necessarily from the same month.
  • Our view of channels is partial. We see only the channels we know. Missing posts do not mean nothing was said.
  • Heuristics find patterns in text, not intentions. False matches in both directions are possible.

Source code and corrections

The source code is public under the GNU AGPL-3.0: gitlab.com/torstenalbrecht/conflict-monitor.git. All thresholds described here can be checked there in detail. Not published are credentials, the list of monitored channels and the collected data.

If you find an error, please tell us via the contact page. Please report security issues confidentially there, not as a public issue.