Case Study 1: Building a Diversified Prediction Market Portfolio

Overview

This case study walks through the complete process of constructing, optimizing, and stress-testing a portfolio of 50 prediction market positions. We begin with a universe of opportunities across six event categories on three platforms, estimate correlations using structural analysis, apply portfolio Kelly optimization, enforce practical risk limits, run Monte Carlo simulations to estimate the return distribution, and perform stress tests. The goal is to demonstrate how the chapter's theoretical tools work together in practice and to illustrate the critical decisions a real portfolio manager faces.

Starting Conditions

Trader profile: - Total available capital: $50,000 - Trading capital (60%): $30,000 - Reserve capital (25%): $12,500 - Emergency fund (15%): $7,500 - Risk tolerance: Moderate (half-Kelly, 4% individual cap, 70% max deployment) - Time horizon: 3 months (one "season" of active trading)

Platforms used: - Platform A (Polymarket-style, crypto-settled): Up to 40% of trading capital - Platform B (Kalshi-style, USD-settled): Up to 40% of trading capital - Platform C (smaller exchange): Up to 25% of trading capital

The Opportunity Universe

The trader has identified 50 opportunities across six categories. Here is a representative sample showing the full diversity of the portfolio:

Political Markets (12 positions)

ID Market Platform True Prob Price Edge Category
P1 Senate Race: State A A 0.62 0.55 +0.07 Politics-Senate
P2 Senate Race: State B A 0.58 0.52 +0.06 Politics-Senate
P3 Senate Race: State C B 0.55 0.50 +0.05 Politics-Senate
P4 Senate Race: State D B 0.48 0.42 +0.06 Politics-Senate
P5 Governor Race: State E A 0.60 0.53 +0.07 Politics-Gov
P6 Governor Race: State F B 0.52 0.45 +0.07 Politics-Gov
P7 Policy: Bill X passes C 0.40 0.32 +0.08 Politics-Policy
P8 Policy: Bill Y passes C 0.55 0.48 +0.07 Politics-Policy
P9 Approval rating > 45% A 0.65 0.58 +0.07 Politics-Approval
P10 Cabinet resignation by Q2 B 0.25 0.18 +0.07 Politics-Personnel
P11 UN Resolution passes C 0.50 0.43 +0.07 Politics-Intl
P12 Treaty ratified by Dec B 0.35 0.28 +0.07 Politics-Intl

Economic Markets (10 positions)

ID Market Platform True Prob Price Edge Category
E1 GDP growth > 2.5% Q3 B 0.55 0.48 +0.07 Econ-GDP
E2 Unemployment < 4.0% Oct B 0.60 0.52 +0.08 Econ-Jobs
E3 CPI > 3.0% Sep A 0.45 0.38 +0.07 Econ-Inflation
E4 Fed rate cut by Dec A 0.50 0.42 +0.08 Econ-Fed
E5 S&P 500 > 5000 by Q4 A 0.58 0.50 +0.08 Econ-Markets
E6 Oil > $90/barrel Oct C 0.35 0.28 +0.07 Econ-Commodities
E7 Housing starts > 1.5M B 0.42 0.35 +0.07 Econ-Housing
E8 Retail sales growth > 3% B 0.50 0.44 +0.06 Econ-Consumer
E9 10Y Treasury yield > 4.5% A 0.40 0.33 +0.07 Econ-Rates
E10 Consumer confidence > 110 C 0.48 0.41 +0.07 Econ-Consumer

Sports Markets (10 positions)

ID Market Platform True Prob Price Edge Category
S1 Team A wins championship A 0.30 0.22 +0.08 Sports-Baseball
S2 Team B makes playoffs A 0.65 0.58 +0.07 Sports-Baseball
S3 Player C wins MVP B 0.20 0.14 +0.06 Sports-Baseball
S4 Team D wins division A 0.55 0.48 +0.07 Sports-Football
S5 Team E over 10.5 wins B 0.60 0.52 +0.08 Sports-Football
S6 Team F makes Final Four C 0.25 0.18 +0.07 Sports-Basketball
S7 Player G scores 30+ ppg A 0.35 0.28 +0.07 Sports-Basketball
S8 Team H wins league B 0.40 0.33 +0.07 Sports-Soccer
S9 Grand Slam winner: X A 0.15 0.10 +0.05 Sports-Tennis
S10 Fight outcome: Fighter Y C 0.55 0.48 +0.07 Sports-Combat

