skills/velcrafting/codex-skills/prediction-arbitrage-scout

prediction-arbitrage-scout

SKILL.md

Prediction Arbitrage Scout (Polymarket ↔ Kalshi)

Read-only scouting tool that identifies potential price discrepancies between Polymarket and Kalshi prediction markets.

Purpose

Surface candidate markets where pricing diverges across Polymarket and Kalshi.
This skill is intended for discovery, research, and prioritization, not automated trading or execution.

Non-Goals

  • No trade execution
  • No guarantees of profitability
  • No slippage, depth, or liquidity modeling
  • No position sizing or risk management

Outputs from this skill must be validated against Kalshi orderbooks and market rules before any action.

Overview

Workflow:

  1. Fetch current public market prices from Polymarket
  2. Fetch open public markets from Kalshi
  3. Match events using fuzzy string similarity
  4. Compute theoretical price discrepancies after basic fees
  5. Generate CSV and Markdown reports for review

Results are ranked by headline price discrepancy, not tradable edge.

Prerequisites

Tools:

  • Read
  • Write
  • Bash (python)
  • Glob
  • Grep
  • WebFetch

Environment:

  • Python 3.x

Packages:

  • requests
  • pandas

Install: pip install requests pandas

Instructions

Step 1: Fetch Polymarket Data Command: python {baseDir}/scripts/fetch_polymarket.py

Output:

  • polymarket_data.json

Step 2: Fetch Kalshi Data Command: python {baseDir}/scripts/fetch_kalshi.py

Output:

  • kalshi_data.json

Step 3: Detect Price Discrepancies Command: python {baseDir}/scripts/detect_arbitrage.py

Notes:

  • Uses fuzzy string similarity (default threshold: 0.7)
  • Compares YES/NO prices across platforms
  • Estimates theoretical spread after basic fees

Output:

  • arbitrage_opportunities.csv

Step 4: Generate Summary Report Command: python {baseDir}/scripts/generate_report.py

Output:

  • arbitrage_report.md

Outputs

  • polymarket_data.json: Raw Polymarket market data
  • kalshi_data.json: Raw Kalshi market data
  • arbitrage_opportunities.csv: Ranked discrepancy list
  • arbitrage_report.md: Summary report for review

Error Handling

Polymarket API Error:

  • Verify Polymarket API availability
  • Retry after a short delay

Kalshi API Error:

  • Verify public endpoint availability
  • Some endpoints may require auth; this skill uses public data only

No Matching Events Found:

  • Increase fuzzy match threshold
  • Manually map high-value series

Insufficient Price Data:

  • Ensure both YES and NO prices exist on both platforms

Interpretation Guidance

  • Treat all outputs as signals, not decisions
  • Validate market resolution rules
  • Check liquidity and orderbook depth
  • Consider timing and volatility
  • Prefer manually mapped events over fuzzy matches for action

Resources

  • Polymarket fetcher: {baseDir}/scripts/fetch_polymarket.py
  • Kalshi fetcher: {baseDir}/scripts/fetch_kalshi.py
  • Discrepancy analyzer: {baseDir}/scripts/detect_arbitrage.py
  • Report generator: {baseDir}/scripts/generate_report.py

Usage

Run the full scouting pipeline: python {baseDir}/scripts/fetch_polymarket.py python {baseDir}/scripts/fetch_kalshi.py python {baseDir}/scripts/detect_arbitrage.py python {baseDir}/scripts/generate_report.py

This skill may be invoked to execute the full workflow automatically.

Weekly Installs
41
GitHub Stars
1
First Seen
Jan 24, 2026
Installed on
gemini-cli30
codex30
opencode30
openclaw28
cursor26
github-copilot26