Estatística

Métricas de Guardrail: as travas contra uma piora

O que são métricas de guardrail, como definir o limiar de piora antes do teste e por que guardrail sem significância não é guardrail liberado.

Ilustração de uma passarela estreita com guarda-corpos altos dos dois lados e uma luminária no poste da ponta, em tons de verde profundo

Métricas de guardrail são as medidas que uma mudança não pode piorar, mesmo quando a métrica que o teste foi feito para mover sobe. Elas existem porque métrica primária vencedora não é a mesma coisa que subida segura, e o jeito mais comum de errar isso é ler um guardrail sem significância como um guardrail liberado. Este guia cobre o que é um guardrail e como ele difere de uma métrica secundária, como definir o limiar que dá dentes a ele, a aritmética de poder que desarma a maioria dos guardrails em silêncio, e um conjunto inicial para ecommerce e SaaS. Faz parte do nosso guia completo de teste A/B e conversa direto com a aritmética de desenho de quantos visitantes um teste A/B precisa.

O que é uma métrica de guardrail, e o que não é

Dmitriev e colegas, escrevendo sobre interpretação de métricas na Microsoft em 2017, definem métricas de guardrail como medidas que não indicam claramente o sucesso da funcionalidade testada, mas que o time não quer prejudicar de forma significativa na hora de decidir subir. Tempo de carregamento num site como Bing ou MSN é o exemplo canônico deles: ninguém sobe uma funcionalidade para deixar a página mais lenta, e mesmo assim quase toda funcionalidade adicionada a uma página aumenta um pouco o tempo de carga. Pioras pequenas são esperadas. Pioras grandes, não.

Essa definição traça uma linha que muitos registros de experimento embaçam. Vale separar quatro papéis, porque cada um se lê de um jeito.

Os quatro papéis que uma métrica pode ter num experimentoMétricas de qualidade de dados decidem se o experimento é legível. A métrica primária decide se a mudança é boa. As métricas de guardrail decidem se a mudança é segura e podem vetar uma subida. As métricas de diagnóstico explicam por que a primária se moveu e nunca decidem nada sozinhas.Um experimento, quatro tipos de métrica, quatro perguntas diferentesQualidade de dadosdivisão, perda de log,tráfego de robôdá para ler?Métrica primáriaa única declaradaantes de subiré boa?Guardrailslatência, reembolso,suporte, churné segura?Diagnósticofunil passo a passo,clique por elementopor que se moveu?falhou: descarta o testevenceu: candidata a subirestourou: poder de vetonão decide sozinhaSó duas das quatro podem barrar uma subida, e só uma dessas duas barra uma subida que a métrica primária venceu.Métrica que ganha poder de veto depois que os números chegam não é guardrail, é negociação.
Os papéis se decidem antes de subir o teste. Escrever isso é o que impede um teste perdedor de ser resgatado por um diagnóstico promovido, e um teste nocivo de passar por cima de um guardrail rebaixado.

A distinção que mais pesa na prática é guardrail contra métrica secundária. Uma métrica secundária é lida por direção e explicação. Um guardrail carrega veto: pode barrar uma subida que a métrica primária venceu. Como isso é poder de verdade, tem que ser atribuído antes. Uma métrica promovida a guardrail depois dos resultados está sendo usada para justificar uma decisão já tomada, e uma rebaixada depois dos resultados é pior ainda.

Deng e Shi, descrevendo desenvolvimento de métricas no Bing em 2016, acrescentam um segundo papel do guardrail que vale conhecer: guardrails também substituem a métrica-objetivo quando ela não se aplica. O exemplo deles é uma organização de busca cuja métrica-objetivo conta cliques com tempo longo de permanência, o que não faz sentido nenhum para o time que constrói respostas instantâneas, cujo trabalho inteiro é satisfazer o usuário sem clique. Esse time precisa de guardrails que capturem a experiência que a métrica-objetivo compartilhada não enxerga.

O limiar, não o valor-p, é o que dá dentes ao guardrail

Aqui está o erro que mais custa caro, e ele se esconde dentro de uma frase que soa responsável: “os guardrails deram não significativo, então a gente subiu.”

