Skip to content

02Plataforma

Plataforma de Dados

Perfil estatístico · CF União de Lamas

Um export do Wyscout são 115 colunas de valores por 90 minutos e várias centenas de linhas, e por si só não responde a nada. Isto transforma-o numa base a que se podem fazer perguntas — percentis face a jogadores comparáveis, perfis por posição, radares, comparação — e acaba onde o scouting acaba de verdade: numa folha de relatório com uma recomendação escrita.

Papel
Metodologia, conceção e desenvolvimento
Stack
React · TypeScript · Vite · IndexedDB
Entrada
Exports .xlsx do Wyscout
Corre
No browser — nada sai da máquina

Construída contra um export real

colunas lidas
115colunas lidas
grupos posicionais
8grupos posicionais
local
100%local
para desenhar a tabela
<50mspara desenhar a tabela

01O problema

O export são dados, não informação

O Wyscout dá uma folha de cálculo. É completa e é inútil como está: 115 colunas de valores por 90 minutos, várias centenas de linhas, e nenhuma forma de lhe fazer a única pergunta que interessa — quem, nesta posição, nesta liga, é melhor do que aquilo que já temos.

Ordenar uma coluna dá depressa a resposta errada. Um valor por 90 favorece quem jogou menos. Um número bruto compara um extremo com um defesa central. Um zero na coluna do valor de mercado parece um jogador livre e não um espaço em branco.

A ferramenta existe para tornar o export respondível, com as comparações bem montadas antes de alguém ler um número no ecrã.

02Abordagem

Três decisões que fazem quase todo o trabalho

01

A coorte é o grupo posicional

Um percentil só vale aquilo contra que foi medido. Por defeito cada jogador é ordenado contra o seu grupo posicional dentro da sua liga — um lateral com 80 em cruzamentos deve ser lido contra laterais e não contra centrais. O universo pode passar a toda a liga, e cada coluna mostra o N que tem por trás, porque um percentil tirado de treze jogadores é uma afirmação diferente de um tirado de duzentos.

02

A cor transporta informação, não decoração

Uma só cor de destaque marca aquilo em que se pode clicar. Toda a restante cor no ecrã é um percentil, numa escala contínua de vermelho a verde com a legenda sempre visível. Nada está pintado para parecer desenhado, por isso correr os olhos por uma coluna já é uma leitura.

03

Desconhecido continua desconhecido

Valor de mercado a zero e data de contrato vazia são tratados como desconhecidos e não como valores. As colunas só de guarda-redes ficam nulas para os restantes, não a zero. Nenhum nulo entra num percentil. A alternativa — deixar um espaço em branco contar como número baixo — classifica em silêncio meia liga como fraca numa coisa em que nunca foi medida.

Tabela de percentis com várias centenas de jogadores e cada célula colorida pelo percentil
A tabela de percentis — colunas de identidade fixas, métricas escolhidas à direita, cada célula colorida pela posição daquele valor na coorte.Os nomes dos jogadores estão tapados nestes ecrãs. Os dados são um export Wyscout de uma liga profissional.

03A importação

Uma importação que se pode contestar antes de acontecer

Os exports do Wyscout não são limpos. O cabeçalho nem sempre está na primeira linha. Os nomes das colunas trazem acentos, espaços a mais e os erros de escrita do próprio fornecedor. Um cabeçalho aparece duas vezes — uma para jogadores de campo, outra dentro do bloco do guarda-redes. O importador foi feito para o ficheiro que chega e não para o ficheiro que se desejaria.

Nada é confirmado antes de ser mostrado. A pré-visualização diz quantos jogadores encontrou, que colunas detetou como identidade, como métrica e como ignoradas, e o que parece errado: duplicados, colunas sem dados, jogadores sem minutos. Uma coluna mal classificada pode ser corrigida antes de se gravar seja o que for.

  • Cabeçalhos encontrados, não assumidos

    O leitor procura a linha onde a tabela começa e normaliza cada nome de coluna — minúsculas, acentos fora, espaços colapsados — para que três grafias do mesmo cabeçalho caiam no mesmo sítio.

  • Métricas detetadas, não listadas

    Uma coluna conta como métrica quando pelo menos 80% dos valores são numéricos, aceitando vírgulas decimais e sinais de percentagem. A direção e a categoria são inferidas do nome, e ambas ficam editáveis.

  • Nada se deita fora

    As colunas que o importador não reconhece ficam guardadas junto ao jogador em vez de serem descartadas, para que uma decisão de hoje não custe informação amanhã.

  • Substituir ou juntar

    Um export novo da mesma liga substitui-a. Dois ficheiros que dividem uma liga por posições juntam-se, casados por nome e equipa, com as colunas novas acrescentadas.

04O índice

Um número, e o que está por trás dele

O índice de perfil é a média dos percentis de um jogador nas métricas que definem a sua posição, e exige dados em pelo menos metade delas antes de sequer aparecer. É a ordenação por defeito da tabela — o primeiro ecrã já é um ranking.

É de propósito um número raso com um rasto fundo. Clicar leva ao radar, depois a todas as métricas por categoria com a sua barra de percentil, depois ao valor real e ao N contra o qual foi ordenado. Uma única cifra serve para ordenar várias centenas de jogadores; não é um argumento enquanto não for aberta.

Radar de jogador com treze métricas ao lado de um painel de barras de percentil
O radar de um perfil de posição, com todas as métricas do jogador listadas ao lado, por categoria, com o respetivo percentil.

