Loading… -
Total P&L
-
-
Win Rate
-
-
Open Positions
-
-
Best Trade
-
-
Avg Trade
-
-
Last Signal
-
-
📊 Open Positions 0
Market Theater Side Entry Now P&L Cost TP / SL Held
No open positions
Live Assessment -
Waiting for first signal…
📜 Signal History 0
Time Signal Confidence Reasoning
No signals yet
🎯 Market Assessments Claude vs market - latest signal
-
Market Theater Claude ¢ Market ¢ (live) Spread Edge
No assessment data yet - waiting for next signal cycle
🗂 Recent Trades 0
Market Theater Side Entry Exit P&L Hold Exit Reason Confidence Opened
No closed trades yet
Kalshi Net Flow
-
-
Polymarket Whale Bias
-
-
-
📊 Kalshi Market Flow - 24h -
Market Alignment YES / NO Flow Volume Trades Biggest Momentum
Loading…
🐋 Notable Kalshi Trades $200+ individual orders
Loading…
🏆 Polymarket Smart Money Positions -
Loading…
⚡ Recent Whale Trades Polymarket - large orders in last 24h
Loading…
-
Loading news feed…

Strategy Calibration

Probability accuracy, edge capture, P&L attribution, and threshold sensitivity

Loading calibration data…

System Overview

How TrenchSignals works - architecture, data sources, intelligence layers, and risk controls

An autonomous prediction market trading bot that monitors global geopolitical news in real time across four conflict theaters — Iran/Middle East, Ukraine, Taiwan, and North Korea — uses Claude (Anthropic) to assess multi-theater escalation probabilities, and places trades on Kalshi when it finds a meaningful edge between its own estimate and the current market price. Runs 24/7 on a cloud VPS as a managed service.


End-to-end cycle

1
News arrives - RSS feeds, Twitter/X, and Telegram OSINT channels are polled continuously. Articles are filtered by conflict keywords and deduplicated before analysis.
2
Claude analyzes - Fresh items are packed into a structured prompt alongside live market data and intelligence context. Claude assigns a global escalation probability, per-theater escalation probabilities (Iran, Ukraine, Taiwan, N.Korea), a direction (YES / NO / SKIP), a confidence score, and a probability estimate for every tracked Kalshi market. It also generates 1–3 headline-style TL;DR bullets summarising the dominant development, its key implication, and any wildcard to watch — these appear live on the dashboard.
3
Edge is computed - For each market: edge = Claude's estimate − market mid. Per-theater escalation probabilities are used as fallbacks for theater-specific markets, preventing signal bleed across theaters. A trade is only considered when the edge clears a meaningful threshold that adjusts dynamically with market volatility.
4
Guardrails run - Multiple filters screen each candidate: minimum confidence, minimum entry price to ensure liquidity, portfolio concentration limits, and a direction-skew penalty when the book is already tilted one way.
5
Order placed - One trade is executed per signal cycle — the single highest-edge candidate that clears all filters. A limit order is submitted on Kalshi. Position size is fixed at the configured base size ($3 USDC on the live bot; $50 USDC on the paper bot), ensuring consistent risk exposure on every entry.
6
Position monitored - Open positions are checked every 30 seconds against take-profit (+20¢ or 50% return) and stop-loss (−10¢) thresholds. Claude reviews each trigger and can elect to hold, exit, or adjust thresholds based on the latest news environment. Settled markets are detected automatically and closed at the published resolution price without placing a sell order on a closed book. Positions with no original thesis (orphans, restored after a restart) are re-assessed by Claude on startup and every periodic sync — every open position is actively managed regardless of how it was entered.

News & social

SourceTypeNotes
105 RSS feedsWestern wire, Israeli official, Iranian state, Iranian opposition, OSINT, Gulf/Arab, Russian state, US government, Google News topic feedsPolled every tick, 10-worker parallel fetch
Telegram channels (22)Real-time OSINT from Iran-focused, military, and regional conflict channelsDirect Telethon stream when credentials present; rsshub RSS polling as fallback
Twitter / X25+ curated handles across source types — smart money traders auto-added from Polymarket leaderboardPolled every tick
NewsAPISupplementary headline coverageOptional; RSS is primary

Market & financial data