O teste é dimensionado para a métrica primária. Guardrails costumam ser eventos mais raros, com base bem mais baixa, e o tamanho de amostra escala com aproximadamente um sobre o quadrado do efeito que você quer enxergar, então base mais baixa compra bem menos resolução com o mesmo número de visitantes. Pegue um teste de checkout dimensionado para detectar 10% relativos numa taxa de compra de 4,0%: isso pede 39.475 visitantes por variação, 78.950 no total, cerca de 14 dias a 40.000 visitantes elegíveis por semana. Nessa amostra exata, é isto que cada métrica do painel consegue de fato resolver.

Métrica Base Menor efeito relativo detectável com 39.475 por variação Em pontos percentuais
Adicionou ao carrinho 22,0% cerca de 3,8% 0,83 pp
Iniciou o checkout 9,0% cerca de 6,4% 0,58 pp
Compra (a métrica primária) 4,0% 10,0% 0,40 pp
Taxa de reembolso 1,2% cerca de 18,9% 0,23 pp
Contato com o suporte 0,8% cerca de 23,5% 0,19 pp
Descadastro de e-mail 0,3% cerca de 39,8% 0,12 pp

Leia as três últimas linhas devagar. Num teste perfeitamente bem dimensionado para o que ele se propõe, uma taxa de reembolso que volta “não significativa” é compatível com qualquer coisa entre uma melhora real e uma piora de 19%, e um descadastro que volta quieto é compatível com uma piora de 40%. Nada foi liberado. A pergunta nunca foi feita com dado suficiente para ter resposta.

Dmitriev e colegas documentam exatamente isso no MSN.com. O total de páginas vistas por usuário subiu 0,5% num experimento, com valor-p sem significância. Para um negócio daquele porte, 0,5% em páginas vistas é um impacto comercialmente relevante. O intervalo de confiança acabou ficando em torno de mais ou menos 5%, e o desenho só conseguia detectar mudanças de 7,8% ou maiores com 80% de poder. A conclusão deles é a frase que merece ficar pendurada acima do painel: não podemos assumir que não impactamos a métrica sem poder estatístico.

Coloque suas próprias bases e veja o que o seu tráfego resolve:

Calculadora de tamanho de amostra
-Visitantes por variação
-Total (2 variações)
-Duração estimada

Cálculo por aproximação normal de duas proporções, 2 variações (50/50). Mexa nos campos e veja o impacto ao vivo.

A correção não é estatística, é de processo. Declare um limiar para cada guardrail antes de subir o teste e depois compare o limite superior do intervalo de confiança com esse limiar, em vez de comparar o valor-p com 0,05.

Lendo um guardrail contra o limiar em vez de contra o valor-pQuatro intervalos de confiança comparados com um limiar de piora declarado. Intervalo inteiramente abaixo do limiar libera o guardrail. Intervalo que cruza o limiar deixa a pergunta sem resposta mesmo com valor-p acima de 0,05. Intervalo inteiramente acima do limiar é um estouro. Intervalo muito largo significa que o guardrail nunca foi medido com precisão útil.Mesma história de valor-p, quatro decisões diferentessem mudançalimiar declaradoliberadoAsem respostaBestouroCDnunca foi medidoB e D reportam valor-p acima de 0,05. Só A merece a palavra “liberado”, e só C é alarme de verdade.A piora cresce para a direita. O limiar é um número de negócio, escrito antes de o teste começar.
Quatro guardrails, um painel, uma coluna de valor-p. A coluna que separa os quatro é o intervalo de confiança, e é por isso que o intervalo pertence ao lado de todo guardrail no registro do experimento.

Exemplo trabalhado: a primária vence e o guardrail não diz nada

Um redesenho de checkout roda na amostra acima: 39.475 visitantes por variação, base de compra 4,0%, base de reembolso 1,2%. O limiar declarado antes de subir é que reembolsos não podem subir mais que 10% relativos, o que nessa base dá mais 0,12 ponto percentual. Rode os números você mesmo:

Calculadora de significância estatística
Controle (A)
Variação (B)
Controle (A) · Taxa-
Variação (B) · Taxa-
Melhora relativa-
valor-p-
IC 95% da diferença-

Teste z bilateral de duas proporções. "Sem significância" quase sempre quer dizer que falta amostra, não que as versões são iguais.

A métrica primária. O controle termina com 1.579 compras em 39.475 visitantes (4,000%), e a variação com 1.745 (4,421%). Isso dá z = 2,94, valor-p = 0,0033, melhora relativa de +10,5%, intervalo de confiança da diferença de +0,14 a +0,70 ponto percentual. Vitória limpa, exatamente do tamanho que o teste foi desenhado para achar.