05Ecrãs

Os ecrãs de que o trabalho precisa

Cada um existe porque um passo do trabalho precisou dele.

  • Ligas

    Um cartão por liga, com o número de jogadores, de métricas e a data da última importação. Cada liga tem o seu próprio dicionário de métricas.

  • Tabela de percentis

    Filtros à esquerda, colunas de identidade fixas, métricas escolhidas à direita, cada célula colorida pelo percentil. Alternar entre valor e percentil, guardar conjuntos de colunas, exportar a vista atual.

  • Ficha do jogador

    Dados biográficos, contrato e valor de mercado, o radar, e todas as métricas por categoria com a sua barra de percentil.

  • Radar

    O perfil da posição por defeito, com métricas a acrescentar, remover ou reordenar, um segundo jogador sobreposto de qualquer liga, valores reais nos rótulos, e exportação em PNG.

  • Comparar

    De dois a seis jogadores em colunas, métricas agrupadas por categoria, o melhor valor de cada linha destacado, radares sobrepostos até três.

  • Shortlists

    Jogadores de várias ligas numa só lista, cada um com nota editável e estado, e um instantâneo que sobrevive a reimportar a liga.

  • Perfis de posição

    Para cada um dos oito grupos: os códigos Wyscout que lhe correspondem, e as métricas que alimentam o radar e o índice.

  • Relatório

    A folha imprimível, aqui em baixo.

  • Cópia de segurança

    Tudo para um ficheiro JSON e de volta, com um aviso quando a última tem mais de quinze dias.

  • Manual

    O manual escrito, apresentado dentro da aplicação em vez de guardado numa pasta que ninguém abre.

Ecrã de perfis de posição com os oito grupos e as métricas de um deles
Perfis de posição — os oito grupos, os códigos Wyscout que correspondem a cada um, e as métricas que alimentam o radar e o índice.

06O relatório

Onde os dados encontram o olho

O último ecrã é uma folha que se imprime. Leva o cabeçalho do clube, a identificação do jogador, o índice de perfil com a fiabilidade por trás dele, os percentis, e como ele se situa face ao plantel — e depois um campo vazio para o que foi visto ao vivo ou em vídeo, e uma recomendação: contratar, seguir, descartar.

Esse campo vazio é o objetivo de toda a ferramenta. Tudo o que vem antes reduz várias centenas de jogadores aos poucos que merecem uma tarde de sábado; a folha é onde essa tarde fica escrita ao lado dos números, e onde alguém tem de se comprometer com um veredito com os dois à frente.

Folha de relatório de scouting imprimível com identificação, percentis e campo de observação
A folha de relatório. Identificação, índice de perfil com a fiabilidade, percentis, como se situa face ao plantel — e um campo vazio para o que foi visto, por cima de uma recomendação.

07O meu contributo

O que aqui é meu

O modelo analítico e o código, ambos. As decisões acima são o trabalho; a interface é o que as torna usáveis numa terça-feira.

  • O modelo

    Os oito grupos posicionais e o mapa de códigos Wyscout, as métricas que definem cada perfil, o método de percentil e a regra da coorte, e o índice construído sobre eles.

  • O importador

    A deteção do cabeçalho, a normalização dos nomes, a resolução das colunas duplicadas, a inferência das métricas, a regra do desconhecido em vez do zero, e a pré-visualização que relata tudo antes de gravar.

  • Engenharia

    React e TypeScript sobre Vite, IndexedDB através do Dexie para persistência, uma tabela escrita à mão e um radar SVG desenhado à mão, e uma cópia de segurança que cabe num ficheiro.

  • O output

    O radar e a sua exportação PNG, as exportações de vistas, e a folha de relatório imprimível que o departamento usa mesmo.

08Para um departamento

O que isto dá a um departamento de scouting

Uma shortlist que começa no sítio certo

Os dados reduzem várias centenas de jogadores a um punhado que vale a pena ver. Ver continua a decidir — mas parte de uma lista defensável e não de quem foi mencionado por último.

Comparações que se podem contestar

Cada percentil mostra a coorte e o N que tem por trás. Um número que ninguém consegue contestar é um número que ninguém devia pôr num relatório.

Uma folha, as duas metades do trabalho

O relatório põe o perfil estatístico e a observação escrita na mesma página, que é onde a recomendação tem de ser feita de qualquer maneira.

Sem subscrição, sem upload

Corre num portátil, offline, sobre exports que o clube já paga. Um clube sem orçamento para analytics pode na mesma trabalhar assim.

Limites honestos

O que não é

Uma ferramenta a funcionar, construída para um departamento e uma forma de trabalhar. Vale a pena ser explícito:

  • Os percentis são sempre relativos à liga do próprio jogador. Comparar entre ligas compara o domínio dentro de cada uma, não o nível entre elas, e a aplicação avisa quando se misturam.
  • Uma coorte pequena torna o percentil frágil. O N está sempre no ecrã, mas lê-lo é trabalho de quem usa.
  • Lê exports do Wyscout em português. Outro fornecedor, ou o mesmo noutra língua, exige escrever os nomes das suas colunas.
  • Os dados vivem num browser, numa máquina. É esse o objetivo, e também significa não haver partilha, não haver sincronização, e ser preciso o hábito real de fazer cópias.
  • Interface em português, sem camada de tradução.

A seguir

Trabalho de Scouting

Observação e análise