CIP methodology
| Version | 1.0 |
| Published on | 2026-11-03 |
| Last updated | 2026-10-19 |
| Status | signed off |
CIP, the Conflict Intelligence Platform, provides conflict event, actor, claim and narrative data, with the provenance of each record stated. This document explains what the records mean, where they come from, what happens to them between collection and analysis, how their quality is checked, and where they fall short. It describes what each stage guarantees rather than how each stage works internally. Read the codebook first if you want to interpret a record, the sourcing and limitations sections if you want to judge bias and coverage, and the versioning section if you need to know how corrections are handled. The last section answers common questions.
1. Codebook
Published: 2026-11-03 · Last updated: 2026-10-19
This section defines the objects CIP stores and the labels that travel with them.
Events
An event is a reported occurrence with a date and a severity, and a type where the source codes one. Severity comes from fixed rules over the source's own coding, or is a flat baseline where the source gives none. CIP adds who did what to whom, and where. One event is kept per real-world occurrence, listing every source that reported it.
Actors and actor types
Actors are typed from a fixed list of types. There is no person type. In the review of past identity decisions these rules apply:
- A state's officials and spokespeople are typed government.
- A commander or spokesperson of an armed group takes the group's type.
- A private individual is a civilian.
- An outlet that only reports is not an actor.
Claims
A claim is an assertion attributed to whoever made it. CIP records what the text says about a claim's status; it does not decide whether the claim is true. Verification status is proposed automatically from what the text says; analyst confirmation is not yet part of the system.
Narratives
A narrative is a group of claims that recurs, hangs together and is carried by more than one distinct source. Narratives are computed from claims on record. No person or model writes them.
Locations
Each place has a name, an administrative position and, where it can be resolved, coordinates with a stated precision and resolution status. A country-level position is marked coarse.
Sources
Each source has a type, a credibility tier (T1 to T4), a recorded perspective and its language of origin.
Corroboration fields
Every sourced event states how many distinct sources reported it, which reported first, and which others corroborate it. The levels in use are uncorroborated, single source and multi source. Two higher levels are defined for later use and are not assigned.
Result warnings
Analysis results carry typed warnings where they apply, such as sparse geography, thin relationships, open calibration, minimum input, truncation by limit and snapshot data. Every result also carries a source mix statement, with a skew warning when one perspective supplies most of it.
Methods and capabilities
Users run named, versioned, deterministic methods across the temporal, severity, geographic, claim, actor, attribution, profile, semantic, provenance and external-signal families. In addition there are calibrated capabilities for escalation, actor clustering, actor centrality, geospatial hotspot, narrative shift and source reliability.
2. Sourcing
Published: 2026-11-03 · Last updated: 2026-10-19
Accuracy over volume
The corpus is chosen for the accuracy it yields per record processed, not for volume. More sources do not by themselves mean more reliable results. A source, or a share of one, is processed only where it measurably adds.
Source classes and labels
Every source is classed by publisher type, credibility tier, perspective and publishing cadence. Perspective is recorded separately from credibility, so a partisan source is labelled as such, not averaged away. Labels are audited against what each channel actually publishes. Sources carry a credibility tier from T1 to T4.
CIP describes its sources by class, not by name. A published master list of outlets and channels is not part of this document.
A panel of outlets chosen for range
News outlets are read from a curated panel chosen for editorial range across perspectives. Each outlet carries a perspective tag, and a diagnostic reports any perspective with no coverage in a batch.
What each source adds is measured
What each source adds is measured, not judged: the share of its reports no other source carries, the share it corroborates, the perspective it supplies, and the depth of its text.
Selection by a written rule
A source is kept, sampled or dropped by a written rule derived from that measurement. The rule is re-derived whenever the source set changes, so the selection is not a fixed list. A guard keeps the selected corpus's recall of the independent reference close to the full set's. The per-source outcomes are not published.
Balance across perspectives
Source shares are set so that, in a typical week, no one perspective supplies more than a measured share of the claims, because the narrative layer distorts above that share. The share is applied when the selection is set, not checked week by week. Where the event layer alone exceeds that share, the gap is reported, not cut.
Known biases and the source-mix statement
The corpus is not a balanced sample of all reporting, and known biases exist. Section 5 describes them. To make them visible where they matter, every result states the mix of sources it rests on, by perspective, credibility tier and source type, and warns when one perspective supplies most of it. The result is not re-weighted.
Licensed channels only
Article text is taken only from channels CIP may lawfully use: publisher feeds and pages, and public messaging channels. Where articles are found through the public GDELT news index, they are read from the publisher's own page under its terms, honouring crawl rules and keeping only the opening of each article. Archive copies and third-party crawl copies are not processed.
Measured before built, re-measured on a schedule
A new channel is measured for what it would add, and for licence fit, before any fetcher is built. The selection is re-measured after every paid step and on a fixed cadence, and a changed verdict is named in that week's report.
3. Processing
Published: 2026-11-03 · Last updated: 2026-10-19
This section follows a record from collection to analysis. For each stage it states what the stage guarantees. It does not describe how the stage achieves it.
Collection
Feeds, public messaging channels, structured datasets and measured series are read incrementally from a stored position. Each news or messaging item keeps its original text, its publisher link and its publication time; structured records keep their coded fields and event date. Only public channels are read.
Failure handling and quarantine
A failing source cannot silently corrupt the corpus. Transient faults are retried. A broken source is paused and surfaced. A record that fails is set aside with its reason, and can be replayed or retired; nothing leaves quarantine silently.
One record format, validated
Every record reaches processing in one documented format and is validated field by field. An invalid record is set aside alone; a malformed batch is rejected whole. Collection writes only to a staging area and never to the stores.
Same-source repeats removed
Exact and near-exact repeats from the same source are removed before any paid processing. Copies across different sources are kept, because they count as corroboration.
Selection applied before paid work
Records the selection rule drops are dropped before they are processed, and for the most part before they are translated, so little excluded is paid for. Topic filters on non-English posts run on the translation. Every dropped record is counted in the run report, the same records are kept on every rerun, and records already collected are moved aside, not deleted. Paid processing runs under hard caps and an approved plan.
Content filters
Records with no content, paid promotions and material about another theatre are removed. Footer boilerplate is stripped but never a reason to drop. Short first reports are kept. Selection and filtering parameters are measured and re-measured.
Translation
All non-English text is translated to English before analysis. The original is kept beside the translation in the collected record. Every translation is checked for completeness, and a record that cannot be translated faithfully is set aside, not guessed. Text declared English but mostly written in a non-Latin script is detected and translated.
English-only embeddings
Only English text is turned into search vectors. Original-language text is preserved but never embedded.
Relevance scoring
Off-topic items arriving on a conflict feed are removed at acquisition when they carry no conflict vocabulary and sit far from conflict reporting. Records that remain are also given a relevance score before costly processing; that score annotates and does not delete.
Extraction
Each record passes specialised single-purpose extraction steps in a fixed order: places, actors and their relationships, actor roles in events, and claims. A step only proposes; no extraction step writes to the store. Every proposal is an attributed, replay-safe operation recorded before anything is stored. Prompts are versioned, and every model output is validated against a strict schema.
Geocoding
Places are resolved by a fixed, ordered procedure: curated overrides first, then the public GeoNames gazetteer. A name that contradicts the country the record states is rejected, except that places elsewhere in the conflict region are accepted for cross-border reporting. A place that cannot be resolved stays unresolved, a match on a near spelling is marked as such, and an event is never dropped for lack of a map position.
Actor identity resolution
Actors are matched to known actors by a fixed, ordered procedure in which curated identity knowledge outranks automatic similarity. Names that differ by a number, short acronyms, and actors of incompatible kinds are never merged on textual similarity. A refused merge leaves two actors and a flag, never a silent fusion. Matching requires strong evidence on time, place and content.
When an actor is matched by similarity, the existing actor's name and type stand. The proposed values are recorded but never overwrite the identity.
Curation
Every batch is checked for orphans, duplicates, canonical choice and structural anomalies before anything is stored. Routine cases are decided by fixed rules. Only the ambiguous residue reaches a language model, whose every input and output is kept for audit. The model cannot rewrite a record; it can let a new record through, flag it, or have it removed from the batch.
Event deduplication across sources
Reports of the same real-world event from different sources are merged into one event listing every reporting source when they share a source event identifier, or when they are close in time and place and share actors or wording. Reports with no map position must agree on a named place. Likely but uncertain pairs are kept as separate events and flagged, and the likelier ones go to curation review.
Claim and relationship deduplication
A relationship reported by several sources is stored once with all its supporting sources. A claim repeated by another source is recorded again with its own wording, and the earlier claim is also linked to the repeating source.
Corroboration
Corroboration fields are computed from an event's live sources, never typed in, and re-derived whenever its sources change. They count distinct sources, not independent ones.
Analysis
Analyses run under fixed limits, and the analytical parameters of the calibrated capabilities are fitted under a pre-registered rule and published with their configuration version. Section 4 describes how this is checked, and section 6 describes how each run is recorded.
4. Quality and review
Published: 2026-11-03 · Last updated: 2026-10-19
History, never erasure
Every change to a tracked fact is kept as history. A correction supersedes a value; it does not erase it. Nothing is hard-deleted, and an ingest applies fully or not at all.
Resolution audit trail
For every actor that is matched, merged or refused a merge, the system records how the decision was made, so a reviewer can reconstruct and challenge it.
Review of past identity decisions
Past identity decisions are exported as reviewable packets with evidence from both sides, judged under one fixed rubric, and corrected in one pass that previews first, keeps previous values as history and changes nothing when run twice. A combining step can limit a review round to changes on which two independent reviews agree.
An independent recall reference
Coverage is measured against an independent, published dataset of violent conflict events, the UCDP Georeferenced Event Dataset, which the scored sources do not feed. The result is reported with its limits.
Labelled reference sets
Matching and extraction are checked against labelled reference sets, and where the labels cannot support a setting, the documentation says so.
A regression gate before a stack change
A change to the processing stack is accepted only if it passes tests set in advance: it still flags the published escalation days, reproduces the leading actors, keeps the report count within tolerance, and refuses almost nothing. A later change to a test is recorded as a decision.
Calibrated thresholds
The analytical thresholds of the calibrated capabilities are fitted, not hand-set. Each fit's decision rule is written down before the data is examined, every sweep is journaled, and each published configuration is a versioned, checksummed file recording what it was fitted on; a change is published as a new version. Deployment limits and the source-mix skew threshold are set by decision, not fitted.
Language models
Each processing role is bound to a model class by configuration, and reviewer roles never run on the lightest class. Where a language model is used, it is of a lighter or a stronger tier.
Guardrails
Nothing is published automatically: a calibrated result enters a review queue as a proposal for an analyst. Approval of a result is an analyst's working marker and does not check the number of sources behind it. Calibrated analyses refuse to run without a loaded calibration. An exported report lists the analysis runs behind it, and each run records its parameters, configuration version, data date and method versions.
Credentials
Credentials sit in one protected store and never appear in configuration or documents.
5. Known limitations
Published: 2026-11-03 · Last updated: 2026-10-19
CIP states its limitations so that results can be read with them in mind. Measured figures will be added after re-measurement on the repaired corpus. Until then this document gives none.
The source mix is lopsided
The corpus is not a balanced sample of all reporting. Public messaging channels and one perspective supply most event reports, and independent outlets very few. Each result's source-mix statement says how much this applies to it.
Uneven time coverage
Coverage is uneven over time. Some periods are thinly covered, and feeds that keep no history cannot be backfilled.
Low recall, violent events only
Measured against the independent reference, recall is low in absolute terms, and the reference covers violent events only.
Matching bounds corroboration
Automatic matching of reports across sources is imperfect, so corroboration counts are bounded estimates, not exact counts.
Residual actor-identity error
Actor identity resolution is imperfect. Some actors carry a wrong name or type, some distinct entities remain merged, and some outlets appear as actors. These classes are measured and corrected in reviewed passes, with history kept. Variants of a name that share no spelling can remain separate actors until curated.
Map coverage
Only part of the events can be placed on a map. The hotspot analysis states the share that can be placed, and the event map states how many events it had to leave off.
Thin evidence for some capabilities
Source reliability rests on thin evidence and says so. Narrative shift on a short window reports an expected share of false detections beside each count. Relationship edges carry no dates, so network results are not time-sliced.
Language
All non-English text is translated before analysis, with the original kept beside the translation in the collected record. A record that cannot be translated faithfully is set aside, so such records are absent from the analysed corpus.
6. Versioning and corrections
Published: 2026-11-03 · Last updated: 2026-10-19
Reproducible runs
Every analysis run records its parameters, the configuration version, the method version and the date of the data it ran on. Methods are deterministic, so the same inputs on the same data give the same result.
Frozen copies are labelled
A result computed from a frozen copy of the data carries a warning that says so and states the date of that data.
The graph view is derived
The graph view is a rebuildable copy of the authoritative store. If the graph is unavailable, graph-based analyses return an error while record-based analyses continue. The dashboard does not yet report when the copy is behind.
Corrections log
Corrections are recorded in a dated log.
| Date | Correction |
|---|---|
| October 2026 | An internal audit found four classes of defect: a state fused with a media label by a near-name match, no cross-source event corroboration, a corpus dominated by one platform and one perspective, and results that did not disclose this. Each was repaired by a documented, tested change. |
7. FAQ
Published: 2026-11-03 · Last updated: 2026-10-19
Is CIP's data complete? No. The corpus is not a balanced sample of all reporting. Coverage is uneven over time. Measured against an independent reference, recall is low in absolute terms, and that reference covers violent events only. Only part of the events can be placed on a map. Section 5 lists these limits.
Why not use every source available? The corpus is chosen for the accuracy it yields per record processed, not for volume. More sources do not by themselves mean more reliable results, so a source, or a share of one, is processed only where it measurably adds.
Does CIP decide whether claims are true? No. A claim is an assertion attributed to whoever made it. CIP records what the text says about a claim's status. Verification status is proposed automatically from what the text says; analyst confirmation is not yet part of the system.
How do I know what mix of sources a result rests on? Every result states the mix of sources it rests on, by perspective, credibility tier and source type, and warns when one perspective supplies most of it. The result is not re-weighted.
Does a high source count mean an event is independently confirmed? Not by itself. Corroboration fields count distinct sources, not independent ones, and automatic matching of reports across sources is imperfect, so the counts are bounded estimates, not exact counts.
Which language model does CIP use? CIP uses a language model, of a lighter or a stronger tier depending on the role. Reviewer roles never run on the lightest class. In curation, a language model sees only the ambiguous residue, every input and output is kept for audit, and it cannot rewrite a record; it can let a new record through, flag it, or have it removed from the batch. Prompts are versioned and every model output is validated against a strict schema.
How are errors corrected? A correction supersedes a value; it does not erase it, so every change is kept as history. Past identity decisions are exported for review and corrected in a pass that previews first. Corrections are recorded in a dated log, which section 6 carries.
Can two different actors be wrongly merged? It can happen, and CIP says so. Names that differ by a number, short acronyms, and actors of incompatible kinds are never merged on textual similarity, and a refused merge leaves two actors and a flag. Even so, actor identity resolution is imperfect and some distinct entities remain merged. These classes are measured and corrected in reviewed passes.
Can I reproduce a result? Every analysis run records its parameters, the configuration version, the method version and the date of the data it ran on. Methods are deterministic, so the same inputs on the same data give the same result. An exported report lists the analysis runs behind it.
Where does the article text come from? Article text is taken only from channels CIP may lawfully use: publisher feeds and pages, and public messaging channels. Where articles are found through the public GDELT news index, they are read from the publisher's own page under its terms.
Why does a result say it uses a frozen copy of the data? A result computed from a frozen copy of the data carries a warning that says so and states the date of that data.