Entertainment Markets (8 positions)

ID Market Platform True Prob Price Edge Category
N1 Film X wins Best Picture A 0.30 0.22 +0.08 Ent-Oscars
N2 Album Y goes platinum B 0.45 0.38 +0.07 Ent-Music
N3 Show Z renewed for S3 A 0.70 0.62 +0.08 Ent-TV
N4 Opening weekend > $100M A 0.55 0.48 +0.07 Ent-BoxOffice
N5 Celebrity couple split C 0.20 0.14 +0.06 Ent-Celebrity
N6 Game W sells > 10M copies B 0.50 0.43 +0.07 Ent-Gaming
N7 Book V on NYT list 10+ weeks B 0.35 0.28 +0.07 Ent-Publishing
N8 Streaming platform hits 300M subs A 0.40 0.33 +0.07 Ent-Tech

Science & Technology Markets (6 positions)

ID Market Platform True Prob Price Edge Category
T1 SpaceX launch success (mission X) A 0.92 0.85 +0.07 Tech-Space
T2 FDA approves drug Y B 0.45 0.38 +0.07 Tech-Pharma
T3 AI model beats benchmark Z A 0.60 0.52 +0.08 Tech-AI
T4 Fusion milestone achieved C 0.15 0.09 +0.06 Tech-Energy
T5 Chip shortage resolved by Q4 B 0.55 0.48 +0.07 Tech-Semicon
T6 Self-driving taxi approved in city X A 0.35 0.28 +0.07 Tech-Auto

Weather & Climate Markets (4 positions)

ID Market Platform True Prob Price Edge Category
W1 Hurricane Cat 4+ before Nov B 0.60 0.52 +0.08 Weather-Hurricane
W2 Record high temp in city Y A 0.40 0.33 +0.07 Weather-Temp
W3 Snowfall above average in city Z C 0.50 0.43 +0.07 Weather-Snow
W4 Wildfire season above median B 0.55 0.48 +0.07 Weather-Fire

Step 1: Correlation Structure Estimation

Approach

Since historical data for these one-time events is unavailable, we estimate correlations using structural analysis. We assign correlation values based on category relationships and shared causal drivers.

Intra-Category Correlations

Category Pair Estimated $\rho$ Rationale
Senate races (same party effect) 0.50 National political environment affects all Senate races in the same direction
Senate vs Governor (same cycle) 0.30 Shared state-level political dynamics but different race dynamics
Policy bills vs Approval 0.25 Presidential approval influences legislative success
GDP vs Unemployment 0.40 Strong macroeconomic linkage
GDP vs Fed rate decision 0.30 GDP influences Fed decisions
Inflation vs Fed rate 0.45 Inflation is a primary Fed input
S&P 500 vs GDP 0.25 Markets reflect economic conditions with noise
Baseball teams (same league) 0.15 Shared league conditions, scheduling
Football teams (different conf.) 0.05 Nearly independent
Weather events (same season) 0.20 Shared climate patterns

Inter-Category Correlations

Category Pair Estimated $\rho$ Rationale
Politics vs Economics 0.15 Some linkage through economic conditions affecting elections
Politics vs Sports 0.00 No meaningful connection
Politics vs Entertainment 0.00 No meaningful connection
Economics vs Sports 0.00 No meaningful connection
Economics vs Weather 0.05 Weather can affect economic output marginally
Sports vs Entertainment 0.05 Shared cultural attention but largely independent
Technology vs Economics 0.10 Tech sector affects economic indicators

Building the 50x50 Correlation Matrix

Using these structural estimates, we construct the full correlation matrix. The matrix is block-diagonal with intra-category blocks having elevated correlations and inter-category blocks having near-zero correlations. We ensure the matrix is positive semi-definite by computing the nearest valid correlation matrix using the alternating projections method when needed.

The resulting matrix has: - Average pairwise correlation: 0.06 - Maximum off-diagonal correlation: 0.50 (between Senate races P1-P4) - Minimum off-diagonal correlation: 0.00 (between unrelated categories) - Effective rank: 38 (indicating substantial independent variation)


Step 2: Portfolio Kelly Optimization

Configuration

  • Fractional Kelly: 50% (half-Kelly)
  • Individual position cap: 4% of trading capital
  • Samples for optimization: 50,000

