---
id: saas/expansao-upsell
industria: SaaS e tecnologia
uso: específico
esforco: médio
grao: Cliente x produto x mês; empresa no momento de recompra
---

# Expansão, upsell e momento de recompra

Quanto da receita nova veio da base, quais clientes ainda não têm o módulo que faz sentido e quem está no momento de comprar de novo.

## Resumo executivo

**Para quem:** Empresas de SaaS com mais de um módulo ou plano, ou com venda recorrente para a mesma base, que querem crescer a receita dos clientes atuais.

**O que resolve**

- Expansão separada de migração de plano e de troca de ciclo.
- Para cada módulo, quem já tem, quem não tem e quem deveria ter.
- Uma fila de recompra no momento certo, pelo ciclo de cada cliente.

**Por que importa:** Expansão é a alavanca mais barata de NRR, mas some no número total: o upsell vira venda nova, a troca de mensal para anual vira expansão e o cross-sell não aparece por produto. Sem saber quem tem o quê, o CS oferece o módulo para quem já comprou e esquece quem está pronto para comprar.

**Perguntas de negócio que responde**

- Quanto MRR de expansão tivemos no trimestre, e em quais produtos?
- Quais clientes do produto principal ainda não usam o módulo X?
- Quais empresas estão no momento de recompra este mês?
- Quanto da receita nova do mês veio da base?
- Qual a taxa de attach de cada módulo por plano?
- Quais contas têm mais potencial de upsell para o CS trabalhar?

**O que você precisa**

- Billing com os itens e produtos de cada assinatura ou cobrança
- Histórico das assinaturas (foto diária ou eventos de mudança)
- Os pipelines de expansão e CS do CRM e a lista de segmentos que entram na repescagem

**O que você recebe**

- Waterfall de MRR por cliente e produto, com upsell e cross-sell marcados
- Matriz de attach por módulo e plano
- Fila de upsell e de recompra por dono da conta
- Um agente de IA que responde sobre expansão e quem está pronto para comprar

## Detalhado

### O problema

O billing guarda o estado atual: quando o cliente aumenta a quantidade ou adiciona um módulo na mesma assinatura, a foto de ontem é sobrescrita e a expansão some. Quando ele cancela e recontrata para trocar de plano, aparece como churn e cliente novo. E o upsell fechado no CRM entra na meta de vendas novas. Ninguém sabe quanto a base cresceu, nem para quem oferecer o próximo módulo.

### Regras de negócio

