# Logica de Classificacao — Arvore de Decisao + Casos de Borda

Documento operacional. Cada contato da base passa por essa arvore e termina em **exatamente 1** dos 5 segmentos. Sem ambiguidade, sem dupla contagem.

---

## ARVORE DE DECISAO PRIMARIA

```
INICIO
  │
  ├─[1] CONTATO TEM REGISTRO DE COMPRA?
  │       │
  │       ├─SIM → ir pra [2]
  │       └─NAO → ir pra [5]
  │
  ├─[2] COMPRA FOI HA QUANTO TEMPO?
  │       │
  │       ├─Ainda dentro do ciclo ativo (ex: assinatura vigente) → ATIVO (nao entra na campanha)
  │       ├─Saiu/concluiu ciclo formalmente nos ultimos 12 meses → ir pra [3]
  │       ├─Comprou mas sumiu (sem cancelamento, 90+ dias inativo) → DORMENTE
  │       └─Comprou ha > 12 meses sem retorno → re-classificar em FRIA/MORNA pelos sinais [5]
  │
  ├─[3] EX-CLIENTE: COMO FOI A SAIDA?
  │       │
  │       ├─Cancelou com queixa / reembolsou / NPS detrator → EX-CLIENTE 5C (negativa)
  │       ├─Cancelou neutro / sumiu sem briga → EX-CLIENTE 5B (neutra)
  │       └─Concluiu ciclo satisfeito / formou-se / NPS promotor → EX-CLIENTE 5A (positiva)
  │
  ├─[5] LEAD NAO COMPRADOR — CHECAR SINAIS DE QUENTE PRIMEIRO
  │       │
  │       ├─Visitou pagina vendas 2+ vezes ultimos 30 dias OU
  │       │  Abandonou carrinho OU
  │       │  Iniciou checkout sem concluir OU
  │       │  Agendou call e disse "vou pensar" OU
  │       │  Pediu link de pagamento ultimos 14 dias
  │       │       → QUENTE
  │       │
  │       └─Nao bate Quente → ir pra [6]
  │
  ├─[6] CHECAR SINAIS DE MORNA
  │       │
  │       ├─Open rate 15-40% ultimos 90 dias OU
  │       │  Pelo menos 2 cliques em links OU
  │       │  Visitou pagina de vendas pelo menos 1x OU
  │       │  Comentou/respondeu DM em conteudo organico
  │       │       → MORNA
  │       │
  │       └─Nao bate Morna → ir pra [7]
  │
  └─[7] DEFAULT
          │
          └─Esta na base ha 30+ dias sem engajamento significativo → FRIA
              (se < 30 dias na base, tratar como NOVO LEAD — nao entra nesta campanha)
```

---

## TABELA DE PRIORIZACAO EM CASO DE EMPATE

Se contato bate sinais de **2 segmentos diferentes**, prevalece o mais quente segundo a ordem:

```
QUENTE > MORNA > DORMENTE > EX-CLIENTE > FRIA
```

Excecao: **EX-CLIENTE sempre prevalece** quando ha registro formal de cancelamento/conclusao, mesmo que tambem bata sinais de Quente (ex.: ex-cliente que voltou na pagina). Nesse caso, classificar como **EX-CLIENTE 5A com flag "interesse renovado"** e tratar com tom hibrido (reconquista + oferta).

---

## CASOS DE BORDA — RESOLUCAO EXPLICITA

### Caso 1: Comprou mas nunca abriu email
**Situacao:** comprou produto digital, recebeu email de boas-vindas, nao abriu, nunca mais voltou.
**Classificacao:** **DORMENTE** (apesar de nao engajar, o ato de compra cria vinculo).
**Cuidado:** primeiro contato deve ser intimo, audio pessoal — pessoa pode ter comprado e nem usado.

### Caso 2: Engajou DM mas nunca foi pra site
**Situacao:** comenta posts, responde DM, demonstra interesse, mas nao clica em link de pagina de vendas.
**Classificacao:** **MORNA** (engajamento conta como sinal valido mesmo sem visita).
**Cuidado:** pode ser indecisao no clique, nao no interesse — aproveitar para mandar link direto via DM.

