# Market Selection Guide

## Overview

Not all prediction markets are created equal. Market type, timing, liquidity, and structure all affect expected value and capital efficiency. This guide covers the major market categories available on Kalshi and Limitless, with heuristics for when and how to trade each.

---

## Market Types

### NBA — Game Winner Markets

NBA game winner markets are among the most liquid prediction markets. Two-way binary outcomes (Team A wins vs. Team B wins) with high volume and competitive spreads. **Higher-first mode is strongly recommended** — basketball scoring is gradual (2-3 points per possession), so favorites tend to maintain leads. Filling the expensive NO side first gives excellent positive time decay.

| Attribute | Detail |
|-----------|--------|
| **Liquidity** | High — especially marquee games |
| **Typical Spread** | 2-5c pre-game, 1-3c live |
| **Strategy** | JOIN is primary; JUMP when queue position degrades pre-game. **Use higher-first mode.** |
| **Higher-First** | Strongly recommended — gradual scoring means favorites hold leads consistently |
| **Best Timing** | Pre-game (2-6 hours before tip). Spreads narrow closer to tip and during live play |
| **Risk** | Live markets move fast — fair value tracking essential to avoid adverse selection |

**Timing Heuristics:**
- **Pre-game (6+ hours)**: Widest spreads, lowest competition. Good for patient JOIN.
- **Pre-game (1-2 hours)**: Volume increases, spreads tighten. Best balance of spread and fill rate.
- **Live (in-game)**: Spreads are tightest but price movement is fastest. Use fair value tracking and pause during momentum runs.
- **Late game (4th quarter, <5 min)**: Market approaches binary — prices near 0 or 100. Reduce size or exit.

### NCAAMB — College Basketball

Similar structure to NBA but with lower liquidity and wider spreads. More markets available due to the sheer number of games, but individual market depth is thinner. **Higher-first mode recommended** — same gradual scoring dynamics as NBA, and upsets are more common so the time decay edge on the favorite side matters even more.

| Attribute | Detail |
|-----------|--------|
| **Liquidity** | Low-Medium — varies heavily by matchup (March Madness >> mid-season) |
| **Typical Spread** | 4-8c pre-game, 2-5c live |
| **Strategy** | JOIN with wider spread tolerance. JUMP sparingly — thin books mean jumps can get stuck. **Use higher-first mode.** |
| **Higher-First** | Recommended — same gradual scoring as NBA, upsets are common so time decay matters |
| **Best Timing** | Pre-game for wider spreads. Tournament games attract more volume. |
| **Risk** | Thin books produce noisy fair value estimates. Be cautious with position sizing. |

### NHL — Hockey Markets

Hockey markets are lower volume with wider spreads. The sport's scoring dynamics (low-scoring, sudden goals) create sharp price movements. **Higher-first mode is useful** — between goals the price is relatively stable, so filling the expensive side first gives positive decay during those quiet stretches. Pause during power plays.

| Attribute | Detail |
|-----------|--------|
| **Liquidity** | Low — niche audience on prediction markets |
| **Typical Spread** | 5-10c pre-game, 3-6c live |
| **Strategy** | JOIN only. Wide spreads mean jumping is rarely necessary. **Higher-first useful.** |
| **Higher-First** | Useful — price is stable between goals, positive decay in quiet stretches |
| **Best Timing** | Pre-game. Live hockey markets are too volatile for comfortable market making. |
| **Risk** | Single goals shift prices significantly. Pause during power plays and overtime. |

### Esports — CS2, Valorant, League of Legends

Esports markets are volatile with wide spreads and inconsistent liquidity. Map-by-map and match winner markets are available. **Higher-first is useful for match-winner (BO3/BO5)** — favorites tend to hold leads across maps, giving time decay between map transitions.

| Attribute | Detail |
|-----------|--------|
| **Liquidity** | Low — spikes during major tournaments (Majors, Worlds, VCT) |
| **Typical Spread** | 6-15c |
| **Strategy** | JOIN with wide spread bounds. Excellent spread capture when it works. **Higher-first useful for match-winner.** |
| **Higher-First** | Useful for BO3/BO5 match-winner markets — favorites hold across maps |
| **Best Timing** | During live matches at major tournaments. Pre-match liquidity is often too thin. |
| **Risk** | Volatile — round-by-round price swings in CS2/Valorant. Map picks and bans cause sudden repricing. |