SourceWhat we getFrequency
KalshiTracked conflict markets — mid prices, bid/ask, open interest, full 24h trade historyEvery 30 min
Polymarket Data APIConflict markets — prices, lifetime volume, top trader positions and large tradesEvery 30 min
Yahoo FinanceBrent crude, Gold, VIX, USD Index, Defense ETF — used as real-world escalation-proxy signalsEvery 15 min (cached)

What gets injected into Claude's prompt

  1. Live market prices - All tracked Kalshi markets with current mid prices. Claude treats the mid as the market's prior and only acts where its estimate meaningfully diverges.
  2. Source bias profiles - Detailed credibility and bias notes for each source type, enabling Claude to triangulate across adversarial sources. When Iranian state media and independent OSINT agree, that convergence carries extra weight.
  3. Source diversity & velocity - Hard counts of distinct source types present in each batch, freshness breakdown, and a velocity detector that finds the densest 30-minute publication window. When 4+ independent editorial pipelines publish in a burst, a +0.07 confidence bonus is applied — the strongest mechanical corroboration signal in the pipeline. 3 types in a burst earns +0.04.
  4. Signal history trend - Recent signal history is condensed into a slow-moving trend. This prevents whipsawing - persistent directional calls across multiple cycles carry more influence than a single outlier read.
  5. Polymarket whale tracker - Top Polymarket traders monitored across up to 12 conflict markets. BUY trades weighted 2×, SELL trades 1× with inverted direction; deduplication prevents double-counting. Produces a net escalation bias score. Per-market whale divergence is also computed — when top traders are split ≥60/40 on a market, a −0.06 confidence penalty applies; when ≥75% of capital is on one side, a +0.04 consensus bonus applies.
  6. Kalshi order flow - 24h of trade data aggregated into directional taker-side volumes, notable large trades, short-term momentum, and a net escalation flow score. Strong opposing flow is treated as a serious red flag.
  7. Volume spike alerts - Detects unusual volume surges (≥3× hourly baseline) on conflict markets. Multiple markets spiking simultaneously suggests something market-moving may be in play.
  8. Financial market indicators - Live Brent crude, Gold, VIX, USD Index, and Defense ETF prices from Yahoo Finance. Oil spikes corroborate escalation signals; oil drops contradict them. Claude receives explicit interpretation guidance: a BULLISH financial read earns +0.05 confidence, a BEARISH read suppresses confidence on escalation calls.
  9. Scheduled event calendar - A curated list of known geopolitical flashpoints (IAEA board sessions, UN Security Council votes, Iran nuclear talks, DPRK milestone dates, NATO summits) is injected with countdown labels. Breaking news near a HIGH-significance event earns +0.05 confidence; markets may already be pricing in scheduled catalysts, so Claude is instructed to check mid prices for pre-discounting.

Five compounding layers

Each layer addresses a different weakness in relying solely on Claude's raw self-report.

LayerNameWhat it solves
0RawClaude's direct 0–1 estimate
1EWMA SmoothSingle-cycle noise and outlier spikes — α=0.25, ~30 min half-life
2CompositeCircular self-referencing — deterministic weighted formula across all four theaters, with a multi-theater activity bonus up to 1.25×
3Market-ImpliedMissing external anchor — mean Kalshi mid price per theater, globally weighted
4Persistent DecayGaps between signal cycles — probability decays toward a neutral mean between polls, persists across restarts

All five layers are visible on the escalation chart. The persistent decay value is shown as a horizontal reference line reflecting the live state between signal cycles.


Signal quality filters

  • Minimum confidence threshold of 0.72 — signals below this are skipped entirely
  • Edge must exceed a minimum spread over the market mid — this threshold tightens in high-volatility regimes
  • Markets trading below entry price are skipped — thin liquidity makes reliable fills impossible
  • Stale news cycles are penalized — when recent articles dominate, confidence is capped to discourage acting on outdated information

Position sizing & exits

Size scales with conviction — a tiered multiplier links confidence to allocation, and Claude provides an additional sizing recommendation on top. A direction-skew penalty reduces size when the portfolio is already concentrated one way. Default take-profit is +20¢ price move from entry; stop-loss is −10¢. Both thresholds are dynamic — Claude can adjust them at each review based on how the thesis has evolved. A secondary 50% return floor also triggers an exit when a position's return on entry cost exceeds 50%, catching cheap contracts (e.g. 9¢ entry) that can never reach the absolute 20¢ delta but are clearly winners. Settled markets (resolved to 0% or 100%) are handled automatically — the bot records the published result price and closes the position without attempting to place a sell order on a closed book.