1. **Expansão é diferença por cliente e produto.** Calcule o MRR de cada cliente por produto no fim do mês e compare com o fim do mês anterior. Aumento num produto que o cliente já tinha é upsell. MRR num produto que o cliente não tinha, com o cliente já pagante, é cross-sell: expansão marcada como novo produto. A soma da lente por produto fecha com a lente por cliente, e as duas usam a mesma fronteira de mês. (Evite: Somar o MRR de novos itens do mês, sem comparar com o mês anterior.)
2. **Capture a mudança dentro da assinatura.** Mudança de quantidade, de preço, adição ou remoção de item e desconto aplicado na mesma assinatura não aparecem numa tabela que só guarda o estado atual. Use eventos de mudança da assinatura ou uma foto diária dos itens. Os eventos completam a foto, não a substituem: assinatura nova e cancelada continuam vindo da foto, para não contar duas vezes. (Evite: Medir expansão só com assinaturas novas.)
3. **Migração não é expansão.** Troca de mensal para anual, renovação de ciclo e cancelar e recontratar para mudar de plano são migração do mesmo cliente. Separe expansão natural de migração numa coluna: a migração mexe no MRR mas não é venda para a base. Renovação com mesma quantidade e preço não é movimento. (Evite: Contar a troca de ciclo ou o recontrato como upsell.)
4. **Expansão sem cobrança é suspeita.** Num plano mensal, expansão sem nenhuma cobrança paga no mês indica cadastro adiantado ou item errado: marque para revisão. Em plano anual, expansão em mês sem cobrança é normal. Clientes vindos de canais que não geram fatura no billing (checkout externo, loja) disparam falso alarme e ficam fora dessa checagem. (Evite: Aceitar toda expansão do billing sem conferir cobrança.)
5. **Upsell fechado no CRM é expansão.** Negócio de upsell ganho conta como expansão no forecast e na comissão, nunca na meta de logo nova. Negócio no funil de vendas novas para empresa que já é cliente é expansão mal classificada e vai para revisão. (Evite: Deixar o upsell entrar como venda nova.)
6. **Attach por módulo sobre a base elegível.** Taxa de attach do módulo = clientes ativos com o módulo / clientes ativos que podem comprá-lo (plano e segmento elegíveis). Separe o attach de aquisição (módulo comprado na venda inicial) do attach de expansão (comprado depois). Clientes elegíveis sem o módulo e com uso relacionado viram a lista de upsell. (Evite: Dividir pelos clientes totais, inclusive quem não pode comprar.)
7. **Itens de cobrança se validam pela soma.** Quando o valor extra da cobrança é decomposto por item, pode não haver chave única e haver linhas idênticas legítimas, como dois itens de mesmo valor. Deduplicar descarta receita. Valide pela soma dos itens contra o total da cobrança e crie uma linha de não itemizado para a diferença, exibida como lacuna e nunca somada ao cross-sell. Estornos e itens excluídos ficam fora. (Evite: Deduplicar linhas iguais de itens de cobrança.)
8. **Momento de recompra pelo ciclo de cada empresa.** Para venda recorrente fora da assinatura (pacotes, créditos, renovações avulsas), agrupe os ganhos da empresa por dia, calcule o intervalo médio entre compras nos últimos 6 a 12 meses e marque o momento de recompra quando os dias desde a última compra passam do ciclo médio menos uma folga (por exemplo, 7 a 14 dias), com um piso declarado, como 30 dias. Empresa com uma compra só usa um ciclo padrão declarado. (Evite: Uma régua única de 90 dias para todas as empresas.)
9. **Fora da repescagem quem não deve receber.** Exclua da fila de expansão as contas inativas, em aviso de cancelamento ou inadimplentes, as atendidas por canal próprio (distribuidores, grandes contas com time dedicado) e as marcadas com restrição. A lista de exclusões é escrita e revisada pelo gestor. (Evite: Mandar toda a base para a fila de upsell.)
10. **Meça se a fila funciona.** Guarde cada entrada na fila de recompra ou de upsell com a data e o desfecho: ganho, aberto, perdido ou sem negócio. A curva de ganhos por dias depois da entrada mostra se o momento está bem calibrado e quanto tempo o time leva para agir. (Evite: Reescrever a fila todo dia sem guardar o histórico.)

### Como cada movimento de produto é classificado

Por cliente x produto x mês, comparando o fim do mês com o fim do mês anterior.

- **produto já existia, MRR do produto subiu** → Upsell (`fim - início`)
- **produto novo, cliente já pagante** → Cross-sell (`MRR do produto no fim`)
- **mesmo cliente, troca de plano ou de ciclo** → Migração, fora da expansão natural
- **cancelou e recontratou em até 30 dias** → Migração, não churn e novo
- **renovação com mesma quantidade e preço** → Sem movimento
- **MRR do produto caiu, cliente segue pagante** → Contração no produto (`início - fim`)
- **produto zerou, cliente segue com outro produto** → Churn de produto (`início`)

### Definições

| Métrica | Definição |
|---|---|
| MRR de expansão | soma de fim - início nos pares cliente x produto em que o MRR subiu, com o cliente pagante nos dois meses, sem migração |
| Cross-sell | MRR de fim de mês de produtos que o cliente não tinha no mês anterior, sendo ele pagante no mês anterior |
| Migração | mudança de MRR por troca de ciclo, renovação ou recontrato do mesmo cliente; coluna própria, fora da expansão natural |
| Taxa de attach | clientes ativos com o módulo / clientes ativos elegíveis ao módulo, no fim do mês |
| Receita nova da base | (expansão + cross-sell) / (expansão + cross-sell + MRR de logos novos), por mês |
| Ciclo médio de recompra | média dos dias entre dias de compra consecutivos da empresa na janela; ciclo padrão quando há uma compra só |
| Momento de recompra | dias desde a última compra maior ou igual ao maior valor entre o piso e o ciclo médio menos a folga |
| Conversão pós-momento | empresas que entraram no momento de recompra e ganharam negócio em até N dias / empresas que entraram |

