Estatísticas avançadas: muito além da posse de bola

Publicado em , atualizado em .

O futebol brasileiro saiu do "quem correu mais" e chegou ao xG. Veja como puxar finalizações, gols esperados, duelos e mais de 30 campos avançados por partida.

Quando o futebol brasileiro virou número

Por muito tempo, a estatística de futebol no Brasil se resumia a três coisas: posse de bola, finalizações e quantos quilômetros cada um correu. Eram números decorativos — apareciam no rodapé da transmissão e ninguém tomava decisão nenhuma com base neles.

Isso mudou. Hoje clubes da Série A mantêm departamentos de análise de desempenho, contratam com relatório de dados na mesa, definem pressão e saída de bola a partir de mapas de campo, e discutem internamente coisas como conversão de grandes chances. O torcedor acompanhou o movimento: xG virou assunto de comentário de transmissão e de briga em rede social.

Por que a posse de bola envelheceu mal

O caso clássico é o time que termina com 65% de posse e perde de 2 a 0.

Posse mede quanto tempo você teve a bola, não o que fez com ela. Um time pode trocar 700 passes na defesa e nunca entrar na área. Outro pode ter 35% de posse, sair em cinco contra-ataques e criar cinco chances claras. A posse diz quem controlou o jogo; ela não diz quem esteve perto de vencer.

Foi para responder essa pergunta que apareceram os gols esperados (xG): em vez de contar finalizações, mede a qualidade de cada uma. Um chute de fora da área e um toque na pequena área contam igual na coluna “finalizações” — e são eventos totalmente diferentes. O xG separa os dois.

A mesma lógica vale para as outras famílias de campos avançados: duelos vencidos mostram quem ganhou o jogo físico, entradas no último terço mostram quem conseguiu progredir, grandes chances perdidas mostram quem devia ter vencido e não venceu.

O raio-X na API

O endpoint de estatísticas entrega esse pacote separado por mandante e visitante:

curl https://api.dadosfutebol.com.br/v1/partidas/2895/estatisticas \
  -H "Authorization: Bearer SUA_CHAVE_AQUI"

Exemplo real — Chapecoense 0x4 Flamengo, 19ª rodada do Brasileirão:

{
  "data": {
    "partida_id": 2895,
    "time_mandante": { "id": 25, "nome": "Chapecoense", "sigla": "CHA" },
    "time_visitante": { "id": 1, "nome": "Flamengo", "sigla": "FLA" },
    "status": "encerrado",
    "estatisticas": {
      "visitante": {
        "posse_bola": 63,
        "finalizacoes_total": 10,
        "finalizacoes_no_gol": 6,
        "escanteios": 3,
        "faltas": 8,
        "desarmes": 14,
        "passes_total": 684,
        "precisao_passes": 90.35
      }
    }
  }
}

O Flamengo terminou com 63% de posse, 684 passes e 90% de precisão — e, diferente do exemplo da seção acima, aqui o domínio virou placar: 6 das 10 finalizações foram no gol.

Os campos avançados

Além do bloco básico (posse, finalizações separadas em no gol/fora/trave/bloqueadas, escanteios, faltas, cartões, defesas, desarmes e passes), o payload traz 32 campos avançados coletados da nossa fonte primária, entre eles:

  • gols_esperados (xG) e grandes_chances criadas, convertidas e perdidas
  • duelos_chao_vencidos, duelos_aereos_vencidos, dribles_certos
  • interceptacoes, recuperacoes_bola, cortes
  • toques_area_adversaria, entradas_ultimo_terco, passes_em_profundidade
  • estatísticas de goleiro: gols_evitados, defesas_dificeis, saidas_altas

Campos sem cobertura para uma partida específica vêm como null — seu código deve tratá-los como opcionais, não como zero. A diferença importa: 0 drible certo é um dado; null é ausência de dado.

Quando os dados chegam

Durante o jogo, as estatísticas acompanham o tempo real. Alguns minutos após o apito final, uma consolidação automática grava os números definitivos da partida — se você guarda snapshots, vale reconsultar o endpoint depois do status virar encerrado.

Quer os lances além dos números? Veja eventos da partida minuto a minuto.