### Caso 3: Abandonou carrinho ha 90+ dias
**Situacao:** abandonou ha tempo, sem mais sinal.
**Classificacao:** **MORNA** (Quente esfria depois de 30 dias sem mais sinais).
**Regra:** Quente so e Quente se tem sinal recente. Quente "velho" volta pra Morna ou Fria.

### Caso 4: Cliente atual (assinatura/recorrencia)
**Situacao:** assinatura ativa, mentoria em andamento.
**Classificacao:** **NAO ENTRA na campanha de reativacao**.
**Acao:** marcar como ATIVO. Pra esses, rodar `/onboarding-comercial-7dias`, `/referral-program` ou `/campanha-interna` (upsell).

### Caso 5: Lead novo (< 30 dias na base)
**Situacao:** entrou ontem, ainda no fluxo de boas-vindas.
**Classificacao:** **NAO ENTRA na campanha**.
**Acao:** deixar fluxo automatico de nutrir rodar. Voltar a avaliar daqui 30 dias.

### Caso 6: Comprou produto entrada (low ticket) mas nunca subiu
**Situacao:** comprou ebook/template ha 6 meses, sumiu, nunca subiu de patamar.
**Classificacao:** **DORMENTE**.
**Estrategia:** campanha de reconexao com gancho de upsell pro produto principal.

### Caso 7: Comprou ha 14 meses, sem retorno
**Situacao:** registro de compra existe, mas e antigo.
**Classificacao:** **re-classificar pelos sinais [5]**.
- Se ainda abre email → MORNA com flag "ex-cliente antigo"
- Se nao abre nada → FRIA com flag "ex-cliente antigo"
- O flag muda a copy: lembrar que ja foi cliente, nao tratar como totalmente novo.

### Caso 8: Multiplos sub-grupos Ex-cliente (mudou opiniao)
**Situacao:** cliente formou-se positivo, depois fez review ruim em outro contexto.
**Classificacao:** **5C (negativa) prevalece**.
**Logica:** ultimo feedback registrado conta. Recuperar relacao antes de qualquer venda.

### Caso 9: Lead que respondeu pesquisa mas nunca comprou
**Situacao:** preencheu form de pesquisa, deu dados ricos, sumiu.
**Classificacao:** **MORNA** (resposta a form e engajamento ativo).
**Bonus:** usar dados da pesquisa como personalizacao na copy.

### Caso 10: Indicacao de cliente (pessoa indicada por aluna ativa)
**Situacao:** aluna indicou amiga, amiga entrou na lista mas nao engajou.
**Classificacao:** **MORNA com flag "indicacao"**.
**Estrategia:** copy especifica mencionando indicador ("a [nome] disse que voce ia se interessar...") — taxa de conversao costuma ser 2x da Morna pura.

### Caso 11: Visitou pagina varias vezes mas e bot/concorrente
**Situacao:** trafego suspeito, mesmo IP, comportamento repetitivo.
**Classificacao:** **excluir** da base de campanha.
**Validacao:** filtrar por dominios concorrentes, IPs blacklisted, padroes de bot.

### Caso 12: Pessoa pediu pra sair (descadastrou) mas voltou
**Situacao:** descadastrou ha 6 meses, voltou via formulario de outra fonte.
**Classificacao:** tratar como **NOVO LEAD** apenas se re-optou explicitamente. Senao, **respeitar opt-out** e nao entrar em campanha.

---

## TEMPLATE DE PLANILHA DE CONSOLIDACAO

Pra mentorada que nao tem CRM unificado, montar planilha base com colunas obrigatorias:

