Recomendações de Rebalanceamento
O recomendador de rebalanceamento fica em Dashboard > Operations > Rebalance. Ele transforma a previsão de demanda em uma lista ranqueada de sugestões "mover N veículos do hex A para o hex B até T", cada uma com uma estimativa de ganho em dólares.
Esta página só está disponível quando o subaccount tem ai_ops_tier definido como pro ou enterprise.
Anatomia do card
Cada card representa um movimento recomendado:
+----------------------------------------------+
| Move 3 ES400B from hex 89283082c1bffff |
| to hex 8928308347bffff by 16:00 |
| |
| Projected lift: $42.50 |
| Confidence: 78% |
| Distance: 1.2 mi |
| |
| [ Accept ] [ Snooze ] [ Dismiss ] |
+----------------------------------------------+
| Campo | Significado |
|---|---|
| Vehicle model | O modelo de veículo alvo (ex.: ES400B). Em hexes mistos, escolhe o modelo em superabastecimento. |
| Source hex | Onde os veículos estão agora (superabastecidos). |
| Destination hex | Para onde os veículos devem ir (subabastecidos). |
| Recommended count | Quantos mover. |
| By T | Prazo — a recomendação expira quatro horas após sua geração. |
| Projected lift | Dólares líquidos de receita incremental esperada. |
| Confidence | Quão estreito é o IC da previsão para este par (0-100%). |
| Distance | Distância em linha reta entre os centros dos hexes, em milhas. |
Como o ganho projetado é calculado
O recomendador usa matemática fechada sobre as previsões, e não um modelo separado. Para cada par candidato:
projected_lift_usd =
(destination_gain - source_loss) * avg_fare
- distance_miles * tech_cost_per_mile_usd
- destination_gain — corridas adicionais no hex de destino ao adicionar
nveículos. - source_loss — corridas que perderíamos no hex de origem ao remover esses
n. - avg_fare — tarifa média rolling de 30 dias do subaccount.
- tech_cost_per_mile_usd — configuração do subaccount (padrão
0.50). Ajustável; veja Feature flags e níveis.
Se o cálculo der negativo (o movimento custaria mais do que ganharia), a recomendação nunca é gerada.
Como os candidatos são escolhidos
Uma vez por hora, o recomendador:
- Puxa a previsão de horizonte de 4 horas para cada hex.
- Compara a previsão com o fornecimento atual (veículos com
availability_status='available'e bateria acima derebalance_battery_floor). - Seleciona hexes subabastecidos ordenados pelo gap.
- Para cada um, encontra o hex superabastecido mais próximo com capacidade de doar veículos.
- Pontua e grava o Top-N como
rebalance_recommendationscom statusopen.
O cron também marca recomendações expiradas como tombstones (status='expired') — não as apaga, para que você possa medir a taxa histórica de confirmação.
Agindo sobre um card
Cada card tem três botões:
- Accept — marca a recomendação como
acceptede atribui o movimento à fila padrão de técnicos. No nível Enterprise, a próxima execução do solver de rotas incorpora as recomendações aceitas como paradas. - Snooze — marca a recomendação como
snoozede adiciona +2 horas ao prazo. Use quando o movimento é bom mas você não pode agir agora. - Dismiss — marca a recomendação como
dismissedcom o carimbo de tempo atual. Permanece no banco para o modelo aprender, mas desaparece da fila ativa.
Cada confirmação (accepted, dismissed, snoozed) realimenta os dados de treino para o próximo retreinamento noturno do modelo. Quanto mais honesto for seu uso do Dismiss, melhor o modelo aprende a sugerir movimentos que você de fato aceita.
Ordenação e filtragem
A página ordena por projected lift (decrescente) por padrão. Você pode reordenar por:
- Contagem de veículos
- Distância (mais curta primeiro — útil quando um técnico já está próximo)
- Confiança
O filtro de status padrão é open. Mude para accepted, dismissed, snoozed ou expired para ver o histórico.
Widget Top-3
Para uma passada rápida, o painel de operações em /dashboard/operations mostra um RebalanceTop3Widget com as três recomendações abertas de maior ganho. Cada card leva à página completa do recomendador.
Se o widget não aparecer no seu painel, o componente está exportado mas pode ainda não estar conectado à página. Escreva para o suporte caso queira adicioná-lo.
Deduplicação
O recomendador se recusa a criar uma nova recomendação aberta para o mesmo par (source_h3, destination_h3) se uma já estiver aberta. Isso evita inundar a fila quando um hex está cronicamente subabastecido por horas.
O que Dismiss ensina ao modelo
Os dismissals são sinal. Um padrão de dismissals para um determinado hex de destino diz ao modelo que estimativas de ganho naquela direção são pouco confiáveis — pode haver problema de licença, rua fechada ou zona sem estacionamento que o recomendador desconhece. O retreinamento noturno pondera features como a taxa recente de confirmação por destino, então os dismissals do seu time de fato afinam o sistema.
Relacionado
- Mapa de previsão de demanda — a camada que alimenta essas recomendações.
- Rotas de técnicos — como recomendações aceitas viram a rota de um técnico.
- Feature flags e níveis —
tech_cost_per_mile_usd,rebalance_battery_floore requisitos de nível.