ENSO Monitor

Oceanic Niño Index (ONI), 1950–present

3-month running mean Niño 3.4 SST anomaly. Red bands = El Niño events, blue bands = La Niña events. Dashed thresholds at ±0.5°C (event definition) and +2.0°C (very strong).

ENSO events since 1950 (click headers to sort)

2026–27 forecast — projected ONI paths vs analog rises

Commodities

Price history

El Niño composite response (indexed to 100 at event start; window −12 to +32 months)

Event Studies

Indexed price paths around event start (= 100 at offset 0)

Documented impacts (sourced event studies)

Macro & FX

FAO Food Price Index

US CPI — food vs headline

Quote conventions: AUD/USD is quoted USD per AUD; BRL, INR, IDR and JPY are quoted local currency per USD (a rising line = weaker local currency).

2026 Simulator

Not a forecast. Projections below are historical El Niño composite responses rescaled by a chosen peak ONI. They are confounded by inventories, policy and macro conditions and must not be used as the basis for trading decisions.
Inventory regime
Methodology (how the projections are built)

Projection summary

Trading

Not investment advice. Every number on this tab is either a real fetched quote with an inspectable source link, or a historical composite rescaled to a scenario — never a forecast. Futures prices below are in contract units (e.g. sugar in US cents/lb), which differ from the World Bank monthly units used on the other tabs.

Current prices (static snapshot — every source URL is the exact API call used)

El Niño playbook — trading strategies

Trading simulator — from the current price

Scenario rescaling, not a forecast. The path below is the historical El Niño composite response (median with p25/p75 band) rescaled by your chosen peak ONI and applied to the current fetched price. Composites are confounded by inventories, policy and macro conditions. This is not investment advice.

Projected price path

Projection summary

NoFA — rules-based paper-trading agent

Simulated paper trading — not investment advice. "NoFA" = "Not Financial Advice". This tab shows a transparent, deterministic, rules-based simulation: which ENSO-relevant asset the agent would LONG and which it would SHORT, plus a paper portfolio starting at $50,000 on 2026-08-13, rebalanced at most once per day, running until 2027-03-01. No real money, no real trades. Every number derives from the site's data snapshots (sources below); nothing is a forecast or a recommendation.

Portfolio status

Daily report

Equity curve

Decision timeline

One row per daily agent run: what the signal picked, which actions were taken (open / close / rebalance) and the resulting paper NAV.

Open positions

Trade log

Methodology & sources

Onchain execution — Ostium (Arbitrum)

Platform

ENSO coverage matrix

Not listed on Ostium

Execution agent status

Intended trades (paper plan)

Executed live trades & open positions

Agent daily log

Sources

Growing-Region Weather

El Niño confirmation board

Precipitation anomaly by growing region

Ocean

Live physical-state imagery of the equatorial Pacific from NOAA CPC and NOAA PMEL/TAO. All maps, cross-sections and animations below are loaded directly from operational NOAA products — no simulated or placeholder data. If an image fails to load, the exact source URL is shown so you can inspect it at NOAA.

Sea surface temperature (SST)

Subsurface temperature — equatorial Pacific cross-section

Depth–longitude slices along the equator show the warm-water reservoir and thermocline displacement that drive El Niño. The animation cycles through the latest weekly analyses.

Atmosphere–ocean coupling

850 hPa zonal wind anomalies reveal weakening trade winds; OLR anomalies show the eastward shift of convection; PMEL TAO buoys give direct equatorial wind and SST observations.

Time-longitude evolution

Hovmöller-style summaries show how SST and upper-ocean heat anomalies have propagated eastward over the past year.

Data & Sources

Every dataset on this site is listed below with its exact source. The derived aggregates in site-data/ are computed by tools/build_site_data.py from the World Bank Commodity Price Data ("Pink Sheet") monthly file and the other raw series in data/; current prices are fetched by tools/fetch_current_prices.py. Full repository: github.com/operalag/enso.

Machine-paid API (x402)

Pay-per-call data for AI agents. The analytics behind this dashboard are available as x402-paid endpoints (HTTP 402 micropayments, USDC on Base mainnet, settled by the Coinbase CDP facilitator). No account, no API key, no gas for the buyer — a wallet with USDC on Base is all an agent needs. The underlying static JSON remains publicly accessible without payment for inspection and reproducibility; the x402 routes provide the paid agent-payment and Bazaar-discovery interface. Simulated/research data — not investment advice.

Endpoints deployment origin https://trading-perps.vercel.app · live in the x402 Bazaar catalog

How payment works

  1. Call an endpoint → server answers 402 Payment Required with a PAYMENT-REQUIRED header (base64 JSON: price, network, asset, payTo).
  2. The buyer signs a gasless EIP-3009 transferWithAuthorization for the exact USDC amount — no ETH, no onchain transaction from the buyer.
  3. The client retries with a PAYMENT-SIGNATURE header; the server verifies and settles via the CDP facilitator (~2 s), then returns 200 + the JSON payload with a PAYMENT-RESPONSE receipt header.

Payments settle directly to 0xbD356968846829e32983Bb4aBE2d0DD29F2c2F7B (USDC, Base eip155:8453). The facilitator is non-custodial and sponsors Base gas. Protocol: x402 v2 (Linux Foundation); facilitator: Coinbase CDP.

Quickstart for an agent (TypeScript)

import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount("0x…"); // wallet holding USDC on Base
const client = new x402Client()
  .register("eip155:8453", new ExactEvmScheme(account));
const pay = wrapFetchWithPayment(fetch, client);

// Today's NoFA LONG/SHORT signal — $0.25 USDC, settled in ~2s
const res = await pay("https://trading-perps.vercel.app/api/nofa/signal");
console.log(res.status, await res.json());

Python: pip install "x402[evm]" and use x402HttpxClient — see the buyer quickstart. MCP agents: discover and pay via the Bazaar MCP server.

Discovery (x402 Bazaar)

All four endpoints are cataloged in the x402 Bazaar — the discovery layer AI agents search. Listings stay active while they see settlement within 30 days (our own warmth agent calls one endpoint weekly on rotation). Merchant lookup: listX402DiscoveryMerchant({ payTo: "0xbD35…c2F7B" }) via the CDP SDK. Service name in the catalog: El Nino Market Watch.

Terms & notes

  • Fixed prices per call (see table); failed payments are never settled — settlement happens only on a successful 200 response.
  • Scheduled refreshes currently cover prices every three hours and the NoFA report daily around 23:37 UTC. ENSO indices, COT, weather and monthly benchmarks are refreshed manually or on demand and may be older. Freshness metadata varies by artifact: use generated where present together with each series' observation date and source URL; the composites payload does not currently carry a generated timestamp.
  • NoFA signal is a deterministic rules-based paper-trading simulation — not investment advice.
  • The same underlying artifacts remain public as static files for auditability (Data & Sources).