| Coluna | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| `id` | string | Sim | Identificador unico (email ou telefone normalizado) |
| `nome` | string | Sim | Nome (primeiro nome basta, ideal completo) |
| `email` | string | Recomendado | Email valido |
| `telefone` | string | Recomendado | Whatsapp BR formato +55 |
| `instagram` | string | Opcional | @ do Instagram |
| `data_entrada_base` | data | Sim | Quando entrou na lista |
| `fonte_entrada` | string | Sim | Como entrou: lead magnet, indicacao, organico, ads, evento |
| `ultimo_email_aberto` | data | Sim | Data do ultimo open registrado |
| `ultimo_email_clicado` | data | Recomendado | Data do ultimo click |
| `total_emails_abertos_90d` | int | Recomendado | Volume |
| `visitas_pagina_vendas_30d` | int | Recomendado | Volume |
| `abandonou_carrinho` | bool/data | Recomendado | Se sim, data |
| `agendou_call` | bool/data | Opcional | Se agendou e nao apareceu |
| `respondeu_dm_90d` | bool | Opcional | Engajamento DM |
| `engajou_organico_60d` | bool | Opcional | Curtir/comentar feed |
| `data_compra` | data | Sim p/ compradores | Data da compra |
| `produto_comprado` | string | Sim p/ compradores | Nome produto |
| `ticket` | float | Sim p/ compradores | Valor pago |
| `recorrencia` | bool | Sim p/ compradores | Se assinatura ativa |
| `data_cancelamento` | data | Sim p/ ex-cliente | Data formal saida |
| `motivo_saida` | string | Sim p/ ex-cliente | Texto livre / categoria |
| `nps` | int | Opcional | Se tem NPS coletado |
| `feedback_saida` | string | Opcional | Resposta pesquisa de saida |
| `tag_ex_cliente` | enum | Sim p/ ex-cliente | 5A / 5B / 5C |
| `flags_especiais` | array | Opcional | "indicacao", "ex-cliente-antigo", "interesse-renovado" |
| `segmento_calculado` | enum | Output | FRIA / MORNA / QUENTE / DORMENTE / EX-CLIENTE-5A/5B/5C |

A coluna `segmento_calculado` e o **output da arvore**. Nao e digitada manualmente — e produto da logica.

---

## REGRAS DE QUALIDADE DA BASE

Antes de aplicar a arvore, **limpar a base**:

1. **Remover duplicados** — mesmo email ou telefone aparecem so 1x. Manter o registro com mais sinais.
2. **Validar emails** — bounce permanente fora. (sintaxe valida + dominio existe + nao e role-based como contato@/info@/admin@ pra campanhas pessoais)
3. **Normalizar telefones** — formato unico +55DDDNNNNNNNNN.
4. **Marcar opt-outs** — quem descadastrou explicitamente fica fora.
5. **Excluir bots** — IPs/comportamentos suspeitos.
6. **Excluir concorrentes/internos** — colaboradores, parceiros, fornecedores.

Sem essa limpeza, projecao de receita fica errada e a campanha vira spam.

---

## OUTPUT DA CLASSIFICACAO

Apos rodar a arvore em todos os contatos validos, gerar:

```
RESUMO DA SEGMENTACAO — [mentorada] — [data]

Total contatos validos: 0
- FRIA:                  0 (0%) | LTV historico medio: R$ 0
- MORNA:                 0 (0%) | LTV historico medio: R$ 0
- QUENTE:                0 (0%) | LTV historico medio: R$ 0
- DORMENTE:              0 (0%) | LTV historico medio: R$ 0
- EX-CLIENTE 5A:         0 (0%) | LTV historico medio: R$ 0
- EX-CLIENTE 5B:         0 (0%) | LTV historico medio: R$ 0
- EX-CLIENTE 5C:         0 (0%) | LTV historico medio: R$ 0

Excluidos da campanha:
- Ativos (assinatura/mentoria vigente):  0
- Leads novos (<30 dias):                0
- Opt-outs:                              0
- Bots/concorrentes:                     0
- Bounces / dados invalidos:             0

ALERTAS:
- [se algum segmento tem volume desproporcional, sinalizar gargalo]
- [se base nao tem dados suficientes pra classificar, sinalizar gap]
```

Esse output entra direto no JSON final da skill.

---

## QUANDO RE-CLASSIFICAR

A classificacao tem **validade trimestral** (90 dias). Apos rodar a campanha, re-classificar todos os contatos antes do proximo ciclo.

Mudancas tipicas entre ciclos:
- Fria que abriu durante a campanha → Morna no proximo ciclo
- Morna que comprou → Cliente Ativo (sai da reativacao)
- Quente que nao comprou → Morna ou Fria
- Dormente que respondeu audio → Cliente reativado (entra em onboarding novo)
- Ex-cliente 5A que comprou upsell → Cliente Ativo
- Ex-cliente 5C que pediu desconto → re-avaliar para 5B

A skill `tatou-2.0` automatiza essa re-classificacao a cada 90 dias.
