GetRiskScores RPC.
For the full v8 formula, coefficient table, and change history, see
CII Risk Scoring Methodology. This page is
the operator-facing overview.
Monitored Countries
The current Tier-1 set is:| Region | Countries |
|---|---|
| Americas | United States, Venezuela, Brazil, Mexico, Cuba |
| Europe | Germany, France, United Kingdom, Poland |
| Eastern Europe | Russia, Ukraine |
| Middle East | Iran, Israel, Saudi Arabia, United Arab Emirates, Turkey, Syria, Yemen, Iraq, Lebanon, Egypt, Qatar |
| Asia-Pacific | China, Taiwan, North Korea, India, Pakistan, Myanmar, South Korea, Japan |
| Central/South Asia | Afghanistan |
Score Model
Each country’s score combines a static baseline with a dynamic event score:| Component | What It Measures | Main Inputs |
|---|---|---|
| Unrest | Civil disorder pressure before or below open conflict | ACLED protests and riots, protest fatalities, high-severity unrest, internet/power outages |
| Conflict | Kinetic violence and strike activity | ACLED battles, explosions, violence against civilians, fatalities, Iran-region strike intensity, OREF alerts for Israel |
| Security | Hard-security tempo near the country | Military flights, military vessels, aviation closures/delays, GPS/GNSS jamming |
| Information | Information-environment pressure | Classified news headlines and country-attributed threat summaries |
Boosts And Floors
Supplemental boosts can raise the blended score when corroborating signals arrive outside the base event components:| Boost | Max | Trigger |
|---|---|---|
| Climate anomalies | 15 | Country-attributed climate severity |
| Cyber threats | 12 | Severity-weighted cyber threat counts |
| Wildfires | 8 | High-brightness and total fire counts |
| Travel advisories | 15 | Do-not-travel, reconsider, or caution advisories |
| OREF blend | 25 | Active and 24-hour Israel alert pressure |
| Displacement | 20 | Log-scaled humanitarian displacement |
| News urgency | 5 | High Information component pressure |
| Earthquakes | 25 | Significant, major, or severe earthquakes |
| Sanctions | 14 | Sanctions entry volume and new-entry activity |
| AIS disruptions | 10 | Maritime disruption buckets |
| Floor | Threshold |
|---|---|
| UCDP active war | 70 |
| UCDP minor conflict | 50 |
| Do-not-travel advisory | 60 |
| Reconsider-travel advisory | 50 |
/api/health.riskScores, the conflict realtime
family is covered when either ACLED or an in-window UCDP feed is present. ACLED
auth being unconfigured degrades the conflict signal to UCDP-only; it becomes
COVERAGE_PARTIAL only when ACLED is dark and UCDP is also absent, stale, or
outside the 2-year scoring window (see Data Sources).
Instability Levels
| Level | Score Range | Meaning |
|---|---|---|
| Critical | 81-100 | Active crisis or major escalation |
| High | 66-80 | Significant instability requiring close monitoring |
| Elevated | 51-65 | Above-normal activity patterns |
| Normal | 31-50 | Baseline geopolitical activity |
| Low | 0-30 | Unusually quiet period |
Bias Prevention
CII is intentionally not a raw media-volume index. The v8 model separates news pressure from conflict scoring, applies lower event multipliers and log dampening in high-observability countries, and uses conflict/advisory floors so active crises do not appear quiet during data gaps. The editorial rationale, Tier-1 inclusion criteria, advisory fallback table, Gaza text-attribution caveat, and per-countrybaselineRisk /
eventMultiplier values are published in
CII Risk Scoring Methodology.
Server-Side Pre-Computation
CII scores are computed server-side byGET /api/intelligence/v1/get-risk-scores
and cached in Redis. The live cache is versioned by the current
methodology_version (v8), with a stale-cache key used as a fallback during
upstream outages.
The Railway relay process also runs an active CII warm-ping loop every 8
minutes against the same RPC. That keeps the server-side risk-score cache warm
for bootstrap and health monitoring while preserving the RPC handler as the
scoring source of truth.
Trend Detection
The server publishesdynamicScore as a signed movement delta in the range
-100..100 against a valid CII snapshot from approximately 24 hours earlier:
- Rising: score movement is greater than 1 point.
- Stable: score movement is between -1 and +1 points, or no valid prior snapshot is available.
- Falling: score movement is less than -1 point.
combinedScore is rounded to whole points, +2 and -2 are the
first integer movements that produce rising/falling trend labels. dynamicScore
is 0 during cold start or when the server cannot find a valid approximate
24-hour prior snapshot.
During initial dashboard startup, Learning Mode suppresses noisy early CII
alerts while data and trend baselines settle. Server-side pre-computation means
users still receive immediate scores; Learning Mode primarily affects local
alert generation.