Methodology

How the record is made.

OpenWatch is built to be scrutinised. Every incident in our database moves through the same transparent pipeline, from an open source to a verified record. This is exactly how it works, and where the limits are.

The pipeline

Six steps, every incident.

The same open-source intelligence pipeline runs on every report, from raw article to a scored, geolocated, deduplicated record.

  1. 01 / Sources

    Open sources only.

    OpenWatch draws only from open, publicly verifiable sources: Nigerian and international news media, official and government publications such as INEC releases and gazettes, and verified accounts on X. Sources are graded into reliability tiers, from A to D, and every incident records how many independent sources reported it. No classified, proprietary, or paid feeds.

  2. 02 / Collection

    Continuous, plus the archive.

    A pipeline ingests new reports around the clock, refreshed every five minutes, alongside a historical backfill that reaches back to 2009.

  3. 03 / Extraction and classification

    From article to structured incident.

    Each report is read by an AI model that extracts a structured incident: its type, its location (state, LGA, and specific place), its date and time, any casualties, and a plain-language summary. Every incident is classified into a defined thirteen-category taxonomy (Kidnapping, Armed Robbery, Terrorism, Bombing and Explosion, Communal Violence, Cattle Rustling, Assassination, Gender-Based Violence, Piracy and Maritime, Protest, Scam and Fraud, Missing Person, and Other) and assigned a severity from low to critical.

  4. 04 / Geocoding

    Placed where it happened.

    Locations are resolved to coordinates, using the specific place where a source names one and falling back to the state or LGA centroid otherwise, so every mappable incident appears in the right place.

  5. 05 / Deduplication

    One event, one record.

    The same event reported by several outlets is merged into a single record using semantic similarity from vector embeddings. Incidents are never double-counted, and corroboration is captured as a source count.

  6. 06 / Confidence and verification

    Scored, and never hidden.

    Every incident carries a confidence label, from rumor to unverified to likely to confirmed, and a status that ages through a lifecycle: Breaking, then Developing, then Confirmed, then Archived, or Retracted if a report is withdrawn. More independent, higher-tier sources raise confidence. Single-source and low-tier reports are flagged, not hidden.

36 + FCT
Every state covered
29,000+
Verified incidents
Since 2009
Historical archive
Real-time
Updated every 5 minutes
Known limitations

What the data can and cannot tell you.

We publish what we can stand behind, and we are explicit about what we cannot.

Machine extraction.

Incidents are extracted from text by an AI model, so occasional misclassification or geocoding error is possible. Confidence labels and the verification lifecycle reduce this, they do not eliminate it.

Uneven field completeness.

Incident type, state, date, and severity are near-complete. Casualty counts and perpetrator attribution are recorded only where a source states them, so aggregate fatality and actor figures should be read as lower bounds, not totals.

Reporting bias.

Our record reflects what open sources report. Under-reported areas and periods are under-represented, and changes in counts over time partly reflect changes in source coverage, not only real changes in violence. Compositional and geographic analysis is more reliable than raw year-on-year trends.

Not a primary investigator.

OpenWatch aggregates public reporting. Early reports can change as facts emerge, and we update records as they do.

Explore the record for yourself.