Prediction Markets Aggregation
The Markets page aggregates real-time probabilities from two major prediction markets: Manifold Markets (community-driven) and Kalshi (real-money exchange). This provides a live, crowd-sourced forecast updated automatically as new trades occur.
Overall Weighting: 40% Manifold + 60% Kalshi
Manifold Markets (40% weight):
- Community prediction market using play money
- Lower barrier to entry, broader participation
- Captures general consensus and casual forecasters
- Uses an Automated Market Maker (AMM) for price discovery
- Good for long-term sentiment, less susceptible to short-term noise
Kalshi (60% weight):
- Real-money exchange with cash-settled contracts
- Higher barrier to entry, attracts serious forecasters with skin in the game
- Reflects genuine conviction (money is at risk)
- Traditional order book exchange (bid/ask spread pricing)
Kalshi Component Breakdown (60% total weight)
Within Kalshi's 60% weight, we use three price signals:
1. Last Price (42% overall = 70% of Kalshi's 60%)
- The most recent completed trade price
- Reflects real money execution and recent market sentiment
- Given highest weight because it shows actual conviction backed by capital
- Most responsive to new information and recent trades
2. Midpoint (12% overall = 20% of Kalshi's 60%)
- Average of the current best bid and best ask prices: (bid + ask) / 2
- Represents the fair value between buyers and sellers right now
- Includes current order book state but not yet executed
- Smooths out last trade anomalies or outliers
3. Liquidity-Weighted Price (6% overall = 10% of Kalshi's 60%)
- Purpose: Captures buying vs selling pressure by analyzing where the last trade occurred within the bid-ask spread
- Why only Kalshi? Kalshi uses a traditional order book exchange where buyers and sellers post bids and asks. Manifold uses an Automated Market Maker (AMM) that algorithmically sets prices, so order book analysis doesn't apply
- How it works: Calculate position in spread = (Last Price - Bid) / (Ask - Bid). Position of 0.0 = traded at bid (sellers aggressive), 0.5 = at midpoint (balanced), 1.0 = at ask (buyers aggressive)
- Spread dampening: Wider spreads reduce the adjustment because they indicate less confidence. At 0pp spread: factor = 1.0 (full shift potential). At 10pp spread: factor = 0.2 (heavily dampened)
- Example: Bid=60, Ask=68, Last=66, Mid=64, Spread=8. Position = (66-60)/8 = 0.75 (near ask). Offset = 0.75 - 0.5 = +0.25. Dampening = 1 - (8/10)×0.8 = 0.36. Shift = 0.25 × 6 × 0.36 = +0.54pp. Result = 64 + 0.54 = 64.5% (buyers showed aggression)
- Caps shift at ±3 percentage points to avoid overreaction
The Complete Formula
Aggregate Probability = (0.40 × Manifold) + (0.42 × Kalshi Last Price) + (0.12 × Kalshi Midpoint) + (0.06 × Kalshi Liquidity-Weighted)
Soft Normalization (30% Strength)
Final probabilities are lightly normalized to prevent excessive drift while preserving raw market values:
- Candidates with no Kalshi market (marked with *) use 100% of their Manifold probability
- Only 30% of the normalization adjustment is applied to each candidate
- 70% of the raw aggregated value is preserved
- This keeps top candidates higher while preventing probabilities from summing to unrealistic totals
Update Frequency
- Default: Every 3 minutes
- Final 3 days before election: Every 1 minute
- Election day: Every 1 minute
Historical snapshots are saved with every update and aggregated hourly for clean trend visualization.