Separe a melhora do seu trabalho da sazonalidade em 8 semanas
Resposta curta
Você monta uma régua de oito semanas com os contatos da sua conta na Systeme.io, normaliza cada semana por dia de operação e compara a última com a mediana das quatro anteriores. O que ficar dentro da faixa é calendário; o que sair é candidato a ser seu trabalho, e o guia diz o que fazer na segunda.
Por Alan Victor · · · 8 min de leitura
- 1Feche a semana e puxe oito semanas de números
- 2Normalize por dia e calcule a linha de base
- 3Rode o cálculo que imprime o sinal
- 4Marque no painel o que foi trabalho seu
- 5o que fazer na segunda com esse número?
No fim deste guia você tem oito semanas da sua conta na Systeme.io em uma tabela, um script de poucas linhas que imprime a variação da última semana contra a linha de base, e uma regra escrita que diz se a melhora veio do seu trabalho ou do calendário. A revisão de segunda deixa de ser opinião.
Sai um guia por dia, e o canal do Telegram avisa quando sai. A ferramenta que eu uso para a página, a captura e o e-mail automático no mesmo lugar é a Systeme.io, que tem plano gratuito.
O que você vai ter no fim
- Uma tabela com uma linha por semana, o total de contatos e a taxa por dia de operação.
- Um comando que roda toda segunda e imprime quatro linhas: a taxa da semana, a mediana, a faixa e se a semana saiu da faixa.
- Uma tag por intervenção sua, com a data no nome, aplicada dentro da Systeme.io, e a regra de decisão em três desfechos.
Etapa 1: Feche a semana e puxe oito semanas de números
Resposta direta: trabalhe com semanas fechadas de segunda a domingo e conte os contatos novos de cada semana na sua conta na Systeme.io — oito linhas, sendo a última a semana que acabou.
Na Systeme.io os contatos ficam na área de contatos, cada um com a data em que entrou. Some os que entraram entre segunda e domingo e anote o total. Anote também quantos dias daquela semana você realmente teve operação: publicou página, enviou e-mail, rodou anúncio.
Aqui está o ganho de fazer isso na Systeme.io: a página de captura, a lista, o envio de e-mail e a automação vivem na mesma conta. O número da semana já está no painel onde você opera, sem exportar de três lugares diferentes e sem descobrir depois que os totais não fecham. É por isso que eu monto essa régua lá e não em um conjunto de ferramentas separadas.
A régua só vale se não tiver mudado no meio da série. Trocou a página de captura, mudou a frequência de envio, começou a rodar anúncio: corte a série no ponto da mudança em vez de misturar semanas que já não se comparam.
Monte um arquivo de texto chamado semana.csv com três colunas: semana, contatos, dias. Nada de espaço depois da vírgula.
Etapa 2: Normalize por dia e calcule a linha de base
Resposta direta: divida os contatos da semana pelos dias com operação; a linha de base é a mediana das quatro semanas anteriores, e a faixa vai do menor ao maior valor dessas quatro.
Use mediana, não média. Uma semana com lançamento puxa a média para cima e estraga a régua das semanas seguintes; a mediana ignora esse puxão. Com quatro semanas, a mediana é a média das duas do meio depois de ordenar os valores.
A faixa é o que define ruído. Se a semana atual ficou entre o menor e o maior valor das quatro anteriores, a oscilação é do tamanho que a sua operação já produz sozinha — dia da semana, horário do envio, feriado. Não é melhora nem piora do seu trabalho.
O script sempre olha as quatro semanas imediatamente anteriores. As mais antigas ficam no arquivo como histórico, para você ver a série andando de mês em mês. O plano grátis da Systeme.io já basta para começar a medir: uma página de captura e uma lista produzem as oito semanas que essa conta precisa.
Etapa 3: Rode o cálculo que imprime o sinal
Resposta direta: salve o arquivo calculo.js na mesma pasta do CSV e rode node calculo.js; ele imprime quatro linhas e a última diz SIM ou NAO.
O CSV abaixo é fictício, só para você ver o formato. Troque pelos seus números.
semana,contatos,dias
2026-09-21,28,5
2026-09-28,31,5
2026-10-05,34,5
2026-10-12,30,5
2026-10-19,41,5
O script usa só o que já vem no Node, sem instalar biblioteca nenhuma.
const fs = require('fs');
const linhas = fs.readFileSync('semana.csv', 'utf8').trim().split('\n').slice(1);
const sem = linhas.map(function (l) {
const p = l.split(',');
return { semana: p[0], contatos: Number(p[1]), dias: Number(p[2]), taxa: Number(p[1]) / Number(p[2]) };
});
const atual = sem[sem.length - 1];
const base = sem.slice(-5, -1).map(function (s) { return s.taxa; }).sort(function (a, b) { return a - b; });
const mediana = (base[1] + base[2]) / 2;
const varPct = ((atual.taxa - mediana) / mediana) * 100;
console.log(atual.semana + ': ' + atual.contatos + ' contatos em ' + atual.dias + ' dias = ' + atual.taxa.toFixed(2) + '/dia');
console.log('base (4 semanas): mediana ' + mediana.toFixed(2) + '/dia, faixa ' + base[0].toFixed(2) + ' a ' + base[3].toFixed(2));
console.log('variacao vs mediana: ' + (varPct >= 0 ? '+' : '') + varPct.toFixed(1) + '%');
console.log('fora da faixa: ' + (atual.taxa > base[3] || atual.taxa < base[0] ? 'SIM' : 'NAO'));
A saída, com o CSV acima, é exatamente esta:
2026-10-19: 41 contatos em 5 dias = 8.20/dia
base (4 semanas): mediana 6.10/dia, faixa 5.60 a 6.80
variacao vs mediana: +34.4%
fora da faixa: SIM
Se o Node não achar o arquivo, ele para com Error: ENOENT: no such file or directory, open 'semana.csv' — quase sempre é o terminal aberto em outra pasta, ou o arquivo salvo como semana.csv.txt. Se a segunda linha sair como mediana NaN/dia, o CSV tem menos de cinco linhas de dados: a conta precisa de quatro semanas de base mais a semana atual.
Para fazer isso sem montar servidor
O que este guia faz por API, a Systeme.io faz por formulário: página, lista, etiqueta e e-mail automático na mesma conta. É a conta em que eu testo o que aparece aqui, e o plano gratuito já dá para publicar e capturar.
Etapa 4: Marque no painel o que foi trabalho seu
Resposta direta: crie uma tag por intervenção, com a data no nome, e aplique aos contatos que entraram depois dela.
Na Systeme.io as tags ficam junto da área de contatos. Use uma tag por mudança, no formato teste-2026-10-19-preco: a data é o dia em que a mudança entrou no ar, não o dia em que você teve a ideia.
Para que serve: na semana seguinte você conta só os contatos que carregam a tag e compara com os que entraram antes dela, na mesma semana do calendário. É a única forma de saber se a diferença que o script mostrou tem a sua mão atrás.
Você pode aplicar a tag na mão ou deixar a automação da Systeme.io marcar sozinha, com uma regra que aplica a tag quando o contato entra pela página daquela mudança. Isso poupa o trabalho de lembrar e evita a tag no contato errado — o passo a passo da regra está na central de ajuda da Systeme.io.
Se você opera pela API, o mesmo recorte existe por lá, e a documentação oficial da API é onde esse passo está escrito para quem faz por código. Este guia fica no painel porque é o caminho mais curto para quem faz isso uma vez por semana.
Etapa 5: o que fazer na segunda com esse número?
Resposta direta: se a semana ficou dentro da faixa, não mexa em nada; se ficou fora e você mudou uma coisa só, repita essa coisa por mais quatro semanas; se ficou fora e você mudou várias, a leitura é indeterminada e a correção é mudar uma por semana.
| O que o script mostrou | O que provavelmente é | O que fazer na segunda |
|---|---|---|
| Dentro da faixa | variação normal da operação | nada. Repita o que já faz e continue medindo |
| Fora da faixa, com uma mudança só na semana | candidata a ser do seu trabalho | repita a mudança e meça as quatro semanas seguintes |
| Fora da faixa, com várias mudanças | indeterminado | uma mudança por semana, a partir de agora |
| Fora da faixa, sem nenhuma mudança sua | calendário ou fator externo | registre na tag e não reescreva a página |
O erro que custa caro é o inverso: ver a semana fora da faixa, creditar ao seu trabalho e repetir uma mudança que só pegou carona na sazonalidade. Você gasta o mês seguinte otimizando o que não era a causa.
É aqui que a Systeme.io fecha o ciclo por você: a página da mudança, o e-mail que a anuncia e a automação que marca a tag saem do mesmo painel que você já abriu para medir. A mudança da semana entra documentada sem custo extra, e a decisão de segunda não depende de reconstruir o histórico de cabeça.
Se você ainda não tem essa conta, o convite é simples: crie a conta grátis da Systeme.io pelo botão desta página e faça a Etapa 1 agora, com a semana que acabou. Cada semana sem medir é uma semana de decisão tomada no escuro, e esse histórico você não recupera depois.
O que eu não vou afirmar
- Não vou afirmar que a semana fora da faixa foi causada pela sua mudança. O cálculo separa o que é grande do que é pequeno; causa exige comparação com um grupo que não recebeu a mudança.
- Não vou afirmar que quatro semanas bastam para qualquer operação. Com 5 a 10 contatos por semana a faixa é larga e quase tudo cai dentro dela.
- Não vou afirmar que a sazonalidade se repete igual todo ano. Feriado móvel e data de pagamento mudam de semana.
- Não vou afirmar meta, conversão ou faturamento seu. Nenhum número deste guia é expectativa de resultado.
Travou em alguma etapa?
Abra uma discussão em github.com/alanvito1/funil-simples dizendo em que passo parou. Dúvida que aparece mais de uma vez tem boa chance de virar guia, e o código deste site está no mesmo lugar, aberto.
Se ainda não tem onde publicar o que montou, a conta gratuita da Systeme.io resolve a página e a lista.
Perguntas frequentes
Como saber se o aumento de contatos veio do meu trabalho ou da época do ano?
Comparando a taxa por dia da semana atual com a mediana das quatro semanas anteriores. Se a taxa ficou entre o menor e o maior valor dessas quatro, a oscilação é do tamanho que a operação já produz sozinha e não há evidência de melhora. Se ficou fora, e você mudou uma coisa só naquela semana, vale repetir a mudança por mais quatro semanas para confirmar.
Quantas semanas de histórico eu preciso para separar sazonalidade de melhora?
Quatro semanas fechadas já formam uma faixa utilizável, e oito reduzem o falso positivo. O cálculo usa sempre as quatro semanas imediatamente anteriores à semana medida; as mais antigas ficam no arquivo como histórico, para você comparar mês a mês.
Preciso de planilha ou instalar algum programa para fazer essa conta?
Não. Basta um arquivo de texto com três colunas e o Node, que é o mesmo programa que roda qualquer script de terminal no seu computador. O script não instala biblioteca nenhuma e imprime o resultado direto no terminal; os contatos você tira da área de contatos da sua conta na Systeme.io.
E quando a semana tem feriado?
Você divide os contatos pelos dias em que realmente teve operação, e não por sete. Feriado derruba o total sem que nada tenha piorado; normalizar por dia ativo tira esse efeito da conta e deixa a semana comparável com as outras da série.
Isso serve para vendas ou só para contatos?
Serve para qualquer contagem que você consiga puxar por semana: vendas, checkouts iniciados, cliques em um link. O que muda é o nome da coluna no CSV; a conta de mediana, faixa e variação continua a mesma, e na Systeme.io as vendas do checkout aparecem na mesma conta em que os contatos entram.
Receba o resto por e-mail
Eu testo ferramenta de funil e e-mail e mando o que descubro.