Optimization Results

Running the portfolio Kelly optimizer with the 50 opportunities, correlation matrix, and half-Kelly setting produces the following allocation (top 15 positions shown, sorted by allocation):

Rank Market Raw Kelly Half-Kelly After Caps Dollar Amount
1 E2 (Unemployment) 0.064 0.032 0.032 $960
2 E4 (Fed rate cut) 0.062 0.031 0.031 $930
3 T3 (AI benchmark) 0.060 0.030 0.030 $900
4 W1 (Hurricane) 0.058 0.029 0.029 $870
5 E5 (S&P 500) 0.056 0.028 0.028 $840
6 N3 (TV Show renewed) 0.054 0.027 0.027 $810
7 S5 (Football wins) 0.053 0.027 0.027 $810
8 N1 (Best Picture) 0.052 0.026 0.026 $780
9 S1 (Championship) 0.051 0.026 0.026 $780
10 P1 (Senate Race A) 0.050 0.025 0.025 $750
11 P7 (Bill X) 0.048 0.024 0.024 $720
12 T1 (SpaceX) 0.045 0.023 0.023 $690
13 S4 (Football div.) 0.044 0.022 0.022 $660
14 W4 (Wildfire) 0.043 0.022 0.022 $660
15 P5 (Governor Race E) 0.042 0.021 0.021 $630

Key observations from optimization: - The four correlated Senate races (P1-P4) received significantly reduced allocations compared to their individual Kelly sizes. P1 alone would justify a 5% half-Kelly allocation, but with the three correlated races, it received only 2.5%. - Economic positions E2 and E4 rank highest despite similar edge to political markets because they are less correlated with other positions in the portfolio. - Entertainment and weather positions receive disproportionately high allocations relative to their edge because they provide diversification with near-zero correlation to the rest of the portfolio. - Technology position T1 (SpaceX launch at 92% probability) has a relatively small allocation despite high edge because the payout per unit risked is low (buying at $0.85 for a $0.15 potential profit).


Step 3: Applying Position Sizing Constraints

Constraint Application Pipeline

Step 3a: Individual Position Caps (4%)

No positions exceeded the 4% cap after half-Kelly sizing, so no adjustments needed at this step.

Step 3b: Correlated Group Caps (12% per group)

Group Total Before Cap Total After Action
Politics-Senate (P1-P4) 8.2% 12% 8.2% No change
Economics-Macro (E1-E4) 10.5% 12% 10.5% No change
Sports-Baseball (S1-S3) 5.8% 12% 5.8% No change
All Politics combined 18.9% 20% 18.9% No change
All Economics combined 21.4% 20% 20.0% Scaled by 0.934

The Economics group slightly exceeded the 20% combined category cap, so all economic positions were scaled down by a factor of 0.934.

Step 3c: Platform Caps (40% for A and B, 25% for C)

Platform Total Before Cap Total After Action
Platform A (20 positions) 31.2% 40% 31.2% No change
Platform B (19 positions) 28.5% 40% 28.5% No change
Platform C (11 positions) 12.4% 25% 12.4% No change

All platforms are within limits.

Step 3d: Aggregate Deployment Cap (70%)

Total allocation after all constraints: 72.1%

This exceeds the 70% cap by 2.1 percentage points. All positions are scaled proportionally by $0.70 / 0.721 = 0.971$.

Final Portfolio Allocation

Metric Value
Number of positions 50
Total allocation 70.0% of trading capital
Dollars deployed $21,000
Dollars in reserve $9,000 (trading) + $12,500 (reserve tier)
Average position size 1.4% ($420)
Largest position 3.1% ($930)
Smallest position 0.5% ($150)
Effective number of bets 41.3 (high diversification)

Category Allocation Breakdown

Category Allocation # Positions
Politics 18.1% 12
Economics 19.4% 10
Sports 13.8% 10
Entertainment 10.2% 8
Science/Tech 5.7% 6
Weather/Climate 2.8% 4

Step 4: Monte Carlo Simulation

Single-Round Simulation (All 50 bets resolve once)

We run 100,000 Monte Carlo simulations of all 50 positions resolving simultaneously, using the correlated binary outcome model.

Return Distribution:

Statistic Value
Mean return +4.82%
Median return +5.14%
Standard deviation 7.93%
Minimum return (worst sim) -28.4%
Maximum return (best sim) +35.1%
Skewness -0.31

