Convert between any odds format: American (+150, -200), decimal (2.50), fractional (3/2), implied probability (40%), and Kalshi contract price ($0.40).
Use this skill when the user asks about:
Convert a single American odds value to every other format. Replace ODDS with the value (e.g., -150 or +200):
python3 -c "
odds = ODDS
if odds < 0:
impl = abs(odds) / (abs(odds) + 100)
elif odds > 0:
impl = 100 / (odds + 100)
else:
impl = 0.5
dec = round(1 / impl, 4) if impl > 0 else 0
from fractions import Fraction
frac = Fraction(1 - impl, impl).limit_denominator(100) if impl > 0 else 'N/A'
kalshi = round(impl, 2)
print(f'American: {odds:+d}')
print(f'Decimal: {dec}')
print(f'Fractional: {frac}')
print(f'Implied Prob: {impl*100:.2f}%')
print(f'Kalshi Price: \${kalshi}')
"
Convert decimal odds to every other format. Replace DEC with the value (e.g., 2.50):
python3 -c "
dec = DEC
impl = 1 / dec if dec > 0 else 0
if impl > 0.5:
amer = round(-(impl / (1 - impl)) * 100)
elif impl < 0.5:
amer = round(((1 - impl) / impl) * 100)
else:
amer = 100
from fractions import Fraction
frac = Fraction(dec - 1).limit_denominator(100) if dec > 1 else '0/1'
kalshi = round(impl, 2)
print(f'Decimal: {dec}')
print(f'American: {amer:+d}')
print(f'Fractional: {frac}')
print(f'Implied Prob: {impl*100:.2f}%')
print(f'Kalshi Price: \${kalshi}')
"
Convert fractional odds to every other format. Replace NUM and DEN with numerator and denominator (e.g., 3 and 2 for 3/2):
python3 -c "
num, den = NUM, DEN
dec = round((num / den) + 1, 4)
impl = den / (num + den)
if impl > 0.5:
amer = round(-(impl / (1 - impl)) * 100)
elif impl < 0.5:
amer = round(((1 - impl) / impl) * 100)
else:
amer = 100
kalshi = round(impl, 2)
print(f'Fractional: {num}/{den}')
print(f'Decimal: {dec}')
print(f'American: {amer:+d}')
print(f'Implied Prob: {impl*100:.2f}%')
print(f'Kalshi Price: \${kalshi}')
"
Convert an implied probability to every other format. Replace PROB with the probability as a decimal (e.g., 0.40 for 40%):
python3 -c "
impl = PROB
dec = round(1 / impl, 4) if impl > 0 else 0
if impl > 0.5:
amer = round(-(impl / (1 - impl)) * 100)
elif impl < 0.5:
amer = round(((1 - impl) / impl) * 100)
else:
amer = 100
from fractions import Fraction
frac = Fraction(1 - impl, impl).limit_denominator(100) if impl > 0 else 'N/A'
kalshi = round(impl, 2)
print(f'Implied Prob: {impl*100:.2f}%')
print(f'American: {amer:+d}')
print(f'Decimal: {dec}')
print(f'Fractional: {frac}')
print(f'Kalshi Price: \${kalshi}')
"
Convert a list of American odds values to all formats at once. Replace the list with actual values:
python3 -c "
odds_list = [-150, +200, -110, +300, -400]
print(f'{\"American\":>10} {\"Decimal\":>10} {\"Implied\":>10} {\"Kalshi\":>10} {\"Fractional\":>12}')
print('-' * 56)
for odds in odds_list:
if odds < 0:
impl = abs(odds) / (abs(odds) + 100)
elif odds > 0:
impl = 100 / (odds + 100)
else:
impl = 0.5
dec = round(1 / impl, 4)
from fractions import Fraction
frac = Fraction(1 - impl, impl).limit_denominator(100)
kalshi = round(impl, 2)
print(f'{odds:>+10d} {dec:>10.2f} {impl*100:>9.1f}% {\"$\" + str(kalshi):>10} {str(frac):>12}')
"
Built by AgentBets — full tutorial at agentbets.ai/guides/openclaw-odds-converter-skill/.
Part of the OpenClaw Skills series for the Agent Betting Stack.
共 1 个版本