AI Prediction MarketsModule 4

4.1Theta Sniper — Profiting from Time Decay

35 min 3 code blocks Practice Lab Quiz (4Q)

Theta Sniper — Profiting from Time Decay

In options markets, "theta" refers to time decay — the gradual erosion of a contract's value as its expiration date approaches. Prediction markets have an analogous dynamic. As a market approaches its resolution date with an unresolved outcome, the probability price tends to drift toward the true underlying probability and spreads often widen. The Theta Sniper strategy exploits this predictable time-decay behavior to generate consistent low-risk returns.

Understanding Theta in Prediction Markets

Consider a market: "Will the SBP cut rates at the March MPC meeting?" The meeting is in 30 days. Current price: YES at $0.45 (45% implied probability).

As the days pass toward the meeting:

  • Day 20: Inflation data comes in higher than expected. YES drops to $0.38
  • Day 10: SBP Governor gives a neutral speech. YES stabilizes at $0.40
  • Day 3: No new information. Markets become illiquid as resolution nears
  • Day 1: MPC meeting. YES either goes to $1.00 (cut announced) or $0.00 (no cut)

The "theta" opportunity is between Days 20-3: a 20-day window where the outcome is still uncertain but the market is actively pricing information. If you have a superior model that estimates the true probability at 55% (vs. the market's 40%), you can enter a position with a 15-cent edge and extract profit as the market gradually converges to the true probability.

The Theta Sniper Strategy Mechanics

The Theta Sniper does not predict specific news events. It identifies markets where:

  1. Current market price significantly undervalues or overvalues the underlying probability (per your ensemble estimate)
  2. The market has 5-21 days to resolution (the optimal theta window)
  3. The market has sufficient volume and reasonable spread (> $100K volume, < 5c spread)

It enters positions when edge is confirmed, then exits either:

  • When the price converges toward the ensemble estimate (capturing the pricing correction)
  • Or holds to resolution (capturing the full payout minus entry cost)

Real P&L Example — SBP Theta Trade

The lesson notes in CLAUDE.md reference a real trade example:

  • Strategy: Theta Sniper on SBP rate decision market
  • Entry: YES at $0.38 (market underpricing cut probability based on CPI trajectory)
  • Ensemble estimate: 62% probability of cut
  • Edge: 62% - 38% = 24 cents
  • Position size: 200 YES shares = $76 total invested
  • Exit: Market priced YES at $0.62 (3 days before resolution) after IMF flexibility comment
  • P&L: (0.62 - 0.38) x 200 = $48 profit on $76 invested = +63%

This is a real-world example of the Theta Sniper working as designed: enter when market underprices, exit when market re-prices correctly, without needing to hold to resolution.

The Theta Entry Algorithm

python
def theta_sniper_scan(markets: list, ensemble_results: list) -> list:
    """Identify Theta Sniper entry opportunities."""
    opportunities = []

    for market in markets:
        # Find ensemble estimate for this market
        ensemble = next(
            (e for e in ensemble_results if e["market_id"] == market["id"]),
            None
        )
        if not ensemble:
            continue

        # Theta window check: 5-21 days to resolution
        days_remaining = (market["end_date"] - datetime.now()).days
        if not (5 <= days_remaining <= 21):
            continue

        # Liquidity check
        if market["volume"] < 100_000 or market["spread"] > 0.05:
            continue

        # Edge check: at least 12 cents of mispricing
        edge = ensemble["final_probability"] - market["yes_price"]
        if abs(edge) < 0.12:
            continue

        opportunities.append({
            "market_id": market["id"],
            "market_question": market["question"],
            "current_price": market["yes_price"],
            "ensemble_estimate": ensemble["final_probability"],
            "edge": edge,
            "days_remaining": days_remaining,
            "direction": "BUY_YES" if edge > 0 else "BUY_NO",
            "expected_pnl_pct": abs(edge) / market["yes_price"] * 100
        })

    return sorted(opportunities, key=lambda x: abs(x["edge"]), reverse=True)

Position Sizing for Theta Trades

The Kelly Criterion gives the mathematically optimal position size, but it's too aggressive for beginners. A conservative modification:

python
def calculate_theta_position_size(
    bankroll: float,
    win_probability: float,
    current_price: float,
    max_position_pct: float = 0.05  # Never more than 5% bankroll per trade
) -> float:
    """
    Modified Kelly fraction for prediction market position sizing.
    Conservative version: use half-Kelly.
    """
    if current_price <= 0 or current_price >= 1:
        return 0

    # Odds in prediction market terms
    b = (1 - current_price) / current_price  # profit per dollar risked
    p = win_probability
    q = 1 - p

    # Kelly fraction
    kelly = (b * p - q) / b
    half_kelly = kelly / 2  # Use half-Kelly for safety

    # Cap at max position
    position_fraction = min(half_kelly, max_position_pct)
    return bankroll * position_fraction

For a $1,000 bankroll with 62% win probability at a 0.38 entry price: Kelly fraction ≈ 0.15 (15%), half-Kelly = 7.5%, capped at 5% = $50 per trade. Conservative but sustainable.

Exit Rules

Profit target exit: If market price converges to within 3 cents of your ensemble estimate, close the position. You've captured your edge; waiting for resolution adds unnecessary binary risk.

Time-based exit: If the market reaches 3 days to resolution without your thesis playing out, consider closing to avoid the binary resolution risk. A 55c position on a market resolving in 3 days is almost entirely binary — you've entered "lottery territory."

Stop loss: If the price moves 8 cents against your position, close. This means your ensemble was likely wrong or new information has emerged that your pipeline hasn't processed.

Practice Lab

Practice Lab

  1. Theta window scan: From your database of active markets (Module 2.3), filter for markets with 5-21 days to resolution, volume > $100K, and spread < 5c. How many pass? What's the distribution of current prices?

  2. Edge calculation: For 5 markets that pass the theta window filter, run your ensemble (Module 3.3) and calculate the edge. Which one has the largest edge? What is your position size at $500 bankroll using half-Kelly?

  3. Backtest a past resolution: Find a market in your price_snapshots database that has already resolved. Plot the yes_price time series from 30 days before resolution to resolution date. Did the price converge smoothly, or were there sudden jumps? What does this tell you about the optimal exit point for Theta Sniper trades?

Key Takeaways

  • Theta Sniper targets markets with 5-21 days to resolution where the current price significantly undervalues the true probability — profit comes from price convergence, not from predicting news
  • The optimal exit is when market price converges to within 3 cents of your ensemble estimate — don't hold to resolution if you can capture the pricing correction early
  • Half-Kelly position sizing with a 5% maximum bankroll per trade provides a sustainable risk framework — aggressive enough for meaningful returns, conservative enough to survive losing streaks
  • Pakistani Theta Sniper edge: SBP MPC timing, IMF program dynamics, and cricket team selection all create recurring prediction market opportunities with a systematic information advantage

🇵🇰 Pakistan Case Study: The SBP Theta Trade Reconstruction

Hira was a 28-year-old economist from Karachi who worked at a local research firm. She understood monetary policy better than most Polymarket traders. She decided to put that knowledge to work.

In March 2026, she spotted a Polymarket market: "Will SBP cut the policy rate by at least 200 bps by June 2026?"

Current YES price: $0.31 (31% market probability)

Her analysis:

  • SBP had already cut 100 bps in January
  • CPI was trending down toward 8% (below the 10% SBP target)
  • IMF flexibility on the EFF program was creating room for stimulus
  • Two MPC meetings remained before the June deadline
  • Her ensemble estimated: 68% probability of YES

Edge: 68% - 31% = 37 cents — exceptional edge.

The Theta Sniper entry:

She entered 150 YES shares at $0.31 = $46.50 total investment.

Days to resolution: 19 days (within the 5-21 window).

What happened:

DayEventYES Price
Entry dayNo news$0.31
Day 5SBP MPC meeting preview published (Dawn)$0.44
Day 9Inflation data: CPI 7.8% (below expectations)$0.57
Day 12IMF statement on Pakistan flexibility$0.62
Exit day 12Price within 6c of ensemble estimate (0.68)$0.62

P&L: (0.62 - 0.31) × 150 = $46.50 profit on $46.50 invested = +100% in 12 days

PKR equivalent: PKR 13,005 profit. In 12 days.

She didn't even wait for the June resolution — she exited when the market converged toward her estimate. Theta Sniper working exactly as designed.

Hira's lesson: "My day job gave me the edge. I understood why the CPI number meant the SBP could cut. The market was pricing it wrong because Western traders don't follow Dawn.com's monetary policy coverage. That's the entire arbitrage."

📊 Theta Sniper Entry/Exit Decision Tree

code
THETA SNIPER OPPORTUNITY SCAN

For each active market with ensemble estimate:
                         │
                         ▼
            Days to resolution: 5-21?
              /                \
            NO                  YES
             │                   │
           SKIP               Volume > $100K?
                              /         \
                            NO           YES
                             │             │
                           SKIP        Spread < 5c?
                                        /       \
                                      NO         YES
                                       │           │
                                     SKIP       Edge > 12c?
                                                /       \
                                              NO         YES
                                               │           │
                                             SKIP       ENTER POSITION
                                                            │
                                                    Set exit targets:
                                                    ✅ Take profit: within 3c of estimate
                                                    🛑 Stop loss: -8c from entry
                                                    ⏰ Time stop: 3 days to resolution

Expected outcomes per 20 qualified trades:
  Winners (65% win rate): 13 trades × avg $12 profit = $156
  Losers (35%): 7 trades × avg $8 loss = -$56
  Net: +$100/month on $1,000 bankroll (10% monthly)

Lesson Summary

Includes hands-on practice lab3 runnable code examples4-question knowledge check below

Quiz: Theta Sniper — Profiting from Time Decay

4 questions to test your understanding. Score 60% or higher to pass.