CRBRASIL
Analytics

Sample Ratio Mismatch (SRM): por que seu teste A/B pode estar inválido e como descobrir

Por CRO Brasil ·

Sample Ratio Mismatch (SRM): por que seu teste A/B pode estar inválido e como descobrir

Você configurou 50/50, mas a variante recebeu 47% do tráfego. Parece pouco, mas pode invalidar o teste inteiro. Veja o que é SRM, como calcular e onde procurar a causa.

Índice do artigo

O que é Sample Ratio Mismatch

SRM é quando a proporção real de usuários entre as variantes de um teste é diferente da proporção planejada, além do que o acaso explicaria. Se você configurou 50/50 e, com 100 mil usuários, uma variante tem 51.500 e a outra 48.500, isso não é azar: é um sinal de que algo na implementação está filtrando ou perdendo usuários de um lado.

Plataformas como o ABsmartly exibem esse alerta automaticamente no dashboard do experimento.

Em uma frase: SRM é o alarme de que os grupos do teste deixaram de ser comparáveis.

Por que SRM invalida o resultado

O teste A/B funciona porque a aleatorização cria grupos equivalentes. Se um grupo perde usuários de forma sistemática (por exemplo, os que usam Safari, os que chegam de um redirect, os mais lentos), os grupos deixam de ser equivalentes. A diferença de conversão observada pode vir dessa perda, e não da mudança testada.

Por isso a regra é firme: com SRM, não se lê o resultado. Primeiro se encontra a causa.

Como detectar: o teste qui-quadrado

O cálculo mais usado é o teste qui-quadrado de aderência, comparando o número observado de usuários em cada variante com o esperado.

Exemplo com divisão planejada de 50/50 e 100.000 usuários:

  • Esperado: 50.000 em cada variante.
  • Observado: 51.500 (A) e 48.500 (B).
  • Qui-quadrado = (51.500 − 50.000)² / 50.000 + (48.500 − 50.000)² / 50.000 = 45 + 45 = 90.

Com um grau de liberdade, um valor de 90 corresponde a um p-valor muito menor que 0,001. É SRM.

Muitos times usam um limiar conservador (p < 0,001) para o alerta, justamente para evitar alarmes falsos em testes com checagem frequente. Qualquer planilha ou linguagem de dados calcula isso (em planilhas, a função de teste qui-quadrado; em Python, scipy.stats.chisquare).

As causas mais comuns

  1. Redirect na variante: testes que redirecionam para outra URL perdem usuários no caminho (tempo de carregamento, bloqueio, falha).
  2. Script de teste carregando de forma diferente: a variante carrega um código mais pesado e parte dos usuários sai antes da exposição ser registrada.
  3. Exposição registrada no lugar errado: o registro acontece depois de uma condição que só uma das variantes atende. No ABsmartly, a exposição é registrada na chamada de treatment; se essa chamada está dentro de um if que depende da variante, o SRM aparece.
  4. Bots e tráfego interno: filtrados de forma desigual entre as variantes.
  5. Cache e CDN: uma versão da página fica cacheada e entrega a mesma variante a muitos usuários.
  6. Mudança na divisão durante o teste: alterar percentuais no meio distorce a proporção acumulada. A própria documentação do ABsmartly desaconselha mudar a divisão depois do início.
  7. Audiência sem checagem: usuários fora da audiência entram em uma variante e não na outra.
  8. Identificador instável: o mesmo usuário conta em duas variantes porque o ID mudou.

O que fazer quando o SRM aparece

  1. Pare a leitura do resultado. Não comunique vencedor.
  2. Segmente a proporção: por navegador, dispositivo, origem de tráfego, dia e página de entrada. O segmento onde a proporção desvia mais aponta a causa.
  3. Revise onde a exposição é registrada e se ela depende de algo que acontece de forma diferente em cada variante.
  4. Corrija e reinicie o teste. Dados coletados com SRM não devem ser aproveitados.

Prevenção: checklist antes de lançar

  • Rodar um teste A/A (duas variantes iguais) quando a implementação é nova.
  • Registrar a exposição no primeiro momento em que a variante é decidida.
  • Evitar redirects em testes; prefira server-side (Teste A/B client-side x server-side).
  • Usar identificador estável (User ID).
  • Não alterar a divisão depois do início; use a alocação de tráfego para ampliar exposição.
  • Monitorar a proporção diariamente nos primeiros dias.

Perguntas frequentes

O que é Sample Ratio Mismatch?

É quando a proporção de usuários entre variantes de um teste A/B difere da planejada além do que o acaso explicaria.

SRM invalida o teste A/B?

Sim. Os grupos deixam de ser comparáveis e o resultado não é confiável até a causa ser corrigida.

Como calcular SRM?

Com um teste qui-quadrado de aderência comparando usuários observados e esperados em cada variante.

Qual o limiar para considerar SRM?

Muitos times usam p-valor menor que 0,001 como alerta.

Qual a causa mais comum de SRM?

Redirects e registro de exposição em momentos diferentes entre as variantes estão entre as causas mais frequentes.

Posso aproveitar os dados de um teste com SRM?

Não é recomendado. Corrija a causa e reinicie o teste.