Methodology
engine v4.4.2 · open methodAn instrument, not an opinion. Every number on this site is produced by our own engine on a fixed schedule: market data every ten minutes, a full analysis of the world's news at 00:10 and 12:10 UTC. No person edits a score. Every weight is on this page.
In one minute. We read 40+ free public news feeds, public attention data and open market prices. Headlines are scored for tension, coverage shares are ranked against our own history, five factors are combined into the World Tension score, and eight more indexes read the markets that turn tension into prices. Three derived indexes add it up.
What feeds the engine
Own news corpus. 40+ free public feeds across world wires, business, energy, defence and AI, fetched twice a day. Every headline is scored and archived; the corpus is the moat and it only grows.
Public attention data. Page-view counts on tension, trade, sanctions and AI-safety topics, with three years of history, so today is always ranked against a real past.
Public social signals. Open community news feeds, a small weight in the coverage blend.
Open market prices. Oil, gas, metals, grains, equity volatility, yields, the dollar index, crypto and freight. When a feed stalls the last known value is carried and flagged estimated in the JSON, the API and on the status page.
Language-model enhancement. A model refines headline classification and writes the plain-English brief and monthly stories from facts we already computed. If it is unavailable, keyword scoring and template text take over. It never produces a number.
The World Tension score
1. Headlines to shares. Keyword tiers score each headline (extreme +12, high +6, moderate +3 on a base of 20; named actor +8; nuclear +15; oil spike +10; clamped 5–99). The model's classification is blended 60/40 with that score. Three coverage shares result: tension (world and defence headlines), trade disruption (business, world and energy) and sanctions.
2. Ranked against ourselves. Each share becomes a percentile of the engine's own daily record of that share, blended with attention percentiles (own corpus 0.45, attention 0.40, social 0.15). A calibration bridge kept the public score continuous at the v4 cutover and fades out over the first 120 days of record.
3. Five factors, fixed weights. Conflict 25%, energy 20%, trade 20%, finance 20%, media 15%, combined as a weighted mean and clamped to 0–100.
4. Shock overlay. Event-level headlines (attacks, strikes, blockades, nuclear developments) add up to +18 points, decaying with a half-life; question-form headlines are discounted.
5. Fear physics. 85% of any upward gap applies immediately; the score may fall at most 3 points per day from a day-anchored floor. Alarm is instant, reassurance is gradual, exactly as risk is experienced.
The twelve indexes and their formulas
| Index | Formula |
|---|---|
| World Tension | conflict 25% + energy 20% + trade 20% + finance 20% + media 15%, then shock and fear physics |
| Food Security | wheat 45% + corn 35% + rice 20%, each ranked against its own multi-year price history |
| Currency Stress | dollar-index deviation from neutral 50% + averaged stress across the major pairs 50% |
| Shipping Stress | freight index level 60% + our own coverage-share of shipping and chokepoint disruption 40% |
| Sanctions Pressure | our own coverage-share of sanctions, embargo and export-control news 50% + sanctioned-currency stress 30% + regimes in force 20% |
| Energy Security | Brent level 40% + natural gas 30% + oil volatility 15% + gold/oil ratio 15% |
| Gold & Silver Fear | gold and silver vs multi-year history 50% + VIX 30% + 10-year yield 20% |
| Crypto Fear & Greed | 24h momentum 30% + 7-day momentum 25% + volatility vs 30-day norm 20% + BTC-dominance shift 25%, blended 80/20 with an independent public sentiment index |
| AI Risk | AI-risk share of AI headlines 40% + severity of the eight strongest headlines 40% + attention on AI-safety topics 20%, EMA 0.5 |
| Inflation Pressure | energy 35% + food 25% + shipping 20% + currency 20% |
| Supply Chain Risk | shipping 40% + energy 25% + sanctions 20% + conflict factor 15% |
| Market Fear | Gold & Silver Fear 50% + (100 − Crypto Fear & Greed) 50% |
Zones for all indexes: 0–39 Calm · 40–54 Stable · 55–67 Moderate · 68–77 High Tension · 78–100 Extreme. Crypto keeps its Fear/Greed labels. Divergence alerts fire when headlines and markets disagree by 20 points, or an index sits 15 points from its own 30-day average.
Conflicts: a roster that lives and retires
Recognised in our own corpus. Each tracked conflict has its own terms (places, actors, forces) — the Israel-Palestine Conflict, the US-Israel-Iran War, the Russo-Ukrainian War, Sudan, the Sahel and the rest of the roster. Per run we count mentions in tension-scored headlines and, within them, violent mentions.
Trend. Last 30 days of coverage against the 30 before: escalating at 1.25×, cooling at 0.75×, otherwise active.
Lifecycle. No real activity for 30 days: dormant (still listed, excluded from regional scoring). 120 days: retired to the archive, revived automatically if activity returns. Countries drawing sustained high-tension conflict coverage outside the roster are surfaced as candidates and added only after human review. See the live roster lifecycle.
Country tension scores (engine v4.3)
197 countries, one registry. Every UN member plus Palestine, Taiwan and Kosovo, each with its name, demonym, capital and best-known leaders and institutions as matching terms. Rules stop the classic false positives: Georgia, Jordan and Chad count only with a context word; “South Sudan” never counts as Sudan; “New Mexico” counts as the United States.
Per full run the engine tags every headline with the countries it names and keeps, per country and day: headlines, violent headlines, high-tension headlines (score 40+), and a rolling 30-day store of the headlines themselves — the country’s news pulse.
The score (0–100). Attention 30% — share of world coverage in 30 days, 100 × (1 − e−share/0.06); violent share 25% and high-tension share 15%, both weighted by confidence (full weight from 10 headlines); roster conflicts 15% (30 per conflict, +20 if one is escalating, capped at 100); region score 15%; momentum +6 / −4 when 30-day mentions run 50% above or 33% below the previous 30 days. Same fear physics as the world score: 85% of a rise at once, at most 3 points of fall a day. Same zones.
Permanent pages, honest release. Every country has a page from day one. Pages carry noindex until the record is 30 days old; from then on one page a day is released to search engines — roster countries first, then by headline count — and only with 20+ headlines in a month. Released pages stay released. Quiet countries wait, automatically. Daily rows older than 400 days roll into monthly rows in the working file; the database keeps every day.
AI Risk: sub-indexes and the incident record (engine v4.4)
Seven kinds of risk. Every AI-related headline (AI-risk weight 15+) is sorted by term matching into up to three categories: misuse & cyber, capability jumps, regulation & control, military AI, safety incidents, jobs & economy, chips & power. Each sub-index is 100 × (1 − e−I/1.5), where I is the average per-day weighted headline count over 30 days (a headline weighs its AI-risk score ÷ 100).
Incidents. A headline weighing 55 or more — harm done, attempted or narrowly avoided — enters a permanent, numbered, append-only record the moment it is read. Nothing in that record is ever edited or removed. Country attribution uses the same registry as the country pages.
Versioned separately. The AI Risk Index has its own methodology page with first-published date, changelog and citation format, because it is the first daily numeric AI risk index we know of and its record should stand on its own.
The record and the stories
Append-only since 2026-03-23. A day is written once and never edited. Scores on or before 2026-07-23 came from the first-generation engine on a higher calibration; pages and API responses covering that period say so.
Every month, every index, explained. When a month closes it gets a locked write-up: biggest daily moves with that day's headlines, top and calming headlines, a per-index table and a plain-English narrative from those facts only. Lifetime archive · timelines on every index page.
Honesty, versions, reproducibility
Estimated fields are flagged everywhere the number appears. Nothing changes silently: the engine is versioned (now v4.4.2), every release is dated in the changelog, and the live version is printed on every page and in every API response. Everything is reproducible from this page, the data portal and the open API. Longer treatment: the methodology whitepaper v4 (PDF).
Limitations: coverage-based signals measure what newsrooms report, not ground truth; they can lag in under-reported regions and over-react to media cycles, which the percentile framing and fear physics partly correct. Informational only, not advice.