### Armadilhas

- **A expansão sumiu na foto.** A tabela de MRR só guardava o estado atual da assinatura, e aumentos de quantidade na mesma assinatura nunca apareceram como expansão. Como evitar: Grave eventos de mudança dos itens ou uma foto diária.
- **Renovação zerou o fim do mês.** Um filtro que tirava registros de migração zerava o MRR do último dia quando o único registro daquele dia era uma renovação do billing, e a visão mensal perdia receita todo mês. Como evitar: Some a foto do mês sem filtrar migração; separe natural e migração só nos movimentos.
- **Deduplicar descartou receita.** Itens de cobrança idênticos foram tratados como duplicados. Comparando com o total das cobranças, a reconciliação piorou: eram itens legítimos de mesmo valor. Como evitar: Valide pela soma contra o total e exponha a diferença como não itemizado.
- **Falso alarme de canal externo.** O alarme de expansão sem cobrança marcava quase metade dos clientes de um canal de checkout externo, que nunca gera fatura no billing, contra poucos por cento dos demais. Como evitar: Restrinja a checagem a planos mensais de canais que geram fatura.
- **Holding contada em cada marca.** Um contrato fechado na holding aparecia de novo em cada marca filha, e a expansão por marca contava o mesmo MRR mais de uma vez. Como evitar: Rateie o MRR da holding entre as marcas por regra escrita e pule filhas com contrato próprio.
- **Quem compra toda semana lotou a fila.** Com ciclo calculado por negócio, empresas que fechavam vários pedidos no mesmo dia e compravam toda semana entravam no momento de recompra quase todo dia. Como evitar: Agrupe compras por dia e aplique um piso ao ciclo.

### Teste de aceitação

- [ ] Para cada mês, a soma dos movimentos da lente por produto é igual à soma da lente por cliente.
- [ ] Nenhum par cliente x produto x mês tem mais de uma categoria de movimento.
- [ ] A soma dos itens de cada cobrança, com a linha de não itemizado, fecha com o total da cobrança.
- [ ] Nenhuma empresa da lista de exclusões aparece na fila de recompra ou de upsell.
- [ ] Migrações ficam na coluna própria e não entram no MRR de expansão natural.

### Context document

```text
Expansão e upsell
- Movimento por cliente x produto = MRR do produto no fim do mês comparado com o fim do mês anterior.
- Upsell = aumento num produto que o cliente já tinha. Cross-sell = produto novo para cliente já pagante.
- Migração (troca de ciclo, renovação, recontrato do mesmo cliente) é coluna própria. Não conte como expansão.
- Renovação com mesma quantidade e preço não é movimento.
- Upsell ganho no CRM é expansão, nunca logo nova.
- Attach = clientes ativos com o módulo / clientes ativos elegíveis ao módulo.
- Itens de cobrança não são deduplicados. A diferença para o total da cobrança aparece como não itemizado e não entra no cross-sell.
- Momento de recompra = dias desde a última compra >= max(<piso> dias, ciclo médio - <folga> dias), com compras agrupadas por dia.
- Fora da fila: contas inativas, em aviso de cancelamento, inadimplentes, canal próprio e contas com restrição.
Exceções por cliente:
- <cliente>: módulo <módulo> só é elegível nos planos <planos>.
- <cliente>: segmentos <segmentos> não entram na repescagem.
```

### Variações

- **Previsão de expansão por conta:** Um modelo calibrado dá a probabilidade de upsell e o ganho de MRR esperado de cada conta, e o topo vira a fila de expansão do mês.
- **Migração para o anual:** Uma fila própria de clientes mensais com uso estável para oferecer o plano anual, medida à parte da expansão.
- **Holding e marcas:** Contrato fechado na holding com uso por marca: rateie o MRR por regra escrita e não conte a mesma receita em duas marcas.
