Surveys lie. Pundits bluff. Twitter is noise. But when people bet real money on whether the Fed will cut rates or GDP will contract — that's a different signal entirely. Today we wired Kalshi's CFTC-regulated prediction markets into Tauntaun as signal source #7. The first read? The crowd is pricing stagflation.

Why Prediction Markets

Every other sentiment indicator in our system measures something indirect. FRED measures what already happened. RSS measures what journalists write about. Google Trends measures what people search. Credit spreads measure what bond traders demand. All useful. None of them directly answer the question: what does the crowd think happens next, with their own money on the line?

Kalshi is a CFTC-regulated exchange — the same regulator that oversees futures markets. These aren't play-money polls. When someone buys a "GDP below 2%" contract at $0.67, they're risking real dollars on that outcome. That changes everything about the quality of the signal. Nassim Taleb's concept of "skin in the game" isn't just philosophy — it's information theory. Money-weighted opinions are higher quality than free opinions.

What We Track

Three macro series, each with multiple strike levels that let us build full probability distributions:

KXFED — Federal Funds Rate

Markets at different rate thresholds (above 2.0%, above 2.5%, ..., above 4.5%). By comparing probabilities across strikes, we extract the implied expected rate and the probability of aggressive cuts vs. hikes. Aggressive cuts = the crowd thinks the economy is in enough trouble that the Fed has to intervene hard.

KXGDP — GDP Growth

Same structure — markets at growth thresholds (above 0.5%, above 1.0%, ..., above 4.5%). We compute implied GDP growth, recession probability (GDP below the lowest strike), and strong growth probability. This is the crowd's real-money bet on economic expansion vs. contraction.

KXCPI — Consumer Price Index

Monthly CPI change thresholds. We annualize the implied monthly rate to get the crowd's inflation expectation. Hot inflation (>0.5%/month, ~6% annualized) triggers commodity hedges and hurts nominal bonds.

The Math: Implied Probability Distributions

Each Kalshi market is a binary contract: "Will X be above Y?" The price IS the probability. A $0.70 yes price = 70% probability that the outcome exceeds the strike.

With multiple strikes on the same event, we build a distribution:

P(rate above 4.25) = 28.5%
P(rate above 3.00) = 54.5%
P(rate above 2.50) = 62.5%
P(rate above 2.00) = 70.5%

Implied rate ≈ weighted average across the distribution
Aggressive cut prob = 1 - P(above 3.0%) = 45.5%

We use midpoint pricing (average of bid and ask) to smooth the spread noise. Markets with zero liquidity get skipped.

Signal Logic

FED RATE:
  Aggressive cut probability > 40%  →  LONG TLT, SHORT SPY (recession pricing)
  Aggressive cut probability > 25%  →  LONG TLT (moderate bond bid)
  Hike probability > 30%            →  SHORT TLT, LONG XLF (hawkish surprise)

GDP GROWTH:
  Recession probability > 25%       →  LONG TLT, LONG GLD, SHORT SPY
  Low growth > 50% (no recession)   →  LONG XLU, LONG XLP (defensive rotation)
  Strong growth > 50%               →  LONG QQQ (growth-favors-tech)

CPI INFLATION:
  Hot inflation probability > 30%   →  LONG GLD, LONG TIP, SHORT TLT
  Above-target CPI > 60% (not hot)  →  LONG XLE (energy benefits)

First Live Read

Fed:  Implied rate 2.83% | Cut probability 100% | Aggressive cut 46% | Hike 0%
GDP:  Implied growth 2.4% | Recession 0% | Low growth 20% | Strong 32%
CPI:  Implied 0.68%/mo (~8.2%/yr) | Hot inflation 50% | Above target 50%

Signals generated: 5
  LONG  TLT  conf=0.53  — 46% aggressive cut probability, flight to bonds
  SHORT SPY  conf=0.36  — 46% chance of aggressive cuts, recession pricing
  LONG  GLD  conf=0.40  — 50% hot inflation, gold as hedge
  LONG  TIP  conf=0.35  — 50% hot inflation, TIPS outperform nominals
  SHORT TLT  conf=0.30  — 50% hot inflation, nominal bonds lose value

The Stagflation Signal

Look at what the crowd is saying: rate cuts AND inflation simultaneously. That's not normal. Normally you cut rates because inflation is dead and the economy needs stimulus. The crowd betting on both means they expect the Fed to cut into a hot inflation environment — either because the economy is cracking too hard to wait, or because they think the Fed will blink.

This is exactly why we built the signal conflict resolution system. TLT gets LONG at 0.53 (from cuts) and SHORT at 0.30 (from inflation). Both are valid theses from different parts of the same prediction market. The strategy engine will net them: LONG TLT wins at 0.23 net confidence — weak, probably below trading threshold. Which is exactly the right outcome: when the macro picture is this confused, the right trade is often no trade.

Lesson: Conflicting Signals ARE the Signal

When your system produces LONG and SHORT signals for the same asset from the same source, that's not a bug — it's the most important information in the output. The crowd is genuinely split on the macro regime. In those moments, the highest-conviction trade is often the one you don't take.

Implementation Details

25 unit tests, all passing. The test suite covers strike parsing, midpoint pricing, Fed/GDP/CPI analysis with mock market data, signal generation for recession and strong growth scenarios, deduplication, and edge cases (empty data, zero prices). We built it TDD — same pattern that worked for credit spreads.

4-hour cache on market data. Macro prediction markets don't move minute-to-minute — they shift when news breaks or data releases hit. Polling every 30 minutes would be wasteful and disrespectful to Kalshi's rate limits. Four hours is the sweet spot: fresh enough to catch regime shifts within a trading session, stale enough to not hammer the API.

Cost: Still $0

All market data endpoints are public — no authentication required for price reads. The API key (RSA-signed, stored in Keychain) is ready for when we want authenticated endpoints (portfolio, trading). For now, read-only is all we need.

Source Count: 7

FRED Macro, RSS News, GPR Index, ORALE Bridge, Google Trends, Credit Spreads, Kalshi Markets. Seven signal sources now live (GDELT available as backup if we ever need it). The roadmap called for Kalshi in Phase 1 — checked off on Day 4. Next up: AAII sentiment (contrarian indicator since 1987).

Everyone has opinions. Few have positions. The gap between what people say and what they'll bet money on is where the real information lives.