### Crypto Intervals — BTC/ETH Price Markets

Crypto interval markets are structured as "Will BTC be above $X at time Y?" — perfect for the CDF strategy with Pyth oracle data. **Higher-first can work** when one side of the binary is clearly more probable based on current spot vs strike distance.

| Attribute | Detail |
|-----------|--------|
| **Liquidity** | Medium-High — crypto traders are active on prediction markets |
| **Typical Spread** | 2-6c depending on time to expiry and strike distance |
| **Strategy** | **CDF strategy** with Pyth oracles and CCXT data. EWMA volatility, spread quoting around fair price. **Higher-first optional.** |
| **Higher-First** | Optional — useful when one side is clearly more probable based on spot vs strike |
| **Best Timing** | Continuous — these markets run 24/7. Best edge when volatility spikes but hasn't been priced in yet. |
| **Risk** | Model risk is primary. Wrong vol estimate = wrong fair price = adverse selection. |

**CDF Integration:**
- Fetch spot from Pyth (real-time, on-chain)
- Compute EWMA vol from CCXT historical data
- Quote spread around CDF-derived fair price
- All parameters (vol window, spread width, lambda) set by user at deployment

### Mentions — "Will X Be Mentioned in Y?"

Mentions markets are binary event markets — "Will Taylor Swift be mentioned during the Super Bowl broadcast?" These are pure information/prediction plays with no external price feed.

| Attribute | Detail |
|-----------|--------|
| **Liquidity** | Variable — high for viral/trending topics, near-zero for obscure ones |
| **Typical Spread** | 5-15c |
| **Strategy** | JOIN only. No external data feed means no CDF. Fair value is opinion-based. |
| **Best Timing** | During the event window. Pre-event spreads are widest but fills are slow. |
| **Risk** | Binary event risk — the market resolves 0 or 100 with no warning. Position sizing is critical. |

### Football (NFL, NCAAF) — AVOID for Market Making

**Warning: Football moneyline markets are not recommended for JOIN/JUMP market making.**

Football scoring is highly discontinuous — a single touchdown (7 points) can swing implied probabilities by 20-30c instantly. The odds jump too fast for our current methods to adjust. Unlike basketball where leads build gradually, football has long stretches of no scoring followed by sudden, massive price moves. This creates severe adverse selection risk: the agent's resting orders get picked off by informed traders who react to live play before the agent can update.

| Attribute | Detail |
|-----------|--------|
| **Liquidity** | High — especially NFL primetime, college rivalry games |
| **Typical Spread** | 3-7c pre-game, volatile live |
| **Strategy** | **NOT RECOMMENDED** for JOIN/JUMP. Scoring dynamics are too discontinuous. |
| **Higher-First** | Not applicable — avoid these markets entirely with current methods |
| **Risk** | Extreme — touchdowns cause 20-30c price jumps instantly. Turnovers compound this. |

**Future Speculation:** Gridded rolling averages could potentially work for football. A grid strategy DCA's into positions at multiple price levels, so sudden jumps would fill grid orders that average out the entry price. The grid's natural dollar-cost averaging would help absorb the discontinuous scoring. This is speculative and untested — would require a dedicated grid market making engine with carefully calibrated level spacing.

### Soccer (MLS, Premier League, etc.) — AVOID for Market Making

**Warning: Soccer moneyline markets are not recommended for JOIN/JUMP market making.**

Soccer has similar problems to football but worse — goals are extremely rare (2-3 per match typical), and each goal causes massive probability shifts. A single goal in a 0-0 match can move the line 30-40c. The low-scoring nature means long periods of stagnation followed by violent repricing. Additionally, stoppage time goals and red cards create unpredictable regime changes.

| Attribute | Detail |
|-----------|--------|
| **Liquidity** | Medium — higher for Premier League, lower for MLS |
| **Typical Spread** | 5-12c |
| **Strategy** | **NOT RECOMMENDED** for JOIN/JUMP. Single goals cause extreme repricing. |
| **Higher-First** | Not applicable — avoid these markets entirely with current methods |
| **Risk** | Extreme — goals shift prices 30-40c instantly. Red cards and stoppage time goals are unpredictable. |

