1

Pitch: como pontuar com justiça uma hora de futebol contra uma hora de musculação (decisões do Fervu)

Futebol, corrida ou academia: quem pontua mais? Tela do placar do Fervu

Faço um app de treino em grupo, o Fervu (iOS e Android). A ideia é simples: você monta um grupo com amigos, colegas de trabalho ou a turma da academia, cada um registra o que treinou e a semana fecha com um placar. O que mais deu trabalho não foi infraestrutura, foi regra: como comparar quem correu, quem jogou bola e quem fez musculação sem que um esporte ganhe sempre.

Divido aqui as decisões, porque acho que servem para qualquer coisa com gamificação.

1. Pontuar por intensidade, não por esporte

Cada exercício tem um MET (equivalente metabólico), valor de referência do Compendium of Physical Activities. A regra inteira cabe numa linha:

pontos = (met / 40) * multiplicador * minutos

Uma hora de futebol casual (MET 7) dá 10,5 pontos. Uma hora de corrida a ~9,7 km/h (MET 9,3) dá 13,95. Uma hora de musculação com volume moderado (MET 3,5) dá 5,25.

Pontos por uma hora de atividade: futebol competitivo 14,25, corrida a 9,7 km/h 13,95, futebol casual 10,5, caminhada moderada 5,7, musculação 5,25, yoga 3,45

O catálogo tem 169 exercícios em 14 categorias, e a variante importa: "corrida leve" e "corrida a 14,5 km/h" são linhas diferentes.

2. O admin do grupo não edita pontos, edita um multiplicador

Esse 5,25 da musculação é o ponto fraco do MET: ele mede gasto de energia, não esforço percebido. Deixar o grupo editar os pontos de cada exercício parece a saída óbvia, mas aí a diferença entre corrida leve e corrida forte some na primeira personalização.

O que ficou: o admin ajusta um multiplicador por categoria, de 0,5 a 3, em passos de 0,1. Um grupo de academia pode pôr musculação em 2x e a relação entre as variantes continua de pé.

Musculação em 1x e em 2x: volume moderado vai de 5,25 para 10,5 e vigorosa de 9 para 18 pontos por hora

Para grupo de corrida existe outro modo: a pontuação é a distância. 42 km no desafio são 42 pontos, o mesmo número que aparece no relógio.

3. Arredondamento

Nessa escala os números são pequenos (30 minutos de yoga dão 1,7), então arredondar para inteiro achataria diferenças reais. Guardo com duas casas, mostro com uma, e uso Math.round((v + Number.EPSILON) * 100) / 100 para o 0.1 + 0.2 não aparecer no placar.

4. Ofensiva: uma atividade de 20 minutos, nunca a soma

Além do placar do grupo, cada pessoa tem uma ofensiva semanal. A semana conta se tiver uma atividade de 20 minutos ou mais. Três caminhadas de 19 minutos não contam. É a regra mais fácil de dizer em uma linha, e regra que precisa de asterisco não motiva ninguém.

Ofensiva: semana de domingo a sábado com 48 horas de carência; três atividades de 19 minutos não contam, uma de 20 minutos conta

Duas regras ali existem por casos concretos:

  • Latência da importação. O treino de sábado à noite que o Apple Saúde só entrega na segunda. Se a semana fechasse no sábado à meia-noite, a pessoa perderia a ofensiva por atraso de sincronização, não por ter parado de treinar. Por isso a semana só vira definitiva 48 horas depois de terminar.
  • A semana corrente nunca subtrai. Quem tem nove semanas seguidas e abre o app numa quarta ainda não fez nada de errado; mostrar zero ali seria anunciar uma derrota que não aconteceu. O número na tela é uma consulta, não um contador: se a importação atrasada chegar, ele sobe sozinho.

Stack, para quem quiser saber

App em Expo (React Native), API em Node/TypeScript com Express e Prisma sobre Postgres. A pontuação e a ofensiva ficam num pacote compartilhado, em funções puras: a API grava e a tela desenha a partir do mesmo código, então o número do celular e o do servidor não têm como discordar.

Se você tem uma turma que treina junto (firma, faculdade, futebol de quinta), o Fervu é gratuito e sem anúncio: https://fervu.app

Mas o que eu queria mesmo ouvir é de quem já fez gamificação: como vocês resolveram justiça entre atividades diferentes? Multiplicador por categoria resolve, ou só empurra a discussão para dentro do grupo?

Carregando publicação patrocinada...
1

Pra mim o multiplicador por categoria resolve bem a briga entre esportes. O que eu vejo escapar é o volume: caminhada rende pouco por hora, mas dá pra fazer três horas num dia, e quem quer ganhar o placar vai acabar indo por aí. Um teto de pontos por dia em cada categoria, ou pontuação decrescente depois de uns 60 minutos da mesma atividade, segura isso sem mexer na tabela de MET.

Quando o treino vem do relógio com frequência cardíaca, dá pra usar ela como ajuste, mais ou menos como o Relative Effort do Strava, que pontua pelo tempo em cada zona. Aí a musculação pesada para de perder pra caminhada moderada só por causa do MET.