Probability Analysis:

Outcome Probability
P(profit) 73.1%
P(return > 10%) 24.8%
P(return > 20%) 3.2%
P(loss) 26.9%
P(loss > 5%) 12.4%
P(loss > 10%) 4.1%
P(loss > 15%) 1.0%
P(loss > 20%) 0.18%
P(loss > 25%) 0.02%

Risk Metrics:

Metric Value
VaR (95%) 8.7%
VaR (99%) 14.2%
CVaR (95%) 11.8%
CVaR (99%) 17.6%
Sharpe Ratio 0.61
Sortino Ratio 0.89

Sequential Simulation (12 weekly rounds)

To model the three-month trading horizon, we simulate 12 rounds of the portfolio resolving and being re-entered. Each round, resolved positions are replaced with new opportunities of similar quality, maintaining the same portfolio structure.

Running 20,000 path simulations over 12 rounds:

Bankroll Path Statistics:

Statistic Value
Median final bankroll $34,887 (1.163x)
Mean final bankroll $35,412 (1.180x)
P(profit after 12 rounds) 89.3%
P(bankroll > 1.5x start) 18.7%
P(bankroll doubles) 1.4%
P(bankroll < 0.9x start) 4.2%
P(bankroll < 0.8x start) 0.8%
P(bankroll < 0.5x start) < 0.01%

Drawdown Statistics (across all paths):

Statistic Value
Mean max drawdown 8.9%
Median max drawdown 7.6%
95th percentile max drawdown 18.2%
99th percentile max drawdown 23.7%
Worst max drawdown (any path) 34.1%

Interpretation

The Monte Carlo results are encouraging. The portfolio has a 73% chance of profit on any single round and an 89% chance of being profitable after the full 12-round season. The 95% VaR of 8.7% means that in the vast majority of rounds, the worst-case loss is under 9% of deployed capital.

The sequential simulation shows that the median drawdown over the season is only 7.6%, well within the "Normal" threshold of 10% that would not trigger any position scaling. Only about 5% of paths experience drawdowns exceeding 18%, which would trigger the "Serious" response of halving position sizes.

The risk of ruin (bankroll below 50% of starting value) is negligible at less than 0.01% over the 12-round horizon. This confirms that the half-Kelly sizing with 70% deployment creates a robust portfolio.


Step 5: Stress Testing

Scenario 1: Correlation Spike to 0.50

We re-run the simulation with all pairwise correlations set to 0.50, simulating a crisis where "everything is correlated."

Metric Base Case Stressed Change
Mean return +4.82% +4.82% 0.00%
Volatility 7.93% 14.21% +79%
VaR (95%) 8.7% 16.9% +94%
CVaR (95%) 11.8% 21.3% +81%
P(loss > 10%) 4.1% 15.8% +285%
P(loss > 20%) 0.18% 4.7% +2511%
Sharpe Ratio 0.61 0.34 -44%

Interpretation: The expected return stays the same (correlation does not affect expected return), but risk nearly doubles. The probability of a loss exceeding 20% jumps from negligible to nearly 5%. This stress test reveals the portfolio's dependence on correlation assumptions.

Scenario 2: Edge Halved (50% of estimated edge)

We re-run assuming true probabilities are midway between our estimates and market prices.

Metric Base Case Stressed Change
Mean return +4.82% +1.94% -60%
P(profit) 73.1% 59.8% -18%
P(loss > 10%) 4.1% 8.3% +102%
Sharpe Ratio 0.61 0.24 -61%

Interpretation: With halved edge, the portfolio remains profitable in expectation but the probability of profit drops to 60%. If the trader's edges are genuinely half of what they believe, the strategy still works but is marginal. This underscores the importance of accurate probability estimation.

Scenario 3: Political Category Wipeout

All 12 political positions lose simultaneously (a scenario resembling a major political surprise).

Metric Value
Political allocation 18.1%
Loss from wipeout 18.1% of deployed capital
Loss vs total trading capital 12.7%
Remaining bankroll $26,190
Status "Serious" drawdown trigger

Interpretation: A complete political wipeout is painful but survivable. The 12.7% loss triggers the "Serious" drawdown level, halving position sizes going forward. Combined with reserve capital, the trader can continue operating.

Scenario 4: Platform A Failure

Platform A, holding 31.2% of deployed capital, becomes insolvent.