O guardrail. Reembolsos terminam em 474 no controle (1,201%) e 512 na variação (1,297%). É um movimento de +8,0% relativos na direção errada, com z = 1,22 e valor-p de 0,2233. A leitura ingênua é que o guardrail está limpo.

Não está. O intervalo de confiança dessa diferença vai de -0,059 a +0,251 ponto percentual, e o limite superior de +0,251 pp equivale a +20,9% relativos numa base de 1,2%. O limiar declarado era +0,12 pp. O intervalo é quase o dobro do número que o negócio disse tolerar, então este teste simplesmente não consegue dizer se o redesenho ficou dentro do limite. Para liberar de verdade uma piora de 10% relativos, a taxa de reembolso precisaria de cerca de 135.624 visitantes por variação, uns 48 dias de tráfego em vez de 14.

Para contraste, é assim que um alarme de guardrail se parece de verdade na mesma amostra: reembolsos de 474 contra 592 dão +24,9% relativos, z = 3,64, valor-p = 0,00027, intervalo de +0,138 a +0,460 ponto percentual. Inteiramente acima do limiar, e nenhuma leitura desse resultado sobe sem conversa.

O registro honesto do primeiro caso tem três linhas: primária subiu 10,5% com significância; taxa de reembolso subiu 8,0% na direção, intervalo de -0,06 a +0,25 pp contra um limiar de +0,12 pp, não liberada nesta amostra; ação recomendada é subir com reembolso monitorado em rollout progressivo por quatro semanas. Essa é uma decisão diferente de “guardrails limpos, subindo”, e é a decisão que o dado sustenta.

Quantos guardrails, e a aritmética do alarme falso

Guardrail é barato de adicionar e caro de ignorar, e é assim que times acabam com uma lista de quinze e o hábito de espantar todos. A aritmética não perdoa: cada guardrail independente lido a um limiar de 5% adiciona a sua própria chance de alarmar por sorte.

Guardrails monitorados Chance de pelo menos um alarmar só por acaso
1 5,0%
2 9,8%
3 14,3%
4 18,5%
5 22,6%
6 26,5%
8 33,7%
10 40,1%

Com dez guardrails, dois em cada cinco testes mostram uma célula vermelha que não significa nada. O time aprende, corretamente, que célula vermelha costuma ser ruído, e então perde a que não era. De três a seis guardrails fixos, cada um com limiar escrito, ganha de quinze acompanhados de leve. Adicione um guardrail específico do teste só quando a mudança ameaçar algo que o conjunto fixo não cobre, e trate um estouro como gatilho para uma rodada de confirmação, não como veredito, a mesma disciplina que vale para uma vitória no limite na métrica primária. Os métodos de correção para decidir sobre várias métricas ao mesmo tempo estão em teste A/B/n com várias variações.

Um conjunto inicial para ecommerce e SaaS

Guardrail é específico do negócio, mas as categorias se repetem. O conjunto abaixo é ponto de partida, não padrão, e a coluna do limiar é a parte que o seu time precisa preencher com números reais.

Categoria Guardrail de ecommerce Guardrail de SaaS Por que ganha poder de veto
Velocidade Tempo de carregamento no percentil 75 Tempo até a tela principal ficar utilizável O experimento de lentidão do Bing em 2013 achou que cada 100 milissegundos de melhora valiam cerca de 0,6% de receita
Arrependimento Taxa de reembolso e devolução Cancelamento nos primeiros 30 dias Vitória de conversão paga por compradores que não queriam o produto não é vitória
Custo do atrito Contatos de suporte por 1.000 pedidos Chamados por 100 contas novas Transfere custo do funil para um time que não aparece no resultado do teste
Alcance futuro Descadastro de e-mail Desativação de notificações Gasta um ativo durável para comprar uma conversão de uma vez
Qualidade da vitória Ticket médio Mix de planos, fatia que cai no plano de entrada Detecta ganho construído inteiramente em desconto ou rebaixamento
Confiabilidade Taxa de erro no checkout Sessões sem crash O modo de falha que nunca aparece numa taxa de conversão