**Future Speculation:** Like football, gridded rolling averages could theoretically work by DCA'ing across multiple price levels, but the extreme rarity of goals and the magnitude of each price shift make this even more challenging than football. Would need very wide grid spacing and conservative sizing.

---

## EV Framework for Market Selection

Expected Value (EV) per cycle for a market making agent:

```
EV = (spread * fill_probability * cycles_per_hour) - (adverse_selection_cost + fees)
```

### Key Variables

| Variable | Description | How to Estimate |
|----------|-------------|-----------------|
| **Spread** | Difference between YES bid + NO bid and 100c | Read from orderbook |
| **Fill probability** | Likelihood both sides fill in a cycle | Historical fill rate, queue position |
| **Cycles per hour** | How many complete cycles the agent can run | Depends on market activity and fill speed |
| **Adverse selection cost** | Loss from being on the wrong side of a price move | Fair value tracking, vol estimation |
| **Fees** | Exchange fees per contract | Kalshi: varies; Limitless: gas + protocol fees |

### Market Selection Scoring

When choosing between markets, agents should score each on:

1. **Spread width** (wider = more profit per cycle, but slower fills)
2. **Volume** (higher = faster fills, but tighter spreads and more competition)
3. **Volatility** (moderate is ideal — too low means no fills, too high means adverse selection)
4. **Time to resolution** (longer = more cycles, but more exposure time)
5. **Competition** (fewer competing market makers = better queue position)
6. **Scoring dynamics** (gradual scoring like basketball = safe; discontinuous scoring like football/soccer = dangerous)
7. **Higher-first suitability** (clear favorite = higher-first beneficial; 50/50 markets = simultaneous mode better)

---

## Timing Heuristics

### Pre-Game (Sports)

| Window | Characteristics | Recommendation |
|--------|----------------|----------------|
| 6+ hours | Widest spreads, lowest volume | JOIN, patient accumulation |
| 2-6 hours | Moderate spreads, increasing volume | Best risk/reward window |
| 1-2 hours | Tightening spreads, high volume | Active JOIN, selective JUMP |
| 0-1 hour | Tight spreads, peak volume | Reduce size, prepare for live |

### Live (Sports)

| Phase | Characteristics | Recommendation |
|-------|----------------|----------------|
| Early game | Moderate volatility, good spreads | JOIN with fair value tracking |
| Mid game | Stable periods with event spikes | JOIN, pause during momentum shifts |
| Late game | High volatility, prices approach binary | Reduce size or exit entirely |
| Overtime/extras | Extreme volatility | Pause or exit |

### Crypto Intervals

| Time to Expiry | Characteristics | Recommendation |
|----------------|----------------|----------------|
| 1+ hours | Wide spreads, moderate vol | CDF quoting, normal spread width |
| 15-60 min | Tightening, vol more predictable | CDF quoting, may tighten spread |
| 5-15 min | Spreads narrow, CDF becomes more accurate | Reduce spread width, increase confidence |
| <5 min | Near-binary, CDF very sensitive to spot | Reduce size significantly or exit |

---

## Capital Efficiency

### Position Limits

- **Per-market limit**: Never hold more than X contracts in one market (set at deployment)
- **Per-category limit**: Don't over-concentrate in one sport or market type
- **Total portfolio limit**: Maximum total exposure across all running instances

### Concentration Rules

| Rule | Guideline |
|------|-----------|
| Single market | No more than 20% of total capital |
| Single category (e.g., all NBA) | No more than 50% of total capital |
| Single exchange | No more than 70% of total capital |
| Cash reserve | Always maintain 20%+ uninvested for new opportunities |

### Capital Recycling

- Cycles that complete (both sides fill) free up capital immediately
- Imbalanced positions (one side filled, waiting on the other) tie up capital
- Agents should monitor fill imbalance and pause or JUMP to resolve stuck positions
- `single_fire_mode` is useful for testing new markets without committing continuous capital

---

## Risk Rules

1. **Never chase a market** — if the spread has collapsed below min_spread, let it go
2. **Respect position limits** — hard stops, no exceptions
3. **Pause during known events** — injury reports, breaking news, halftime adjustments
4. **Monitor fair value divergence** — if rolling average diverges >10c from current bid, pause and reassess
5. **Reduce size near resolution** — as markets approach expiry, prices become binary and adverse selection increases
6. **Log everything** — every jump, every pause, every fill for post-trade analysis and syndicate review
