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 same open-source intelligence pipeline runs on every report, from raw article to a scored, geolocated, deduplicated record.
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.
A pipeline ingests new reports around the clock, refreshed every five minutes, alongside a historical backfill that reaches back to 2009.
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.
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.
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.
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.
We publish what we can stand behind, and we are explicit about what we cannot.
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.
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.
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.
OpenWatch aggregates public reporting. Early reports can change as facts emerge, and we update records as they do.