ARGUS · Technical appendix
Methods & formulas
Every quantitative instrument in ARGUS, explained in order: what it measures, what goes in, what comes out, and why it exists.
These are not decorative scores. They gate risk language, drive alerts, rank hypotheses, and force briefs to admit thin evidence. Most run without any AI key.
01 · Trust
NATO Admiralty grading
ARGUS grades every event with the classic Admiralty System: reliability A–F (source) and credibility 1–6 (this report). You see a chip like A1 or C3, plus a confidence label.
Baselines
Source type sets the starting grade (examples):
| Sources | Typical grade |
|---|---|
| USGS, GDACS, FIRMS | A1 |
| GDELT, RSS | C3 |
| Unknown / thin | D4 |
Event confidence
Weights map letters and digits onto 0–1 (A/1 ≈ 1.0 … F/6 ≈ 0.1). Corroboration pulls confidence toward 1.
Staleness: full weight for ≤72 hours, then linear decay toward a floor (about 0.6–0.85) by 30 days.
Labels: High ≥ 0.75 · Moderate ≥ 0.5 · Low ≥ 0.3 · else Unverified.
02 · Risk
Absolute country risk (not relative)
Older dashboards often normalize so the “worst” country is always 100. ARGUS refuses that. A country’s score depends only on its own activity.
Severity weights
Sum weighted events → saturating severity score:
Roughly: ~4 critical (or ~10 high) → severity ≈ 63. More never exceeds 100; quiet stays near 0.
Fatalities
1,000 reported fatalities → 100 on a log scale.
Velocity
Today vs the country’s own recent baseline. 50 = neutral. Unknown baseline stays 50 (never invents “high”).
Compose
Velocity modulates the state score by about ±25%. Bands: ≥60 CRITICAL · ≥35 HIGH · ≥15 MEDIUM · else LOW.
Project risk uses the same composition with aged event confidence on severity and skips info-ops tagged items. A separate threat band (CRITICAL / ELEVATED / WATCH) is count-based for home/brief consistency — not the 0–100 score.
Velocity significance (actors)
Actor dossier “significant” trends use a Poisson-style z-test:
03 · Anomalies
Surges vs a country’s own baseline
Per (country, category), ARGUS compares a short window (about 6 hours) to a 30-day baseline. Alerts are upward-only — quiet is not news.
- Poisson upper tail — P(X ≥ observed | λ = expected)
- Quasi-Poisson z — (obs − exp) / √(φ · exp), with dispersion φ = Var/Mean ≥ 1
- Benjamini–Hochberg FDR — q = 0.10 across tests
- CUSUM — tabular cumulative sum for sustained shift (limit h ≈ 4)
Severity of the toast/alert follows z and CUSUM strength. This is why a busy news day in one country does not automatically flag another that is merely “busy relative to the globe.”
04 · Correlations
Fourteen named patterns
Correlation alerts fire when structured conditions hold. Rate gates use each country’s own ~14-day baseline (Poisson z ≥ 2), not a global average. Geo clusters use DBSCAN on precise coordinates only.
| Pattern | What it watches for |
|---|---|
| Maritime Interdiction | Elevated event density near a named chokepoint |
| Conflict Escalation | Elevated conflict rate plus ≥1 critical |
| Compound Crisis | Many distinct categories in one country/window |
| Regional Instability | High/critical cluster spanning ≥2 countries |
| Infrastructure Threat | Critical events near a chokepoint |
| Humanitarian Convergence | Elevated humanitarian rate |
| Political Destabilization | Elevated political rate |
| Cascading Failure | Compound crisis plus conflict in neighbors |
| Cross-Border Spillover | Conflict in A with humanitarian/disaster in neighbor B |
| Sanctions Violation | Sanctioned vessels at a chokepoint |
| Military Air Operations | Military aircraft near high/critical conflict |
| ISR Operations | Recon callsign patterns near conflict |
| Combined Arms | Military vessels + aircraft at the same chokepoint |
| Dark Fleet | Nameless slow vessels loitering at a chokepoint |
Thresholds are editable per project in Alerts settings. Chokepoint boxes (Hormuz, Bab-el-Mandeb, Suez, Malacca, Panama, Taiwan Strait, Dover, …) are shared between map layers and these signals.
05 · Patterns & contradictions
If/then structure in your own corpus
Pattern rules
Deterministic scanners (minimum two hits before surfacing):
- Category A then category B in the same country within a window
- Actor mention then a category
- Location escalation (higher severity follows)
- Source A then source B
- Weekday cadence for a category
- Advanced multi-dimension trigger → follow rules
Confidence: high if hits ≥ 4 and hit-rate ≥ 0.7; moderate if ≥ 2 and ≥ 0.5; else low.
Contradictions
Regex extracts numeric claims (killed, injured, arrested, death toll, …). Inside a related thread:
- Conflicting — different figures within 24 hours
- Walkback — later figure is lower
- Later-higher outside 24h is treated as normal toll progression (not flagged)
06 · Threads & actors
Auditable storylines — no invented narrative
Thread join score
Greedy chronological join. A candidate needs score ≥ 5:
Each link stores reasons — you can audit why two events were joined.
Actor dossiers
Name/alias match → totals, recent 7-day vs prior week, trend %, Poisson significance, severity/category mix, co-actors, share of A/B-graded sources.
Situation monitor
Diffs the last snapshot. Signal kinds: new-thread (≥3 events, high/critical), thread-escalation, actor-spike, contradiction, forecast-due. First tick establishes baseline (no spam).
07 · Evidence balance
Honesty when the corpus is thin
Start at 100; subtract gaps:
Confidence cap for briefs: HIGH if score ≥ 75 and no entity/country gaps; MODERATE if ≥ 45; else LOW. That cap is injected into AI prompts so the model cannot claim high confidence on a skinny feed.
08 · Semantic relevance
Stay on-mission
Mission text = security/conflict framing + research question + countries + keywords/entities. With an embedding key, events are scored by cosine similarity (mapped into 0–100). Without a key, keyword situation-relevance is the fallback.
- Rerank keeps items above threshold (~45) or force-keeps entity/place matches
- Floor / min-keep / max-keep guards prevent empty or bloated feeds
- Live gate is stricter (~40) so co-mention noise stays out
09 · Formula library
Weighted models with citations and assumptions
Each formula takes variables in [0, 1], applies weights, and outputs 0–100. Assumptions are explicit — confidence rises when you accept them knowingly.
dataQuality from filled variables + event volume; formulaFit from accepted assumptions; historicalAccuracy from the prediction ledger (default 0.5 if unknown).
Conflict Intensity Score
Event frequency (0.30) · fatality rate (0.35) · armed actor proliferation (0.20) · displacement pressure (0.15).
Electoral Violence Risk
Historical violence (0.30) · political exclusion (0.25) · incumbent vulnerability (0.25) · security force militarization (0.20).
State Fragility Index
Security apparatus · political legitimacy · economic decline · group grievance (0.25 each by default).
Civil Unrest Index
Protest frequency (0.35) · security response (0.30) · economic grievance (0.20) · media escalation (0.15).
Debt Distress Index
External debt/GDP (0.30) · reserve coverage (0.25) · current account deficit (0.25) · creditor concentration (0.20).
Humanitarian Crisis Severity
Food insecurity IPC Phase 3+ (0.35) · displacement (0.25) · aid access constraints (0.25) · health system stress (0.15).
10 · ACH
Analysis of Competing Hypotheses
Goal templates seed three rival hypotheses. On the canvas, each piece of evidence is scored against each hypothesis as supports, neutral, or contradicts — Richards Heuer’s method, emphasizing disconfirmation.
- AI path — uses full article text when available; returns rationales per cell
- Offline path — keyword heuristics (escalation / stalemate / diplomacy vs event language)
- Lead hypothesis (share snapshots) — fewest contradicts first, then max (supports − contradicts)
Ledger entries record ACH scores so outcomes can be checked later — same discipline as forecasts.
11 · Forecasts
Probabilities you can score
Dated claims resolve to outcome 0 or 1. Calibration is public to the brief.
Accuracy stats include mean Brier, base rate, and calibration bins (predicted probability vs observed frequency). Track record blocks appear in briefs only after at least one resolved forecast.
12 · Historical analogs
Similarity to curated past situations
A 30-day feature vector (share conflict / political / humanitarian, mean severity, 7-day vs prior velocity) is compared to a curated analog library via weighted Euclidean distance. Weights emphasize conflict and political share (1.5), then humanitarian (1.0), severity (0.8), velocity (0.3). Output is a 0–100 similarity — a prompt for judgment, not an oracle.