Loading...
Loading...
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.
npx skill4agent add machina-sports/sports-skills bettingsports-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=-160from 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)| Format | Example | Description |
|---|---|---|
| American | | US sportsbook standard. Negative = favorite, positive = underdog |
| Decimal | | European standard. Payout per $1 (includes stake) |
| Probability | | Direct implied probability (0-1). Polymarket uses this format |
| Command | Required | Optional | Description |
|---|---|---|---|
| odds, from_format | Convert between American, decimal, probability | |
| odds | format | Remove vig from sportsbook odds → fair probabilities |
| fair_prob, market_prob | Compute edge, EV, and Kelly from two probabilities | |
| fair_prob, market_prob | Kelly fraction for optimal bet sizing | |
| book_odds, market_prob | book_format, outcome | Full pipeline: devig → edge → Kelly |
| market_probs | labels | Detect arbitrage across outcomes from multiple sources |
| legs, parlay_odds | odds_format, correlation | Multi-leg parlay EV and Kelly analysis |
| open_odds, close_odds, open_line, close_line, market_type | Analyze open-to-close line movement |
nba get_scoreboard-150+1300.52devig --odds=-150,+130 --format=americanfind_edge --fair_prob=0.579 --market_prob=0.52evaluate_bet --book_odds=-150,+130 --market_prob=0.52find_arbitrage --market_probs=0.48,0.49 --labels=home,awayfind_arbitrage --market_probs=0.40,0.25,0.30 --labels=home,draw,awaydevig --odds=-150,+130devig --odds=-130,+110devig --odds=-110,-110parlay_analysis --legs=0.58,0.55,0.50 --parlay_odds=600--correlation=0.1line_movement --open_odds=-140 --close_odds=-160line_movement --open_odds=-140 --close_odds=-160 --open_line=-6.5 --close_line=-7.5devig --odds=-110,-110 --format=americandevig --odds=-200,+170 --format=americandevig --odds=-150,+300,+400 --format=americanconvert_odds --odds=-150 --from_format=americanconvert_odds --odds=2.50 --from_format=decimaldevig --odds=-150,+130 --format=americanfind_edge --fair_prob=0.58 --market_prob=0.52kelly_criterion --fair_prob=0.58 --market_prob=0.52find_arbitrage --market_probs=0.48,0.49 --labels=home,awayparlay_analysis --legs=0.58,0.62,0.55 --parlay_odds=600line_movement --open_odds=-140 --close_odds=-160devig --odds=-110,-110 --format=americanconvert_odds --odds=-200 --from_format=americanget_oddscalculate_evfind_edgeevaluate_betcompare_marketsmarkets