Agent skill · data analytics · machina-sports

betting

Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement. Pure computation, no API calls. Works with odds from any source: ESPN (American odds), Polymarket (decimal probabilities), Kalshi (integer probabilities). Use when: user asks about bet sizing, expected value, edge analysis, Kelly criterion, arbitrage, parlays, line movement, odds conversion, or comparing odds across sources. Also use when you have odds from ESPN and a prediction market price and want to evaluate whether a bet has positive expected value. Don't use when: user asks for live odds or market data — use polymarket, kalshi, or the sport-specific skill to fetch odds first, then use this skill to analyze them.

Why this skill is useful

Adds specific algorithms for betting analysis that the AI wouldn't reliably generate on its own, such as edge detection and arbitrage calculations.

What it needs

About 4k tokens when loaded. Last updated 2026-08-06. 201 stars on the source repository.

What this skill does

Betting Analysis Before writing queries, consult references/api-reference.md for odds formats, command parameters, and key concepts. Quick Start Python SDK: CRITICAL: Before Any Analysis CRITICAL: Before calling any analysis command, verify: Odds format is correctly identified (american, decimal, or probability). ESPN odds are de-vigged with devig before computing edge vs prediction market prices. This module computes — it does not fetch. Obtain odds from sport-specific skills or polymarket/kalshi first. Workflows Compare ESPN vs Polymarket/Kalshi 1. Get ESPN moneyline odds (e.g., from nba getscoreboard): Home: -150, Away: +130 2. Get Polymarket/Kalshi price for the same outcome (e.g., home at 0.52) 3. De-vig: devig --odds=-150,+130 --format=american → Fair: Home 57.9%, Away 42.1% 4. Compare: findedge --fairprob=0.579 --marketprob=0.52 → Edge: 5.9%, EV: 11.3% 5. Or all in one step: evaluatebet --bookodds=-150,+130 --marketprob=0.52 Arbitrage Detection 1. Get best price per outcome from different sources (Polymarket home at 0.48, Kalshi away at 0.49) 2. findarbitrage --marketprobs=0.48,0.49 --labels=home,away 3. Total implied 0.97 (< 1.0) → arbitrage found, guaranteed ROI: 3.09% Parlay Evaluation 1. De-vig each leg: Leg 1 → 0.58, Leg 2 → 0.55, Leg 3 → 0.50 2. parlayanalysis --legs=0.58,0.55,0.50 --parlayodds=600 3. Returns combined fair probability, edge, and Kelly fraction Line Movement Analysis 1. Get ESPN open and close lines: Open -140, Close -160 2. linemovement --openodds=-140 --closeodds=-160 3. Returns probability shift, direction, and classification (sharpaction, steammove, etc.) Examples Example 1: Edge check using ESPN and Polymarket prices User says: "Is there edge on the Lakers game? ESPN has them at -150 and Polymarket has them at 52 cents" Actions: 1. Call devig(odds="-150,+130", format="american") → fair home probability ~58% 2. Call findedge(fairprob=0.58, marketprob=0.52) → edge ~6%, positive EV 3. …

How to use it

Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:

@skills machina-sports/betting

View the source on GitHub

Browse the @skills marketplace