0

Como calcular a probabilidade justa a partir das odds em Python (com dados abertos)

Toda odd carrega uma comissão embutida. Se você somar as probabilidades implícitas de todos os resultados de um mercado, o total passa de 100%: o excedente é a margem da casa. Neste post mostro, em poucas linhas de Python, como retirar essa margem e chegar à probabilidade «justa», e onde encontrar dados abertos para testar.

A conta

Para um mercado de dois resultados com odds decimais a e b:

def justa(a, b):
    pa, pb = 1 / a, 1 / b
    total = pa + pb
    return {
        'prob_a': pa / total,
        'prob_b': pb / total,
        'margem_pct': 100 * (total - 1),
    }

print(justa(1.91, 1.91))  # margem de 4,7%
print(justa(1.50, 2.75))  # margem de 3,0%

Quanto as casas ficam, na prática

O índice diário de margem mede essa comissão todos os dias em 12 esportes, a partir das odds de cerca de 30 casas (julho a setembro de 2026). O CSV e o dicionário de dados são CC BY 4.0. Resumo por tipo de mercado:

Tipo de mercadoMargem média
Resultado com três opções (1X2)7,5%
Mercados de jogadores7,4%
Totais6,2%
Handicaps5,4%
Resultado com duas opções5,1%

Puxando os dados com uma API sem chave

import json, urllib.request

url = 'https://betbetter.world/predicted-scores/nba?format=json'
req = urllib.request.Request(url, headers={'User-Agent': 'tabnews-demo/1.0'})
jogos = json.load(urllib.request.urlopen(req, timeout=20)).get('games', [])
print(len(jogos), 'jogos')

A referência completa está em betbetter.world/api; também existe pip install betbetter.

E as probabilidades justas são mesmo justas?

Um estudo de calibração com 18.238 mercados liquidados compara, decil por decil, a probabilidade sem margem com a frequência real. Resultado: boa calibração em média (diferença abaixo de dois pontos em cada decil), com uma inclinação: azarões rendem um a dois pontos acima do previsto e favoritos o mesmo tanto abaixo.

Dados CC BY 4.0, com crédito para a Bet Better. Estimativas de modelo, não é recomendação de aposta. 18+. Jogue com responsabilidade.

Carregando publicação patrocinada...