Skip to main content
Retenção é uma razão entre duas definições. Agrupe as pessoas por quando e conte quantas voltaram em qual outro quando — mude qualquer uma das metades e o mesmo produto retém 40% ou 80%. Esta página são as metades. O painel desenha isso em Analytics → Retenção, atrás de analytics:read.

O que é uma coorte

Uma semana UTC, começando na segunda-feira. Um contato pertence à semana do seu primeiro evento $auth.identified — o fato que o UserKit publica no momento em que alguém deixa de ser anônimo. Quando não existe esse evento, vale a semana em que o contato foi criado: um contato nascido por POST /v1/contacts ou por importação de CSV não dispara fato de auth nenhum, e descartá-los excluiria silenciosamente todo tenant que migrou a base de usuários para cá. Visitantes anônimos não têm coorte alguma. Um visitante ganha uma linha de contato e uma sessão, então os eventos dele carregam um contact_id — que é exatamente por que “tem contato” não pode ser o que uma coorte conta. Só identificados, a mesma exclusão que mantém visitantes fora do medidor de contatos ativos.

O que significa retido

O contato produziu pelo menos um evento autenticado naquela semana: um sign-in, ou qualquer coisa que ele tenha feito logado. Não um page view de um navegador deslogado, e não a abertura de um e-mail. A semana 0 é a própria semana da coorte, então a retenção dela é 1 por construção — uma coorte é 100% dela mesma. Os offsets vão densos até a semana atual, então uma semana em que ninguém voltou é um zero no gráfico e não um buraco nele.

Como ler

contacts é o tamanho da coorte e o denominador de toda retention abaixo dela. retention é uma fração entre 0 e 1, não uma porcentagem — a porcentagem está a uma multiplicação de distância e uma razão não perde precisão no caminho até o gráfico. Uma coorte de três semanas tem três entradas em weeks. A quarta não é um zero; ela ainda não aconteceu, e desenhá-la seria reportar um churn que nenhuma semana teve a chance de contradizer.

Oito semanas, recalculadas

Um job noturno recalcula as últimas oito semanas de coorte inteiras, a partir dos seus eventos crus, e faz upsert do resultado. Rodar duas vezes produz os mesmos números. Linhas mais antigas que essa janela congelam onde a última execução as deixou. O congelamento é o objetivo: seu histórico de eventos crus pode envelhecer e sumir sem que o gráfico se mova por baixo. Isso também significa que uma correção só alcança uma coorte enquanto ela ainda está dentro da janela. O período padrão cobre essas oito semanas. from e to estreitam o recorte, e são comparados contra a segunda-feira da coorte — uma coorte é desenhada inteira ou não é desenhada, porque meia curva lida como se fosse a curva toda não é uma retenção mais grosseira, é uma retenção errada. A janela de retenção de analytics do seu plano vale aqui do mesmo jeito que vale para a contagem de eventos.

O que uma resposta vazia significa

status é o campo que impede um cohorts vazio de mentir, e ele existe porque os dois jeitos de chegar num vazio pedem ações opostas: É ready sempre que cohorts não está vazio. A distinção entre os outros dois é perguntada aos seus contatos em vez de adivinhada a partir do vazio: reportar “sem dados” para quem está com o job parado é exatamente a tranquilização que faz a pessoa parar de procurar.

De quem é a meia-noite

As semanas são UTC no armazenamento e no fuso da sua organização na exibição, a mesma regra que a contagem de eventos e as métricas de receita seguem. Decidir isso uma vez é o que permite sobrepor uma curva de retenção e um gráfico de eventos.