Metric Value
Capital on Platform A $6,552
Loss vs trading capital 21.8%
Loss vs total capital 13.1%
Remaining tradeable capital $23,448 + $12,500 reserve
Status "Serious" drawdown trigger

Interpretation: Losing the largest platform is a significant blow but does not threaten survival. The trader can redeploy reserve capital and continue trading on Platforms B and C while the Platform A situation resolves.

Scenario 5: Combined Adverse (Correlation Spike + Edge Halved)

The worst realistic scenario: correlations spike AND the trader's edge is overstated.

Metric Value
Mean return +1.94%
Volatility 14.21%
VaR (95%) 19.4%
CVaR (95%) 25.8%
P(loss > 10%) 22.1%
P(loss > 20%) 9.3%
Sharpe Ratio 0.14

Interpretation: Even in this severe combined stress scenario, the expected return remains positive and the probability of catastrophic loss (>25%) is under 10%. The portfolio survives, though it would trigger significant position reductions.


Step 6: Diversification Analysis

Diversification Ratio

$$\text{DR} = \frac{\sum w_i \sigma_i}{\sigma_p} = \frac{0.1084}{0.0558} = 1.94$$

A diversification ratio of 1.94 means the portfolio's volatility is approximately half of what it would be if all positions were perfectly correlated. This represents strong diversification benefit.

Marginal Contribution to Risk (Top 5)

Position Weight MCTR % of Total Risk
P1 (Senate Race A) 2.5% 0.0031 5.6%
E2 (Unemployment) 3.1% 0.0029 5.2%
P2 (Senate Race B) 2.2% 0.0027 4.8%
E4 (Fed rate cut) 3.0% 0.0026 4.7%
E1 (GDP growth) 2.1% 0.0024 4.3%

The top risk contributors are concentrated in political and economic markets, which have the highest intra-category correlations. No single position contributes more than 6% of total risk, indicating good risk balance.

Effective Number of Bets

$$\text{ENB} = \frac{1}{\sum w_i^2} = \frac{1}{0.0242} = 41.3$$

Out of 50 positions, the effective number of independent bets is 41.3. This is excellent. It means the portfolio is well-balanced and not dominated by a few large positions.


Conclusions and Lessons Learned

Lesson 1: The Correlation Tax on Concentrated Categories

The four Senate races each had strong individual edges (5-7 cents), but after accounting for their 0.50 intra-group correlation, the portfolio Kelly optimizer allocated less to each than their standalone Kelly fractions would suggest. The combined allocation to all four Senate races (8.2%) was less than what two uncorrelated bets of similar edge would receive. This is the "correlation tax": correlated positions dilute each other's portfolio value.

Lesson 2: Low-Correlation Mediocre Bets Can Beat High-Edge Correlated Bets

Entertainment positions N5 (Celebrity couple split, edge +0.06) and N7 (Book on NYT list, edge +0.07) received similar portfolio allocations to Senate Race P2 (edge +0.06) despite lower individual edges. The reason: zero correlation with everything else makes them more valuable to the portfolio as a whole.

Lesson 3: Stress Tests Reveal Hidden Fragility

The base-case simulation painted a rosy picture: 73% probability of profit, negligible ruin risk. But the combined stress scenario (correlation spike + edge halved) revealed that a 20%+ loss has a 9.3% probability. This is within the realm of plausible experience over a multi-season career. Knowing this in advance allows the trader to prepare psychologically and financially.

Lesson 4: Reserve Capital Is Not Wasted Capital

The trader deployed only $21,000 of their $50,000 total capital. The remaining $29,000 might seem unproductive, but it serves three critical functions: (1) it reduces effective risk to sustainable levels, (2) it provides deployment capacity for new opportunities, and (3) it ensures survival through any single-round adverse outcome.

Lesson 5: Diversification Is the Only Free Lunch

The diversification ratio of 1.94 means the portfolio achieved nearly twice the risk reduction of its individual positions through the simple act of combining uncorrelated bets. No amount of analytical sophistication can substitute for this structural benefit. A trader with 50 uncorrelated 5-cent-edge bets is in a far better position than a trader with 5 uncorrelated 10-cent-edge bets, even though the total expected return may be similar.


The complete Python code for this case study, including portfolio construction, Monte Carlo simulation, and stress testing, is available in code/case-study-code.py.