Reconstrução histórica de metas 2025-2026
Escopo
Reconstrução executada na base de homologação do GV - Gestor de Vendas em 30/07/2026, abrangendo janeiro/2025 até agosto/2026.
- 20 meses;
- 11 lojas ativas;
- 220 ciclos de meta publicados;
- 2.505 metas mensais por vendedor;
- 73.902 metas diárias por vendedor;
- 6.587 fechamentos diários de loja.
Todas as 36 metas anteriores foram removidas, inclusive registros de teste e ciclos fora do período solicitado.
Regra dos valores
As metas foram calculadas do zero. Nenhum valor de meta anterior foi reutilizado.
- Quando há vendas no mês, a Meta principal corresponde às vendas da loja mais 5%, arredondada para centenas de reais.
- Quando o mês de 2026 ainda não possui vendas, é usado o mesmo mês de 2025 mais 5%, preservando a sazonalidade.
- Sem vendas no mês e no mesmo mês do ano anterior, é usada a última meta gerada para a loja.
- Sem qualquer referência anterior, é usada a meta de demonstração de R$ 120.000.
- Meta 2 corresponde a 115% da Meta principal.
- Meta 3 corresponde a 130% da Meta principal.
Origem dos 220 ciclos:
| Origem | Ciclos |
|---|---|
| Vendas do próprio mês + 5% | 171 |
| Vendas do mesmo mês do ano anterior + 5% | 41 |
| Última meta gerada para a loja | 7 |
| Valor inicial de demonstração | 1 |
Regra de distribuição
O processamento segue o mesmo fluxo do assistente administrativo:
- divide a meta mensal da loja entre os dias elegíveis, com fechamento exato em centavos;
- remove dias em que a loja não opera;
- remove feriados e pontos facultativos configurados para sair da meta;
- identifica os vendedores disponíveis em cada data;
- divide a meta daquele dia somente entre esses vendedores;
- agrega os valores diários para formar a meta mensal de cada vendedor.
O processamento bloqueia a execução se qualquer loja ficar sem dia elegível ou se qualquer dia com meta ficar sem vendedor disponível.
Elegibilidade histórica
Foram verificados vínculo, loja, transferências, coberturas, férias, ausências,
feriados e dias de operação. Vendedores técnicos com código 000001 ou
SEM_CODIGO não recebem meta.
O cadastro possuía 87 vendedores cuja admissão estava registrada em julho/2026, apesar de existirem vendas anteriores. A admissão foi corrigida para a primeira venda comprovada antes da distribuição.
| Mês | Vendedores com meta |
|---|---|
| 2025-01 | 82 |
| 2025-02 | 87 |
| 2025-03 | 90 |
| 2025-04 | 96 |
| 2025-05 | 103 |
| 2025-06 | 112 |
| 2025-07 | 118 |
| 2025-08 | 123 |
| 2025-09 | 129 |
| 2025-10 | 132 |
| 2025-11 | 139 |
| 2025-12 | 142 |
| 2026-01 | 142 |
| 2026-02 | 142 |
| 2026-03 | 142 |
| 2026-04 | 144 |
| 2026-05 | 144 |
| 2026-06 | 144 |
| 2026-07 | 147 |
| 2026-08 | 147 |
Backup e evidências
Backup anterior à alteração:
backups/before_historical_goals_20260730_183742.sql.gz
SHA-256:
1ac95e6e3aaefb0af0e117ccfb5c7bcfb5e4b7e234fad611b613b294f14ae613
Relatórios completos mantidos na conta da API:
backups/historical_goals_2025-01_2026-08_dry-run.json;backups/historical_goals_2025-01_2026-08_execute.json.
O relatório contém a relação nominal dos vendedores elegíveis por loja/mês, dias disponíveis, origem do valor e totais.
Rotina reutilizável
Prévia:
npm run rebuild:goals:history -- \
--from 2025-01 \
--to 2026-08 \
--company-id company_technos \
--report /caminho/seguro/previa.json
Execução, somente depois de backup e conferência da prévia:
npm run rebuild:goals:history -- \
--from 2025-01 \
--to 2026-08 \
--company-id company_technos \
--backup-label nome-do-backup.sql.gz \
--report /caminho/seguro/execucao.json \
--execute
Validações concluídas
- 20 meses com exatamente 11 lojas em cada mês;
- 220 ciclos publicados e nenhum ciclo fora do intervalo;
- fechamento exato da loja contra os vendedores;
- fechamento exato de cada vendedor contra seus dias;
- fechamento exato de cada dia contra a meta diária da loja;
- 73.902 atribuições conferidas contra admissão, desligamento, loja, lotação, ausência, operação e feriado;
- matriz de gerenciamento exibindo as 220 metas;
- edição de ciclo reconstruído validada sem gravar alterações;
- nenhuma ocorrência no console do navegador durante o smoke test.