Duas notas sobre essa tabela. Primeiro, a linha de velocidade não é um guardrail simbólico. O relato de 2013 sobre experimentação no Bing descreve um experimento deliberado de lentidão, 10% dos usuários com 100 milissegundos a mais e outros 10% com 250 milissegundos a mais, por duas semanas, e reporta que cada 100 milissegundos de melhora valiam cerca de 0,6% em receita. Esse resultado é específico do Bing naquele momento e não deve ser transplantado como número, mas ele estabelece que latência é variável comercial de verdade, não questão de higiene.

Segundo, o mesmo artigo traz um alerta que pertence a esta matéria. Os autores citam uma afirmação publicada por outra empresa de que um atraso de 200 milissegundos não importou, e argumentam que a explicação mais provável é que o experimento não tinha poder estatístico para detectar a diferença, e não que a diferença não existisse. Isso é a falha do guardrail sem poder aparecendo em público, num post muito lido, de um time competente. Não é um erro exótico.

A decisão de subir quando os guardrails são lidos corretamenteDepois que a qualidade de dados passa e a métrica primária vence, cada intervalo de guardrail é comparado com o limiar declarado. Intervalo inteiramente dentro do limiar sobe. Intervalo que cruza o limiar é registrado como não medido e sobe com monitoramento em rollout progressivo. Intervalo inteiramente além do limiar exige um trade-off escrito de quem é dono da métrica.O que acontece depois que a métrica primária vencedados íntegrosdivisão, log, robôsprimária vencedeclarada, só umapara cada guardrail:intervalo contra limiarintervalo dentro do limiarliberado de verdadesobeintervalo cruza o limiarregistra como não medidosobe com monitoramentointervalo além do limiarestouro, dono decidetrade-off escritoA caixa do meio é a que a maioria dos painéis não tem. Sem ela, todo guardrail não medido é arquivado em silêncio como liberado.Repare que nenhuma caixa diz “ignora quieto”: um estouro ainda pode subir, mas só com um nome na decisão.
Três saídas, não duas. A coluna do meio é onde o risco de fato mora, e é a coluna que desaparece quando um guardrail é lido como valor-p.

Erros comuns com guardrail

Erro O que produz
Ler guardrail sem significância como liberado Pioras reais sobem, e o programa não distingue subida segura de subida não examinada
Escolher os guardrails depois de ver os resultados A lista vira o que sustenta a decisão já tomada
Nenhum limiar escrito Toda conversa sobre guardrail recomeça do zero e termina onde a pessoa mais insistente quiser
Quinze guardrails no painel Cerca de dois em cinco testes mostram célula vermelha por acaso, e o time aprende a ignorar vermelho
Tratar qualquer estouro como bloqueio automático Guardrails vão sendo removidos em silêncio em vez de discutidos, porque piora pequena é normal
Nenhum dono por guardrail Estouro vira reunião sem decisão e a subida acontece por inércia
Guardrail só dentro do teste, nunca depois Os danos raros e lentos, churn e reembolso principalmente, são exatamente os que um teste de duas semanas não vê

Se o problema recorrente é que os seus guardrails nunca têm poder para dizer nada, as respostas estruturais são redução de variância, coberta no nosso guia de CUPED, ou aceitar o guardrail como monitoramento pós-subida em rollout progressivo em vez de fingir que o experimento respondeu.

Faça isso automático na Donnu

Guardrail só funciona se o limiar existir antes de o teste começar e se o intervalo dele estiver visível ao lado do veredito, não enterrado a dois cliques. A Donnu A/B mantém os guardrails declarados e seus limiares presos ao experimento, reporta o intervalo de confiança ao lado de cada guardrail em vez de um selo solitário de significância, e marca o guardrail como não medido quando a amostra não resolve o limiar declarado, em vez de exibir um tique verde tranquilizador. Quando uma mudança vence a métrica primária e deixa um guardrail sem resposta, isso aparece como a pergunta em aberto que é.

Comece um teste grátis de 14 dias e defina os limiares dos seus guardrails antes da próxima subida.

Referências

Leia também: Significância estatística em teste A/B · SRM: divisão desigual de tráfego · Erros comuns em teste A/B · O problema do peeking · Calculadora de poder estatístico grátis · Read in English

Perguntas frequentes

