Weekly Trench Signals — calibrated forecasts on where geopolitics moves markets, every call graded in public. Subscribe, free →
Calibrated forecasting · geopolitics × markets · graded in public

Where geopolitics moves markets —
a number on every call, graded in public.

I’m Chris. Each week I put explicit probabilities on resolvable questions where geopolitics moves the tape — Iran, Taiwan, oil, the Fed — say where I disagree with the market, and grade every call in public when it resolves. The read is amplified by an intelligence engine I built (70+ feeds, OSINT, financial + seismic tells), but the call — and the accountability for it — is mine.

calls graded in public
wins and losses, anchored
/
adversarial attacks detected
model held confidence < 0.75
resolution skill
Murphy decomposition
%
/health uptime
last 24 hours
Last uptime probe loading… · Calibration cron: 03:05 UTC · Source-ablation cron: 03:15 UTC · Source on GitHub
What you actually get

Every call looks like this.

A probability, the market’s number right beside it, a hard resolution rule, the thesis in plain words, and the line that would prove me wrong fast. No “tensions are rising” — a number, a deadline, and a public grade when it resolves.

Fade the rush: no US–Iran nuclear deal this year.
My number: 70% Market: 87% −17 pp edge
Resolves Dec 31 — YES if a formal US–Iran nuclear agreement is signed in 2026.
The market treats a 2026 deal as nearly done. I’m not. Signal flow is pro-talks, but there’s no signed-framework momentum that justifies high-80s — the tape is pricing the direction and forgetting the clock.
Wrong fast if: a confirmed signing ceremony or leaked initialed text surfaces before August.

See every call graded in public →

Start here

Three ways in.

Or jump straight to the proof: calibration · the misses I’ve owned · the pre-registration chain · the diary

Press or media? Press kit, story angles & contact →

Native-language reads IRNA (ایرنا), Ynet (ynet), Kommersant (Коммерсантъ), Asharq (الشرق), Xinhua (新华社) — 10 native-script sources across 5 alphabets, plus 109 English-language wires. No translation layer; Claude reads each in its source language. See the full source list →

Honesty rail · the moat

Trench shows you what it got wrong.

When Trench loses, it labels why: wrong signal, wrong thesis, or shouldn't have entered at all. Wins are easy to brag about. Owning the specific losses, with the time and the reasoning still attached, is the harder thing. Three recent ones from the diary:

Loading recent losses…

Every loss with its lesson on the Wall of Transparency → · Full append-only diary at /log →

How Trench thinks The loop, every 10 minutes. Open ↓

Trench isn't a chatbot trained to sound confident. It's a four-step loop that runs every 10 minutes: read, tag, score, decide. If one source of intel goes dark, the loop keeps running with what's left.

01 / READ

Watches 12 source types

RSS wires, Iran/Israel state media, Telegram OSINT, curated Twitter, 11 financial instruments, Polymarket whale flow, Kalshi order flow, Manifold/Metaculus consensus, USGS seismic data, scheduled events, live market prices.

02 / GROUND

Tags everything to entities

Each item, whether a Reuters headline, a Farsi IRNA story, a Brent +5% move, or a Hezbollah whale trade, gets linked via a 227-alias resolver covering 93 named entities (countries, leaders, militant groups, military operations, financial instruments, choke-points). The graph grows. One shared semantic layer across 12 source types.

03 / DECIDE

Trades when graph and market disagree

Edge = Trench's probability − market mid. Multiple gates filter candidates: confidence floor, edge floor, per-entity exposure cap, source-diversity confluence, position cap, session loss cap. Every entry-decision tick emits exactly one structured outcome line, so the funnel from "started cycle" to "placed trade" is fully observable.

What Trench watches 12 source types feed one graph. Open ↓

Every source writes into the same graph, tagged to the entities it touches. The more independent source types confirm the same story, the more weight the signal gets. Twelve types of evidence outvote one.

01 / News

108 RSS feeds · 5 native languages

Reuters, AP, BBC, Al-Monitor, IDF, IAEA, Bellingcat, FAS, 38 North, Kyiv Post, plus IRNA Farsi, Ynet Hebrew, Kommersant Russian, Al Jazeera Arabic, Xinhua Chinese, read directly with no translation layer.

02 / Telegram

28 OSINT channels

Aurora Intel (AIS / NOTAM / satellite), ME Spectator, Flash Point ME, Nuclear Iran, Ukraine Weapons Tracker.

03 / Twitter

~30 curated handles

Conflict-focused accounts plus keyword search. Smart-money handles auto-added from the Polymarket leaderboard.

04 / Financial

11 instruments

ILS/USD as Israel war-risk thermometer, Brent + WTI, Tel Aviv 35, Gold, VIX, USD Index, Defense ETF (ITA), Uranium, Nat Gas.

05 / Whale flow

Polymarket smart money

30 top traders' positions across 12 conflict markets. Per-market divergence + recent large trades. Net cluster bias.

06 / Forecasters

Manifold + Metaculus

Open prediction-market questions on conflict topics. Each question's median probability becomes a graph event.

07 / Seismic

USGS earthquakes

Iran-region quakes filtered by proximity to nuclear sites (Natanz, Fordow, Bushehr, Parchin). Suspicious events flagged.

08 / Calendar

Scheduled events

IAEA Board sessions, UNSC votes, Iran-US nuclear talks, DPRK timelines. Each injected with countdown labels.

09 / Surges

Volume + event spikes

Markets with current-hour volume ≥3× baseline are flagged. Entity event surges (3× baseline rate) trigger early-tick analysis.

Want the full picture? Read how Trench thinks →

The newsletter

Trench Signals, in your inbox.

Calibrated forecasts on where geopolitics moves markets — a number on every call, a resolution date, and the miss I’m owning that week at the top. Weekly, plus a short flash when something actually breaks. Free while the track record builds; one-click unsubscribe in every email.