GAP Detector
Como usar o dashboard

🗺️ Visão geral do fluxo

O GAP Detector é atualizado rodando o script detect_gaps.py, que consulta os dados reais do Sirius (AWS Athena) e gera o arquivo gaps.json. O dashboard lê esse arquivo e exibe os resultados.

O fluxo de uso diário é simples:

1
Atualizar os dados
Rodar o script para gerar um snapshot fresco. Leva ~2-3 minutos (queries no Athena).
2
Ler os cards de resumo
Entender o volume e o impacto potencial antes de mergulhar nos detalhes.
3
Filtrar por urgência e carteira
Focar nos Críticos da sua carteira primeiro. Usar os filtros do toolbar.
4
Tratar gap a gap
Clicar na linha para expandir o detalhe. Ver se está travado por min_stay ou se tem preço Gapper disponível.
5
Exportar CSV (se necessário)
Baixar a lista filtrada para registros ou para repassar à equipe.

📊 Lendo os cards de resumo

Os 5 cards no topo mostram o panorama atual dos gaps nos próximos 60 dias:

Total de Gaps
2.386
próximos 60 dias
Críticos
1.062
ação imediata
Altos
305
prioritários
Travados
212
min_stay bloqueando
Receita Potencial
R$129k
excl. Ignorar
Receita potencial = soma de preco_gapper × gap_nights para todos os gaps com urgência diferente de Ignorar e com preço disponível. É uma estimativa otimista — assume 100% de conversão.

🚦 Entendendo os níveis de urgência

🔴 CRÍTICO
Gap muito próximo (< 3 dias) em qualquer temporada, ou gap dentro de 14 dias em alta/média temporada. Ação imediata.
🟠 ALTO
Gap em alta temporada com 15-45 dias, gap curto em baixa temporada, ou gap < 14 dias em região não sazonal. Tratar hoje.
🟡 MÉDIO
Gap com 15-45 dias em baixa temporada ou não sazonal. Pode aguardar alguns dias.
🔵 INFORMATIVO
Gap de longo prazo em alta temporada, ou médio prazo em outras temporadas. Monitorar.
⚪ IGNORAR
Lead time > 45 dias em temporadas não-altas. Não recomendado agir agora — o gap pode se preencher naturalmente.
Dica: Comece sempre pelo filtro 🔴 Crítico na sua carteira. Depois processe os 🟠 Altos. Informativos e Ignorar são para revisão de fim de semana.

🔽 Usando os filtros

Todos os filtros combinam em AND — cada filtro adicional afunila mais.

Tabs de urgência

Todos 🔴 Crítico 🟠 Alto 🟡 Médio 🔵 Informativo ⚪ Ignorar

Clique em qualquer tab para filtrar por urgência. Clique em "Todos" para voltar à visão completa.

Outros filtros

Busca textual Filtra por código do imóvel, categoria ou cidade. Busca parcial.
Cidade Filtrar apenas uma cidade (ex: Florianópolis, Itapema).
Carteira Filtrar pelos imóveis da sua carteira de precificação.
Temporada Filtrar por Alta, Média, Baixa ou Não Sazonal.
Tamanho (noites) Filtrar apenas gaps de 1, 2 ou 3 noites.

Ordenação

Clique em qualquer cabeçalho de coluna para ordenar. Clique novamente para inverter. A ordenação padrão é por urgência → lead time crescente (gaps mais urgentes primeiro).

🔍 Expandindo o detalhe de um gap

Clique em qualquer linha da tabela para expandir os detalhes completos:

Urgência
Imóvel
Cidade
Datas
Noites
Lead
min_stay
🔴 Crítico
VNV0801
Camboriú
05/04 → 06/04
2
4d

Ao expandir, o detalhe mostra:

Gap com preço Gapper disponível

Preço Gapper sugerido: R$ 385 Desconto de 10% sobre o preço base (R$ 427). Aplicar na planilha Direta para 05/04 → 06/04. Receita potencial: R$ 770 (2 noites).

Copie o valor e aplique diretamente na planilha Direta para as datas do gap.

Gap travado por min_stay

⚠ min_stay trava o gap O imóvel tem min_stay = 3 noite(s), mas o gap tem apenas 2 noite(s). Sugestão: reduzir min_stay para 2 pontualmente em 05/04 → 06/04.

Nesse caso, o desconto de preço não resolve. A ação é reduzir o min_stay pontualmente nas datas do gap.

Verifique na rm_controle a origem da regra de min_stay antes de alterar. Se for definição do proprietário, alinhar com o anfitrião primeiro.

⚠️ Gaps sem preço Gapper

Alguns gaps aparecem sem preço base e sem preço Gapper. Isso acontece porque a view last_offered_raw_price tem um lookback de ~7 dias de atualização — imóveis que não foram precificados recentemente não aparecem.

Nesses casos:

⬇️ Exportando para CSV

O botão ⬇ CSV exporta os gaps atualmente filtrados — útil para repassar uma lista por carteira ou urgência para a equipe.

Dica: Filtre primeiro (ex: Crítico + sua carteira) e depois exporte. O CSV reflete exatamente o que está na tabela.

O CSV inclui todas as colunas: imóvel, categoria, cidade, carteira, datas, urgência, preço base, preço Gapper, desconto %, receita potencial e min_stay.

🔄 Atualizando os dados

O dashboard exibe um snapshot gerado na última execução do script. Para atualizar:

# Opção 1: só gerar os dados python3 scripts/detect_gaps.py # Opção 2: gerar + fazer deploy (atualiza o link público) ./deploy.sh # Opção 3: deploy sem re-rodar o script (dados já atualizados) ./deploy.sh --skip-data

A data da última atualização aparece no canto superior direito do dashboard.

O script leva ~2-3 minutos para rodar (queries no AWS Athena). Execute uma vez por dia antes de começar a precificação da manhã.
← Ir para o dashboard

📋 Referência rápida

🔴 Crítico
Tratar hoje. Gap próximo ou em alta temporada com lead time curto.
⚠ Travado (min_stay)
Preço não resolve. Reduzir min_stay pontualmente para as datas do gap.
Sem preço
Imóvel não precificado recentemente. Calcular manualmente via AGC.
⚪ Ignorar
Lead time > 45 dias. Pode se preencher naturalmente. Não agir agora.
Filtro = AND
Urgência + Cidade + Carteira combinam. Limpe os filtros para ver tudo.
Export CSV
Exporta apenas os gaps filtrados. Filtre antes de exportar.