Funil de conversão por etapa: o número que o painel deve calcular por você
Um funil de verificação só serve se bater com a contagem bruta de sessões. Como a UNIFOKAL agrega a escada no servidor, o que cada etapa significa e o que fazer com o tempo de quem parou.
Foto: Chris Ried, Unsplash
Toda equipe que integra verificação de identidade acaba fazendo a mesma conta: de cada cem sessões criadas, quantas o titular abriu, quantas chegaram ao envio da captura, quantas receberam decisão e quantas foram aprovadas. A conta parece simples e costuma ser feita do jeito errado: exporta-se a lista de verificações, monta-se uma planilha e o número nasce de uma amostra, com o recorte que coube no export. Este artigo explica como o painel da UNIFOKAL passou a calcular o funil por etapa no servidor, o que cada etapa significa e como ler o tempo de quem parou.
Já escrevemos sobre onde o usuário desiste da verificação do ponto de vista do produto e da jornada. Aqui o assunto é o instrumento: o que precisa ser verdade para o número da tela ser confiável.
O problema do número montado no navegador
A primeira versão do gráfico de verificações por dia do nosso painel era montada no navegador. A tela pedia a lista de verificações da janela, página a página, e agrupava por dia em JavaScript. Para uma conta pequena isso funciona. Para uma conta grande, o volume da janela passa do que faz sentido trazer para o navegador, e a tela precisa escolher entre trazer tudo, o que fica lento, e trazer as N mais recentes, o que mente por omissão. Nós escolhemos avisar: a tela dizia "mostrando as N mais recentes de M no período". A frase era honesta, e a existência dela provava que o número estava errado para quem mais precisava dele.
A correção não é uma paginação mais esperta. É mudar de lugar o cálculo. O funil agora é uma consulta agregada no servidor, recortada por organização, ambiente, janela e, opcionalmente, flow. A resposta são cinco linhas e uma série diária, e o custo de uma tela deixa de crescer com o tamanho da base. O gráfico da página inicial do painel lê a mesma série, então os dois lugares nunca discordam entre si.
A escada é cumulativa, e isso é uma propriedade, não uma esperança
Um funil é uma partição disfarçada de escada. Cada sessão precisa cair em exatamente uma etapa de "parou aqui", e cada etapa de "chegou aqui" precisa ser menor ou igual à anterior. O erro típico não é um número errado numa etapa: é uma sessão que cai em duas etapas, ou em nenhuma, por causa de um estado que ninguém previu ao escrever o predicado. Esse erro não aparece num teste escrito por quem escreveu o predicado. Aparece numa amostra que ninguém desenhou.
Por isso a escada da UNIFOKAL é definida de um jeito em que cada etapa implica a anterior: uma sessão com captura enviada é, por construção, uma sessão que o titular abriu; uma sessão decidida é, por construção, uma sessão com captura enviada; uma sessão aprovada é uma sessão decidida. A monotonicidade deixa de depender do estado do dado e passa a ser uma propriedade do predicado. E a prova disso não é um caso feliz: é um teste de propriedade que semeia dezenas de sessões com estado, flow, instante e desfecho sorteados, imprime a semente no log para o vermelho ser reproduzível, e afirma para toda amostra que a soma dos parados é igual ao total de sessões da janela, que a escada nunca sobe e que o recorte por flow soma o total sem filtro.
Se você constrói o seu próprio funil sobre os dados exportados, vale copiar a disciplina: escreva os predicados de forma cumulativa e teste a partição, não o caso bonito.
O que cada etapa significa
As cinco etapas do painel são as cinco perguntas que uma operação faz, na ordem em que a jornada acontece.
- Sessão criada. O seu servidor chamou a criação de sessão. É o topo do funil e, por construção, é a contagem bruta de sessões da janela.
- Titular abriu a verificação. A sessão saiu do estado inicial: o widget foi montado ou o link hospedado foi aberto. A distância entre esta etapa e a anterior é o que se perde antes de o titular ver a tela.
- Captura enviada. O titular concluiu a captura e o pipeline recebeu o material. A distância para a etapa anterior é a desistência dentro do widget: câmera, documento, prova de vida.
- Decisão emitida. A verificação saiu do estado pendente. Uma sessão parada aqui é uma verificação em análise ou em revisão manual.
- Aprovada. O desfecho final foi aprovação. A razão entre esta etapa e a primeira é a taxa de conversão da janela.
O painel mostra, para cada etapa, quantas sessões chegaram, quantas pararam ali e o tempo mediano de quem parou. Mediana, e não média, porque a distribuição desses tempos tem cauda longa: uma única sessão esquecida aberta por dias arrasta a média para um número que não descreve ninguém.
Como ler o tempo de quem parou
O tempo mediano é a coluna que separa um problema de produto de um problema de operação. Um tempo curto na etapa "titular abriu" com muitos parados indica que a pessoa entrou e saiu: a tela de consentimento, o pedido de câmera ou a primeira instrução estão fazendo o titular desistir cedo. Um tempo longo em "captura enviada" indica gargalo na análise ou na fila de revisão, e a ação é olhar a fila de revisões manuais, não o widget. Um tempo longo em "sessão criada" com o titular sem abrir a verificação costuma ser um link que nunca chegou, e a resposta está na tela de Sessões, que existe para responder "cliquei e não aconteceu nada".
O recorte por flow completa a leitura. Dois flows com módulos diferentes têm funis diferentes por desenho, e comparar os dois no mesmo gráfico esconde o que importa. Recorte, compare a etapa em que cada um perde mais e decida por flow.
O que o funil não é
O funil não é um relatório de cobrança. Ele conta sessões e desfechos; o que foi cobrado está no extrato e na fatura, que são outra fonte e outro documento. Somar as duas grandezas numa tela produziria um número que não é de nenhuma das duas.
O funil também não carrega dado de titular. Ele devolve contagens e medianas por etapa, e por isso qualquer papel do painel pode abri-lo. É a mesma disciplina de minimização que a Lei 13.709/2018 pede no artigo 6º, inciso III: tratar o mínimo necessário para a finalidade. A finalidade aqui é saber onde a jornada para, e para isso bastam números.
Perguntas frequentes
O funil inclui as verificações do monitoramento contínuo?
Não. A verificação de sistema do monitoramento contínuo nasce fora do onboarding e é excluída da série no próprio servidor, como o gráfico da página inicial já fazia. Os alertas do monitoramento continuam visíveis na tela de Monitoramento e na de Verificações, onde há ação a tomar.
Por que a janela tem teto de 90 dias?
Porque uma janela aberta é uma varredura da tabela inteira para servir uma tela, e o custo disso apareceria como lentidão geral da API. Noventa dias cobrem um trimestre de comparação; para mais do que isso, a exportação de dados é o caminho certo.
O número do painel bate com a minha planilha?
Se a sua planilha conta sessões da janela, sim, por construção: o topo do funil é a contagem bruta. Se ela conta verificações, os números divergem no exato tamanho das sessões que nunca viraram verificação, e essa diferença é a primeira etapa do funil.
Fontes citadas
- Lei nº 13.709/2018 (Lei Geral de Proteção de Dados Pessoais), artigo 6º, inciso III, princípio da necessidade. Presidência da República. https://www.planalto.gov.br/ccivil_03/_ato2015-2018/2018/lei/l13709.htm
- Documentação do painel de operação da UNIFOKAL: funil, registro de requisições e orçamento.