Portfolio caps

  • Hard caps on exposure per individual market
  • Hard caps on exposure per theater cluster (Iran/Middle East, Ukraine/Russia, Taiwan/China, North Korea) — 60% max per cluster
  • Maximum number of concurrent open positions enforced at all times
  • One trade per signal cycle — the single highest-edge candidate that clears all filters is executed; remaining candidates are discarded

Volatility regime

Mean price movement across all tracked markets is monitored continuously. During calm periods the edge threshold relaxes slightly; during crises it tightens - making it naturally harder to enter during the noisiest environments.

Circuit breaker

Consecutive SKIP signals trigger a warning flag - indicating either a data source issue or a genuinely quiet news cycle with no actionable edge.


Key modules

Two bot instances run in parallel: the live strategy bot (real trades, port 8000) and a shadow paper-trading bot ($1 000 simulated bankroll, port 8001). Both share the same signal pipeline; the shadow bot records every market evaluation to SQLite so the Calibration tab can score predictions against ground truth once markets settle.

FileRole
apps/run_bot.pyEntry point — initialises all components and launches strategy tasks
strategies/geopolitical.pyCore strategy loop — tick logic, trade execution, dynamic position management, settlement handling
src/signal_analyzer.pyClaude API wrapper — constructs prompts with all intelligence layers, parses structured responses, produces trade signals; includes source velocity detection
src/kalshi_client.pyKalshi REST API client — orders, positions, market discovery, balance; conflict market filtering with ticker denylist
src/kalshi_flow_tracker.pyOrder flow aggregator — taker-side volumes, large trades, momentum, net escalation flow
src/volume_spike_detector.pyVolume spike detector — flags markets with ≥3× normal hourly volume as potential breaking-event indicators
src/whale_tracker.pySmart-money tracker — top trader positions, net escalation bias, and per-market divergence scoring (split whales = uncertainty signal)
src/market_indicators.pyFinancial market indicators — live Brent crude, Gold, VIX, USD Index, Defense ETF from Yahoo Finance; 15-min cache; escalation read injected into Claude's prompt
src/event_calendar.pyScheduled event calendar — IAEA board sessions, UNSC votes, Iran nuclear talks, DPRK dates, NATO summits; upcoming events injected as calibration context
src/telegram_stream.pyTelegram OSINT stream — direct Telethon connection to 22 OSINT channels when credentials present; rsshub RSS polling as parallel fallback
src/news_monitor.pyRSS + NewsAPI poller — 105 feeds across 12 source types; parallel 10-worker fetch; auto-activates Telegram rsshub feeds when detected
src/twitter_monitor.pyTwitter/X client — keyword and handle-based monitoring; SourceType enum for all 14 source categories
src/market_mapper.pyMarket discovery — finds and scores conflict-relevant Polymarket markets by relevance
src/shadow_logger.pyCalibration data capture — logs every market evaluation (signal, confidence, side, entry price) to SQLite for post-hoc analysis; runs alongside the strategy on every tick regardless of whether a trade is placed
web/api.pyFastAPI dashboard backend — positions, trades, signals, market assessments, calibration report; EWMA smoothing, composite formula, market-implied baseline, and persistent decay computed here. Supports dual-instance deployment (real bot on port 8000, shadow paper-trade bot on port 8001) via env vars. 10-second response cache.
scripts/calibrate.pyCalibration report generator — computes Brier score, P&L attribution by theater/direction/exit type, confidence bucket accuracy, and threshold sensitivity from shadow_log.sqlite; writes calibration.json for the dashboard Calibration tab
scripts/sync_resolutions.pyResolution syncer — polls Kalshi daily for settled market outcomes, fills the resolutions table in shadow_log.sqlite so calibrate.py can score predictions against ground truth

Current bot settings