O que são métricas de guardrail em teste A/B?
Métricas de guardrail são medidas que a mudança não pode piorar, mesmo que melhorá-las não seja o objetivo do teste. Dmitriev e colegas (KDD 2017) as definem como métricas que não indicam claramente o sucesso da funcionalidade testada, mas que o time não quer prejudicar de forma significativa na hora de decidir subir. Tempo de carregamento da página é o exemplo canônico: ninguém sobe uma funcionalidade para deixar a página mais rápida, mas uma funcionalidade que deixe a página muito mais lenta não deveria subir. A métrica primária decide se a mudança é boa; os guardrails decidem se ela é segura.
Guardrail com valor-p acima de 0,05 está liberado?
Não, e essa é a leitura mais cara do tema inteiro. Um teste dimensionado para uma métrica primária de 4% coleta amostra suficiente para resolver uma piora relativa de 10% ali, mas uma taxa de reembolso com base de 1,2% só resolve cerca de 19% relativos com essa mesma amostra. Um guardrail sem significância nesse teste é compatível com qualquer coisa entre uma melhora real e uma piora de 19%. Dmitriev e colegas (KDD 2017) documentam exatamente esse caso no MSN.com, onde uma métrica se moveu 0,5% sem significância enquanto o desenho só conseguia detectar 7,8% ou mais. Leia o intervalo de confiança, não o veredito.
Como definir o limiar de um guardrail?
Nomeie a maior piora que o negócio aceitaria em troca do ganho que o teste persegue, escreva isso antes de subir o teste e depois compare o limite superior do intervalo de confiança com esse número, em vez de comparar o valor-p com 0,05. Se o limite superior do intervalo ficar abaixo do limiar, o guardrail está de fato liberado naquela amostra. Se ficar acima, o teste simplesmente não respondeu à pergunta, independente do valor-p. Definir o limiar depois de ver os dados transforma o guardrail em formalidade.
Quantos guardrails um teste deve ter?
Poucos o bastante para que cada um seja levado a sério, o que na prática significa de três a seis para a maioria dos times. Guardrail multiplica alarme falso: num limiar de 5%, a chance de pelo menos um entre cinco guardrails independentes cruzar a linha por puro acaso é de cerca de 22,6%, e com oito ela vai a cerca de 33,7%. Uma lista longa treina o time a ignorar alarme, o que é pior do que não ter guardrail nenhum. Mantenha o conjunto fixo pequeno e adicione um guardrail específico do teste só quando a mudança ameaçar algo que o conjunto fixo não cobre.
Qual a diferença entre métrica de guardrail e métrica secundária?
Uma métrica secundária ajuda a explicar o resultado primário e é lida por direção e diagnóstico. Um guardrail tem poder de veto: ele pode barrar uma subida que a métrica primária venceu. Essa diferença precisa ser declarada antes do teste começar, porque uma métrica promovida a guardrail depois dos resultados está sendo usada para justificar uma decisão já tomada. Deng e Shi (KDD 2016) descrevem ainda um segundo papel do guardrail, o de substituir a métrica-objetivo nos casos em que ela não se aplica ao time ou à superfície testada.
Guardrail precisa do mesmo poder estatístico da métrica primária?
Idealmente sim, e na prática quase nunca tem, e é por isso que a leitura por limiar importa tanto. Dmitriev e colegas (KDD 2017) recomendam análise de poder a priori pelo menos para a OEC e para as métricas de guardrail, com no mínimo 80% de poder para detectar mudanças pequenas o bastante para importar comercialmente. Quando o tráfego para dar poder a um guardrail raro não existe, os caminhos honestos são aceitá-lo como monitoramento direcional com a faixa detectável declarada, rodar um teste de segurança dedicado e mais longo depois da subida, ou acompanhar o guardrail num rollout progressivo em vez de dentro do experimento.
Todo alarme de guardrail deve barrar a subida?
Não automaticamente, mas deve sempre forçar uma decisão explícita de uma pessoa com nome, nunca um silêncio. Pioras pequenas em guardrail são esperadas: Dmitriev e colegas observam que quase toda funcionalidade adicionada aumenta um pouco o tempo de carregamento. A regra útil é que guardrail dentro do limiar declarado sobe sem discussão, guardrail acima do limiar sobe só com um trade-off escrito e aceito por quem é dono daquela métrica, e guardrail cujo intervalo é largo demais para dizer alguma coisa entra no registro como não medido, jamais como aprovado.