Changelog

Every change to the model, data sources, and interface is documented here. Transparency is not just about the formula — it includes how the tool evolves over time.

v3.0April 2026

Flight Fuel Alert — full feature launch

  • New /flight-alerts page: route risk checker with origin, destination, optional layover country
  • Combined risk formula: origin 50% + layover 30% + dest 20% (or 70/30 without layover)
  • Time horizon: project risk forward 0-6 months as reserves deplete under ongoing disruption
  • Ceasefire scenario with normalcy slider (0%, 25%, 50%, 75%, 100%)
  • Return trip risk: assumes 7-day stay, fuel loaded at destination, reserves depleted by trip duration
  • Stranding risk assessment by destination country name
  • 26 country fuel profiles from EIA, IEA, JOGMEC, BP data (14 Asia-Pacific + 5 destination + 7 least-impacted)
  • 20 airline impact summaries (8 disrupted + 12 global carriers including no-impact LOW carriers)
  • 10 verified flight routes with pre/post prices, status, and source URLs
  • 30-day GDELT news digest + EIA Brent/jet fuel prices (12h ISR cache)
  • Country cards show depletion estimate or "Minimal Hormuz dependency" for safe countries
  • Hero: "Is your flight at risk?" with disrupted routes stat + CTA
  • Summary bar with CRITICAL/HIGH/MODERATE/LOW counts
  • Most impacted vs least impacted country sections
  • 128 unit tests including 16 QA stress tests for real country profiles
  • Added Canada, Ireland, Norway to country database (68 total)
  • Flight Fuel Alert added to primary navigation
v2.7April 2026

Belligerent rankings, UI restructure, feedback

  • Deep-researched consumer price impact rankings for 8 belligerent countries across all 10 categories
  • Replaced misleading Gains/Costs labels with actual basket impact % + insight text
  • Renamed Simulator → Regional Impact, Country Simulator → Country Impact
  • Merged Methodology + Data Sources + Learn into /how-it-works
  • New /feedback page with form → Vercel KV
  • Simulator shows 4 category-specific impact cards (Cereal, Fuel, Oil, Dairy)
  • Homepage "Most impacted by Hormuz" top-5 section with CTA
  • FX dates updated to Apr 2026, footer version bump
  • 65 countries total (was 57)
v2.5March 2026

55 countries, Hormuz scenario, OG fix, regional rankings

  • Expanded countries from 24 to 55 (all with Hormuz basket rankings)
  • Added hormuz-2026 war scenario: Brent $70→$107.81 (+54%), shipping +150%, urea +49%
  • OG image fixed: moved from file-convention to /api/og API route
  • Rankings redesigned: Most Impacted (top 5) + Impact by Region (7 collapsible groups)
  • Wikipedia source URLs added to all 6 war cards
  • Learn articles rewritten with citations from IMF, World Bank, ECB, FAO, EIA, Dallas Fed
  • Mobile hamburger navigation, toggle accessibility (role=switch, 44px touch targets)
  • Homepage hero card hierarchy redesigned, collapsible sidebar sections
v2.2March 2026

Pre-escalation anchors, user refinements, i18n, surface fixes

  • Pre-escalation price anchors: researched Before/After commodity prices for all 5 wars with war-escalation cards replacing the old war selector
  • User data refinement panel: 3-tab panel (Commodity Prices, Category Impacts, FX Rates) with localStorage persistence and Add New Country flow
  • User-supplied impact overrides flow through computeScenario/computeBasket with "User data" badge
  • i18n infrastructure: zero-dependency useT() hook with ~200 translation keys in en.json, ar.json, tl.json
  • All interactive components + homepage wired to translation keys (19 components)
  • Compare page: per-scenario pass-through and lag controls, coverage badges per country row
  • Saved scenarios page: fixed passthrough display, added coverage/reliability badges, full simulator links
  • Embed endpoints: accept pt and lag query params, show assumption chips and coverage badges
  • Share toolbar: encodes model version and snapshot date in shared URLs
  • Homepage example cards: fixed lag params to match displayed ceiling numbers
  • SerpAPI 3-layer caching: module cache + sessionStorage + Vercel CDN (max 1 call per 24h)
  • Real SerpAPI fetched_at timestamp for provenance data-as-of display
  • Fallback prices updated with post-escalation reference values and provenance notes
  • MEMORY.md, CLAUDE.md, COS-Report files gitignored from public repo
v2.1March 2026

Scenario Builder Refactoring

  • Centralized all calculation logic into a shared engine — no more inline math in components
  • Removed Math.random() from realized estimates — all results are now deterministic and reproducible
  • Lag multipliers (1.0, 0.95, 0.88, 0.75) now actually applied to all calculations
  • Basket page connected to URL scenario state — no more hardcoded Philippines/Russia-Ukraine data
  • Two distinct basket metrics: weighted average price impact (%) and CPI basket contribution (pp)
  • Coverage and reliability badges shown on all result surfaces
  • Structural miss warnings for Türkiye, Nigeria, and Pakistan with link to validation page
  • Factor contribution breakdown that sums exactly to the lag-adjusted ceiling
  • Provenance metadata (model version, snapshot date, data-as-of) in assumption strip
  • Full audit trace drawer with formula chain, factor decomposition, and provenance
  • Deterministic share links — all URL params always serialized
  • Impossible-state guards block rendering when inputs are invalid
  • Fixed SaveButton defaults (passthrough 0.6 → 100, lag "3-6 months" → "6m")
  • Added 37 unit tests covering all calculation logic (Vitest)
v1.0March 2026

Initial release

  • 5 war/shock scenarios: Russia-Ukraine, Iran-Israel-US, Gaza 2023, COVID-19, Gulf War 2003
  • 10 consumer categories: bread, dairy, eggs, rice, cooking oil, vegetables, meat, detergent, fuel, and full basket
  • 10 core countries with full coverage: Philippines, Egypt, India, Brazil, Nigeria, Pakistan, Indonesia, Türkiye, Ukraine, Morocco
  • 6 partial-coverage countries: Bangladesh, Kenya, Sri Lanka, Ghana, South Africa, Mexico
  • 4 experimental countries: Argentina, Ethiopia, Vietnam, Thailand
  • Validation against realized CPI data for 7 country-category pairs
  • Commodity price feeds from World Bank Pink Sheet and SerpAPI / Google Finance
  • Methodology documentation with full formula transparency
  • Known failure mode documentation for Türkiye, Nigeria, and Pakistan