Strategy: Global conflict — Middle East · Ukraine · Taiwan · N.Korea
Exchange: Kalshi (US-regulated)
Signal model: claude-sonnet-4-6
Review model: claude-haiku-4-5
Poll interval: 10 minutes
Position management: Continuous (every 30s)
Trades per cycle: One — highest-edge candidate only
Min confidence: 0.72
Take-profit: +20¢ price move OR 50% return on entry cost (dynamic — Claude can extend)
Stop-loss: −10¢ price move (dynamic — Claude can override)
Min entry price: 5¢ per contract
Escalation decay: Half-life ≈ 6.4 h, mean-reverts to 25% between signals
Autonomous Intelligence

Conflict monitoring that
trades while you sleep

TrenchSignals watches geopolitical intelligence feeds around the clock across four conflict theaters. It uses Claude AI to assess escalation probability in real time and autonomously manages positions on Kalshi prediction markets when it finds a meaningful edge.

Four steps. Fully autonomous.

Most prediction market traders check the news once a day and place a trade. TrenchSignals runs the full cycle continuously, ingesting, analyzing, deciding, and executing without manual intervention.

1

Monitor

Pulls live OSINT feeds, Telegram channels, official government statements, and real-time smart money positioning every cycle. Nine source types are tracked across four theaters. Each item is ranked by source credibility and recency before anything reaches Claude.

2

Analyze

Claude triangulates across sources with opposing biases to produce a calibrated escalation read. It factors in recent signal history, current smart money positioning, and live market prices to identify where its estimate diverges meaningfully from what the market is pricing.

3

Signal

When confidence clears the threshold, a directional signal is produced with a probability estimate for every tracked market. The single highest-edge candidate that clears all risk filters is selected for execution — one disciplined trade per cycle. Every signal is logged with full reasoning so nothing is a black box.

4

Execute

One position is entered per signal cycle. Open positions are then monitored every 30 seconds on a separate loop — Claude reviews each take-profit or stop-loss trigger and can elect to hold, exit, or adjust thresholds as the thesis evolves. When the news changes, position management changes with it.

Built for conflict markets.

Geopolitical prediction markets move on information asymmetry. TrenchSignals is built to close that gap, processing more sources across more theaters, faster, with less noise than any individual analyst can manage.

📡

Multi-Source Ingestion

Pulls from 105 RSS feeds, 22 Telegram OSINT channels, 25+ curated Twitter/X handles, and official government statements simultaneously. Each source carries a bias profile so Claude can reason across adversarial signals rather than treating all inputs equally.

🧠

Bias-Corrected Analysis

Claude reads Iranian state media, Western wire services, OSINT aggregators, and official statements in the same pass. The goal is a calibrated read across all four theaters, not a reaction to whichever headline is loudest.

🐋

Smart Money Tracking

Top-ranked Polymarket traders are monitored by position. When the sharpest players in the market are on the other side of a signal, that disagreement flows directly into the confidence score.

⚙️

Autonomous Management

Positions are monitored every 30 seconds. Claude can exit, extend, or hold based on how the news has evolved since entry. Exit thresholds adjust dynamically, not on a fixed timer.

🗂

Full Audit Trail

Every signal, trade, and position review is logged with full reasoning. You can drill into any historical signal to see exactly what Claude saw, what it concluded, and why it acted or didn't.

📊

Calibration Suite

A parallel paper-trading bot runs on simulated capital alongside the live strategy, logging every market evaluation to SQLite. Daily calibration reports compute Brier scores, P&L attribution by theater and exit type, and confidence accuracy bands — feeding a continuous feedback loop to sharpen future signals.

Scope of coverage.

TrenchSignals covers four active conflict theaters spanning the most actively traded geopolitical clusters on Kalshi. Each theater is tracked independently, with dedicated intelligence context, per-theater escalation signals, and portfolio concentration caps. Nine intelligence layers — from live order flow to scheduled event countdowns — are injected into every Claude prompt.

120+
Kalshi markets tracked
~10m
Signal cycle interval
150+
Live data sources
9
Intelligence layers injected
24/7
Continuous operation
Not financial advice. TrenchSignals is an autonomous trading system in active development. Prediction market trading involves significant risk of loss. Past performance does not guarantee future results. This dashboard is for informational and research purposes only.

Get early access to
TrenchSignals

We're onboarding a limited number of traders. Join the waitlist and we'll reach out when a spot opens up.