Hero Background
Voltar aos projetos Projeto 03

Análise de Oportunidades Comerciais — Clientes Inativos

Aplicação interativa em Streamlit conectada ao banco de dados cloud, que identifica, prioriza e analisa clientes sem compra — transformando dados comerciais em oportunidades reais de reativação.

Do estratégico ao operacional: funil de risco, priorização por valor e monitoramento de comportamento da base.

Python Streamlit PostgreSQL Neon Cloud Plotly Data Analytics SQL Business Intelligence

01 — Resumo

O que foi construído

Problema

Empresas possuem milhares de clientes inativos, mas não sabem quais priorizar, onde está o risco e qual o impacto financeiro da perda.

Solução

Aplicação analítica conectada ao banco de dados que identifica clientes sem compra, classifica risco, prioriza por valor histórico e fornece múltiplas visões estratégicas e operacionais.

Resultado

Identificação de oportunidades de reativação com alto potencial financeiro, melhoria na gestão da carteira e tomada de decisão orientada por dados.

3.000+

clientes analisados

Top 20

oportunidades priorizadas

4

níveis de risco

9

visões analíticas


02 — Arquitetura

Fluxo da aplicação

  ┌────────────────────┐       ┌──────────────────────────┐       ┌──────────────────────────┐
  │                    │       │                          │       │                          │
  │   Neon Cloud        │──────▶│   Streamlit App          │──────▶│   Dashboards Plotly      │
  │   (PostgreSQL)      │       │   (Python)               │       │   (Interativos)          │
  │                    │       │                          │       │                          │
  │   Dados comerciais  │       │   Queries SQL +          │       │   9 visões analíticas    │
  │   anonimizados      │       │   Lógica analítica       │       │   + filtros dinâmicos    │
  └────────────────────┘       └──────────────────────────┘       └──────────────────────────┘
                
Conexão segura com banco

Comunicação criptografada via psycopg2 + SSL com Neon Cloud PostgreSQL. Credenciais isoladas em variáveis de ambiente protegidas.

Queries otimizadas + retry

Consultas SQL parametrizadas com retry automático em caso de timeout ou falha de conexão. Garantia de resiliência operacional.

Cache de dados para performance

Utilização de @st.cache_data para evitar queries repetidas no Streamlit. Dados pesados carregam uma única vez por sessão ativa.

Visualização interativa Plotly

Gráficos dinâmicos com Plotly Express: barras, linhas, funis e dispersão. Tooltip rico e zoom nativo em cada visualização.


03 — Lógica Analítica

Como funciona na prática

Quatro pilares que transformam um dado bruto de vendas numa inteligência de reativação comercial.

Identificação de clientes sem compra

Query que detecta o último registro de compra de cada cliente e calcula há quantos meses o cliente está inativo.

SELECT
    c.razao_social,
    MAX(v.data_emissao)  AS ultima_compra,
    EXTRACT(MONTH FROM AGE(NOW(), MAX(v.data_emissao)))  AS meses_sem_compra
FROM clientes c
LEFT JOIN vendas v ON c.cliente = v.cliente
GROUP BY c.razao_social
HAVING MAX(v.data_emissao) < NOW() - INTERVAL '30 days'
ORDER BY meses_sem_compra DESC;

Funil de reativação — Classificação de risco

Quatro faixas de criticidade que determinam urgência de ação para cada cliente inativo identificado.

def classificar_risco(meses_sem_compra):
    if meses_sem_compra <= 3:
        return "🟡 Atenção"        # Contato pode reverter
    elif meses_sem_compra <= 6:
        return "🟠 Risco"           # Urgência moderada
    elif meses_sem_compra <= 12:
        return "🔴 Alto Risco"      # Ação imediata
    else:
        return "⚫ Perdido"         # Reativação improvável

Priorização por valor — Top 20 oportunidades

Ranqueamento dos clientes inativos pelo faturamento histórico para identificar onde está a maior receita potencial.

# Priorização: quem parou de comprar E tinha maior volume
top_20 = df_inativos.nlargest(20, "faturamento_historico")

# Colunas resultantes:
# │ Razão Social │ Última Compra │ Meses Inativo │ Faturamento │ Risco │
# │ Empresa X    │ 2024-08-15    │ 7             │ R$ 482.000  │ 🔴    │
# │ Empresa Y    │ 2024-11-02    │ 4             │ R$ 318.500  │ 🟠    │

Detecção de tendência — Comportamento da base

Análise temporal que identifica a velocidade com que clientes estão "adormecendo", usando média móvel de 3 meses.

# Clientes que entraram em inatividade por mês
df_tendencia = df_inativos.groupby(
    df_inativos["ultima_compra"].dt.to_period("M")
).size().reset_index(name="novos_dormentes")

# Média móvel para suavizar tendência
df_tendencia["media_movel_3m"] = df_tendencia["novos_dormentes"].rolling(3).mean()

# → Insight: meses com pico de inatividade = ações comerciais falharam

04 — Visões Analíticas

O que o app entrega

01

Evolução de clientes atendidos

Comparação YoY: quantos clientes compraram por mês vs. ano anterior.

02

Funil de reativação por risco

Distribuição visual dos clientes inativos nos 4 níveis de criticidade.

03

Top 20 inativos por faturamento

Ranqueamento dos clientes com maior receita potencial para priorização.

04

Tendência de novos dormentes

Média móvel de clientes que entram em inatividade mês a mês.

05

Distribuição por tempo sem compra

Histograma de faixas de inatividade para visão macro da carteira.

06

Análise por vendedor, cidade e situação

Cruzamento dimensional para identificar padrões regionais e de equipe.


05 — Stack

Tecnologias utilizadas

Core

  • Python

    Lógica e processamento

  • Streamlit

    Framework web interativo

Dados

  • PostgreSQL (Neon Cloud)

    Banco de dados remoto

  • Pandas

    Manipulação de DataFrames

Visualização & Infra

  • Plotly

    Gráficos interativos

  • Streamlit Cloud

    Deploy em produção


06 — Relevância

Por que esse projeto é relevante?

Foco em impacto de negócio

Não é apenas um dashboard bonito. Cada visualização foi projetada para responder uma pergunta real de quem lidera times comerciais.

Prioriza receita potencial

Ranqueia os clientes inativos pelo faturamento histórico, garantindo que o esforço de reativação gere o maior ROI possível.

Integração estratégica + operacional

Alimenta tanto gerentes (visão de carteira + tendência) quanto vendedores (lista de clientes para contatar hoje).

Aplicável diretamente em campo

Pode ser implantado instantaneamente em qualquer equipe comercial com acesso a dados de vendas + cadastro de clientes.


Dados → Oportunidades

Quer transformar dados em oportunidades reais?

Este tipo de solução pode ser aplicado diretamente em operações comerciais para aumentar receita e reduzir churn de clientes.