Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement.

MITAuto-check passedBusiness, Finance & HR

Install Betting

skills CLI
$ npx skills add machina-sports/sports-skills --skill betting -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install machina-sports/sports-skills betting --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/machina-sports/sports-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/betting .claude/skills/betting && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
betting
GitHub stars
243
Token cost
~1.7k tokens
SKILL.md length
685 words
Files
2 (incl. references)
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement.

  • Works in 5 steps: Get ESPN moneyline odds (e.g., from nba… → Get Polymarket/Kalshi price for the same… → De-vig: devig --odds=-150,+130… → …
  • : user asks about bet sizing
  • SKILL.md covers Quick Start, CRITICAL: Before Any Analysis, Workflows and Examples, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Betting is an agent skill from machina-sports/sports-skills. 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…

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/api-reference.md`).

It sits in Business, Finance & HR, covering Stock and market analysis. It works with Polymarket and Kalshi. The repository describes itself as: Open-source agent skills for live sports data and prediction markets. Football, F1, Kalshi, Polymarket. Zero API keys. SKILL.md format. The licence is MIT.

When your agent uses it

  • : user asks about bet sizing
  • Kelly criterion
  • Odds conversion
  • Comparing odds across sources

Example prompts

  • “/betting”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Get ESPN moneyline odds (e.g., from nba get_scoreboard): 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: find_edge --fair_prob=0.579 --market_prob=0.52 → Edge: 5.9%, EV: 11.3%
  5. Or all in one step: evaluate_bet --book_odds=-150,+130 --market_prob=0.52

What it can do on your machine

Read from SKILL.md and the folder at commit 09eb7e8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Betting loads about 1.7k tokens when it runs, and up to ~2.4k if it reads all its reference files. Until then it costs about 193 tokens; SKILL.md has 685 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~193
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~2.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from machina-sports/sports-skills at commit 09eb7e8, republished under its MIT licence (© machina-sports). 685 words, ~1,731 tokens.

Download SKILL.mdSave it as .claude/skills/betting/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
betting
description
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.
license
MIT
metadata.author
machina-sports
metadata.version
0.2.0

Betting Analysis

Before writing queries, consult references/api-reference.md for odds formats, command parameters, and key concepts.

Quick Start

bash
sports-skills betting convert_odds --odds=-150 --from_format=american
sports-skills betting devig --odds=-150,+130 --format=american
sports-skills betting find_edge --fair_prob=0.58 --market_prob=0.52
sports-skills betting evaluate_bet --book_odds=-150,+130 --market_prob=0.52
sports-skills betting find_arbitrage --market_probs=0.48,0.49
sports-skills betting parlay_analysis --legs=0.58,0.62,0.55 --parlay_odds=600
sports-skills betting line_movement --open_odds=-140 --close_odds=-160

Python SDK:

python
from sports_skills import betting

betting.convert_odds(odds=-150, from_format="american")
betting.devig(odds="-150,+130", format="american")
betting.find_edge(fair_prob=0.58, market_prob=0.52)
betting.find_arbitrage(market_probs="0.48,0.49")
betting.parlay_analysis(legs="0.58,0.62,0.55", parlay_odds=600)
betting.line_movement(open_odds=-140, close_odds=-160)

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 get_scoreboard): 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: find_edge --fair_prob=0.579 --market_prob=0.52 → Edge: 5.9%, EV: 11.3%
  5. Or all in one step: evaluate_bet --book_odds=-150,+130 --market_prob=0.52
Arbitrage Detection
  1. Get best price per outcome from different sources (Polymarket home at 0.48, Kalshi away at 0.49)
  2. find_arbitrage --market_probs=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. parlay_analysis --legs=0.58,0.55,0.50 --parlay_odds=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. line_movement --open_odds=-140 --close_odds=-160
  3. Returns probability shift, direction, and classification (sharp_action, steam_move, 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 find_edge(fair_prob=0.58, market_prob=0.52) → edge ~6%, positive EV
  3. Call kelly_criterion(fair_prob=0.58, market_prob=0.52) → optimal bet fraction Result: Present edge percentage, EV per dollar, and recommended bet size as % of bankroll

Example 2: Arbitrage opportunity detection User says: "Can I arb this? Polymarket has home at 48 cents and Kalshi has away at 49 cents" Actions:

  1. Call find_arbitrage(market_probs="0.48,0.49", labels="home,away")
  2. Check arbitrage_found in result Result: If arbitrage: present allocation percentages and guaranteed ROI. If not: present overround and explain no guaranteed profit

Example 3: Parlay evaluation User says: "Is this 3-leg parlay at +600 worth it?" Actions:

  1. De-vig each leg to get fair probabilities (e.g., 0.58, 0.62, 0.55)
  2. Call parlay_analysis(legs="0.58,0.62,0.55", parlay_odds=600) Result: Present combined fair probability, edge, EV, +EV or -EV verdict, and Kelly fraction

Example 4: Line movement interpretation User says: "The line moved from -140 to -160, what does that mean?" Actions:

  1. Call line_movement(open_odds=-140, close_odds=-160) Result: Present probability shift, direction, magnitude, and classification (sharp action, steam move, etc.)

Example 5: De-vig a standard spread User says: "What are the true odds for this spread? Both sides are -110" Actions:

  1. Call devig(odds="-110,-110", format="american") Result: Present each side as 50% fair probability, vig is ~4.5%

Example 6: Odds format conversion User says: "Convert -200 to implied probability" Actions:

  1. Call convert_odds(odds=-200, from_format="american") Result: Present 66.7% implied probability and 1.50 decimal odds
Show full SKILL.md (207 more words)Show less

Commands that DO NOT exist — never call these

  • get_odds — does not exist. This module analyzes odds; it does not fetch them. Use nba-data/nfl-data/etc. for ESPN odds, or polymarket/kalshi for prediction market prices.
  • calculate_ev — does not exist. Use find_edge or evaluate_bet instead.
  • compare_markets — does not exist. Use the markets skill for cross-platform comparison.

If a command is not listed in references/api-reference.md, it does not exist.

Troubleshooting

Error: ValueError: unknown format when calling convert_odds Cause: The from_format parameter is not one of american, decimal, or probability Solution: Use exactly american, decimal, or probability as the format string

Error: find_edge returns negative EV when a positive edge is expected Cause: Fair probability and market probability may be reversed, or de-vigging was skipped Solution: Run devig on sportsbook odds first, then pass the de-vigged fair_prob to find_edge

Error: find_arbitrage shows no arbitrage even when prices seem low Cause: Prices may sum to more than 1.0 when all outcomes are correctly included Solution: Verify you are using the correct probabilities for all outcomes; check total_implied in the result

Error: Kelly fraction is very high (greater than 0.5) Cause: Edge estimate is very large — often from a miscalculated fair probability Solution: Use half-Kelly or quarter-Kelly for conservative sizing. Re-verify fair probability via devig

© machina-sports, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in skills/betting of machina-sports/sports-skills.

  • SKILL.md
  • references/api-reference.md

Open the folder on GitHubat commit 09eb7e8

Compare with similar skills

Betting next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Betting compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Betting this skillmachina-sports/sports-skills243—~1.7kAutomated safety check: PassMIT
Digital Oraclekomako-workshop/digital-oracle878—~5.9kAutomated safety check: PassMIT
Polymarket Tennislivetennisapi/livetennisapi-mcp152—~3kAutomated safety check: PassMIT
Feedsalsk1992/CloddsBot3k—~1.8kAutomated safety check: PassMIT
Marketsalsk1992/CloddsBot3k—~286Automated safety check: PassMIT
Dr Manhattanguzus/dr-manhattan204—~2kAutomated safety check: PassApache-2.0

Similar skills

  • Digital Oracle

    komako-workshop/digital-oracle

    Answer prediction questions using market trading data, not opinions.

    878 GitHub stars~5.9k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Polymarket Tennis

    livetennisapi/livetennisapi-mcp

    Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.

    152 GitHub stars~3k tokensUpdated 4 days ago
    Business, Finance & HRAuto-check passed
  • Feeds

    alsk1992/CloddsBot

    Real-time market data feeds from 8 prediction market platforms

    3k GitHub stars~1.8k tokensUpdated 8 days ago
    Business, Finance & HRAuto-check passed
  • Markets

    alsk1992/CloddsBot

    Search and view prediction market data from Polymarket, Kalshi, Manifold, and Metaculus

    3k GitHub stars~286 tokensUpdated 8 days ago
    Business, Finance & HRAuto-check passed
  • Dr Manhattan

    guzus/dr-manhattan

    Trade prediction markets (Polymarket, Kalshi, Opinion, Limitless, Predict.fun) using a unified CCXT-style API.

    204 GitHub stars~2k tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Catalyst Confirmation

    Superior-Trade/superior-skills

    A skill your agent uses when a Polymarket prediction-market thesis rests on an external event — CPI, Fed, elections, court rulings, ETF decisions — and needs market confirmation before committing.

    215 GitHub stars~667 tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check passed

More from machina-sports/sports-skills

All 23 skills in this repo
  • Cbb Data

    machina-sports/sports-skills

    College Basketball (CBB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, win probability, rankings, futures…

    245 GitHub stars~2.2k tokensUpdated today
    Auto-check passed
  • Cfb Data

    machina-sports/sports-skills

    College Football (CFB) data via ESPN public endpoints and the NCAA's official endpoints — scores, standings, rosters, schedules, game summaries, play-by-play, rankings, injuries, futures…

    245 GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Cricket Data

    machina-sports/sports-skills

    Cricket data via ESPN public endpoints and Cricsheet open data — live-ish series scoreboards, standings, match summaries and news (ESPN), plus historical ball-by-ball, player stats, and player…

    245 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Fastf1

    machina-sports/sports-skills

    Formula 1 data — race schedules, results, lap timing, driver and team info.

    245 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Golf Data

    machina-sports/sports-skills

    PGA Tour, LPGA, and DP World Tour golf data via ESPN public endpoints — tournament leaderboards, scorecards, season schedules, golfer profiles/overviews, and news.

    245 GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Kalshi

    machina-sports/sports-skills

    Kalshi prediction markets — events, series, markets, trades, and candlestick data.

    245 GitHub stars~1.9k tokensUpdated today
    Auto-check passed

Questions about Betting

What does Betting do?

Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement. Betting is an agent skill from machina-sports/sports-skills. Betting analysis — odds conversion, de-vigging, edge detection, Kelly criterion, arbitrage detection, parlay analysis, and line movement.

When should I use Betting?

Betting fits situations like: : user asks about bet sizing; kelly criterion; odds conversion; comparing odds across sources.

How do I install Betting in Claude Code?

Run `npx skills add machina-sports/sports-skills --skill betting -a claude-code`. Or copy the skill folder (skills/betting in machina-sports/sports-skills) into .claude/skills/betting in your project. Claude Code loads it when a task matches its description.

How do I install Betting in Codex?

Run `npx skills add machina-sports/sports-skills --skill betting -a codex`. Or copy the skill folder (skills/betting in machina-sports/sports-skills) into .agents/skills/betting in your project. Codex loads it when a task matches its description.

Can I use Betting in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add machina-sports/sports-skills --skill betting -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/betting, .gemini/skills/betting, .github/skills/betting and .opencode/skills/betting in your project.

What does Betting need to run?

SKILL.md names no scripts, command-line tools or credentials: Betting is instructions for the agent only. Our summary lists: Python 3.

Does Betting access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Betting safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Betting use?

Betting is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Betting use?

About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 690 tokens, read only when the agent opens those files.

What are the alternatives to Betting?

Skills that share tags, products or a category with Betting: Digital Oracle (komako-workshop/digital-oracle, 878 stars), Polymarket Tennis (livetennisapi/livetennisapi-mcp, 152 stars), Feeds (alsk1992/CloddsBot, 3k stars) and Markets (alsk1992/CloddsBot, 3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Betting?

machina-sports (a GitHub organization) maintains it in machina-sports/sports-skills, which has 243 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 5, 2026.

Source: machina-sports/sports-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.