Nexo · Planejar por etapasExperimentar a jornada →

Planejar por etapas

Proposta de jornada, regras e critérios de aceite · Nexo / Natura · 10 de setembro de 2026

O planejamento deve acontecer sobre um plano versionado, do recorte inicial à demanda revisada e ao snapshot final. A navegação organiza o trabalho; ela não muda a validade comercial do plano. A recomendação é manter quatro etapas: Preparar → Montar → Verificar → Concluir, com estimativa e revisão de demanda dentro de Montar.

Esta proposta parte da planilha Tela 7 - Cadastro de Promoções Ciclais.xlsx, das sete abas e das imagens embutidas, e do código atual da pasta v3.2. A planilha tem precedência como evidência dos requisitos da Tela 7; comentários e documentos anteriores são evidência do projeto, não decisões novas do solicitante. Divergências foram mantidas explícitas.

O protótipo em index.html demonstra a jornada completa com persistência local e dados de exemplo, incluindo carga de VNPs vigentes por ciclo, promoção a partir do VNP, desconto simples, edição, validação, solicitação/retorno simulado e fechamento. Ele não implementa integralmente o cadastro das 28 mecânicas, não integra o catálogo oficial, EOS ou Databricks e não substitui autenticação, permissões e validações de servidor. A especificação abaixo cobre esses contratos e separa o que falta construir do que falta decidir.

1. Entendimento do produto

Nexo substitui o planejamento comercial de venda direta por ciclo. O objeto de trabalho é uma decisão comercial por país, canal, ciclo, produto e público, com efeitos sobre preço, demanda e rentabilidade.

O sistema tem uma cadeia de dependências:

  1. Calendário e acesso definem onde e quando o usuário pode atuar.
  2. Taxonomia, categoria de planejamento, ciclo de vida e vigência definem os produtos elegíveis.
  3. Preços, custos, impostos, royalties, comissão, régua de pontos, orçamento e ativas da OV sustentam os cálculos.
  4. Ciclais, verticais, doados e alternativas do Plano B compõem o planejamento.
  5. EOS estima demanda; Aurora permite analisar e adotar a estimativa.
  6. Indicadores, snapshot e DRE/Outlook consomem a mesma versão revisada.

O fluxo guiado deve orquestrar esses módulos. O planejador não deveria precisar decorar qual tela abrir em seguida, nem reconstruir o contexto ao corrigir um dado.

Unidade de trabalho: plano com identificador e revisão. Unidade comercial: promoção, com mesmo código quando aplicada a vários ciclos. Unidade de cálculo: linha da promoção por ciclo, CV, veículo, público, grupo, papel e step. Esses três níveis não podem ser confundidos.

2. Problemas do fluxo anterior (v3.2)

Achados verificados no código, e não apenas inferidos da aparência:

Problema Evidência atual Consequência
A jornada acaba no envio v3.2/prototipo-fluxo-etapas.html, ETAPAS, linhas 470–476 Receber, revisar, adotar demanda e fechar ficam fora da jornada.
Estado é derivado da página visitada modoAtual, ir, linhas 487–529 Visitar a etapa final já exibe “enviado”; entrar na etapa 3 compromete implicitamente o plano.
País e ciclos não filtram a base aplicarEscopoBase, linhas 418–429 Totais e envio podem conter linhas de fora do recorte anunciado.
Chave não contém ciclo nem código de promoção chave, linha 448 O mesmo CV/descrição/veículo em dois ciclos colide.
Estado salvo aceita seleções falsas como verdadeiras restaurar, linhas 1266–1271 Ao recarregar, uma linha retirada pode voltar ao plano.
Normalização perde regras comerciais FONTE_REAL, linhas 325–339 Código, tipo de linha, VNP, distribuição vertical, benefícios e governança se perdem.
Itens de receita zero são descartados Filtro de precoDe e qtd, linhas 328–329 Benefícios e doações deixam de ter representação no plano.
Metas ausentes herdam outro ciclo alvoDefault, linhas 556–560 A tela apresenta uma meta que não pertence ao ciclo.
Fila pode ser resolvida sem corrigir a causa resolvidasK, resolverCarta, linhas 1043–1049 Um marcador permanente suprime pendências; não existe comprovação da correção.
Desfazer não restaura preço desfazerCarta, linhas 1055–1060 O histórico diz “desfeito”, mas o dado permanece alterado.
Teto de corredor vira crítico fora, linha 460, e montarPendencias Regra de teto não corresponde ao mapa de dependências, que restringe o piso Boy.
Faixa de público incompatível Comparação de precoPor com cbBoy Um preço CF pode ser comparado com piso CB.
Desconto global diverge entre vistas agrega(descGlobal) versus cards/quadro sem descGlobal A revisão e o snapshot podem mostrar preços diferentes do resumo.
Snapshot aplica o primeiro ciclo a todas as linhas etapaEnviar, linhas 1218–1222 Perde a identidade ciclal e registra unidades planejadas como se fossem unidades EOS.
Mudanças não invalidam envio/verificação enviado booleano e maiorVisitada O usuário pode revisar dados posteriores ao envio mantendo a aparência de plano válido.
Comprometer não publica o estado compartilhado comprometido=true; grava somente a jornada O discurso “valendo no ciclo” não corresponde ao estado dos demais módulos.
Calendário trimestral é heurístico TRIMESTRES, linhas 350–358 Pode divergir do Calendário Ciclal oficial, que aceita classificação por trimestre.

Uma nova ordem de telas, sozinha, não resolve esses problemas. A mudança essencial é compartilhar o mesmo modelo e revalidá-lo em cada ação relevante.

3. A jornada recomendada

A reavaliação completa, com problemas corrigidos e limites ainda abertos, está em reavaliacao-fluxo.md.

O contexto aplicado aparece em uma linha discreta abaixo do título, com país, anos/quarters, ciclos e filtros ativos. O canal fixo não ocupa espaço nesse resumo. Como no fluxo original, os steps aparecem em uma faixa logo após o cabeçalho do aplicativo, antes do título e do conteúdo, desde a abertura. Essa faixa fica presa ao topo durante a rolagem. Os status do plano e do salvamento ficam junto aos botões da barra inferior. O conteúdo reserva espaço para as duas barras, incluindo a adaptação para celular.

Etapa 1 — Preparar

Pergunta respondida: onde vou planejar e quais resultados preciso alcançar?

O usuário recebe o país/canal autorizado e seu recorte de trabalho. Seleciona os trimestres por ano e visualiza os ciclos reais contemplados, com possibilidade de excluir ciclos individuais. Trimestre é um atalho de seleção; a unidade persistida é a lista de ciclos. As datas e a relação trimestre/ciclo vêm do Calendário Ciclal, sem intervalos inventados no front-end.

Canal não é um filtro de Preparar. A planilha Tela 7 lista Ciclo, Categoria Resultado, Categoria de Planejamento e Masterbrand em C3:C6; não exige um seletor de Canal. A matriz do projeto cita Canal nos requisitos de Preços e Ciclo de Vida, referentes a essas telas. Conforme ajuste solicitado, Preparar preserva o canal do contexto do plano (Venda Direta no exemplo) sem pedir nova seleção. Alterar país, período ou demais filtros conserva esse contexto para as regras e a carga de VNPs.

Disponível no protótipo: seleção de um ou mais anos entre 2026 e 2029, com Q1–Q4 independentes por ano. Adicionar um ano inclui inicialmente Q1; selecionar um quarter inclui seus ciclos, que podem ser desmarcados em “Ajustar ciclos individualmente”. Remover um ano não altera os demais. “Aplicar recorte” ou avançar para outra etapa salva o período; anos, quarters e exclusões são recuperados ao recarregar. Rascunhos anteriores conservam seus ciclos. O plano exige ao menos um ano, um quarter em cada ano selecionado e um ciclo no conjunto. Metas de ciclos novos permanecem sem cadastro quando a fonte não as fornece.

Limite do calendário demonstrativo: a distribuição segue o exemplo anterior — Q1: C01–C05; Q2: C06–C10; Q3: C11–C14; Q4: C15–C19. Não representa a classificação oficial de cada país/canal. Na integração, as opções e relações devem vir do Calendário Ciclal. A lista de ciclos continua sendo a referência para filtrar e calcular; os quarters também são guardados para restaurar a seleção visual.

Masterbrand, Categoria de Planejamento e Marca são filtros dependentes da taxonomia e das permissões. Categoria Resultado é outra dimensão; não deve substituir a categoria usada para planejar. “Todas” significa todas as opções autorizadas do contexto.

O orçamento do ciclo e recorte comercial tem prioridade como proposta de receita alvo e margem piso. Na falta dele, o demonstrador oferece o histórico simulado do mesmo ciclo do ano anterior, explicitamente identificado e sem ajuste de crescimento. Sem referência correspondente ao recorte, o usuário define a meta manualmente. Aceitar ou editar confirma os dois valores; o aceite em lote preserva metas já ajustadas e o orçamento de referência. Uma comparação consolidada incompleta deve dizer quantos ciclos têm meta; não exibir um percentual de atingimento global como se estivesse completo.

Reavaliado no demonstrador: metas ficam vinculadas a país, canal, masterbrand, categoria e marca; a base de ativas fica vinculada a país/canal, com valor por ciclo. Trocar recorte não reaproveita o orçamento consolidado como se fosse a meta da categoria. Voltar recupera os valores cadastrados daquele recorte. Recortes sem fonte mostram ausência. Ajustes de meta são auditados e têm revisão própria; enquanto houver solicitação ativa, os campos ficam em consulta. A separação definitiva das chaves de orçamento e ativas depende da integração.

Ao aplicar novo recorte com edições de linhas pendentes, o comando passa a indicar Salvar alterações e aplicar recorte. A ação salva as edições e aplica a seleção sem perder os filtros.

No produto completo, a interface deve oferecer Consultar plano trimestral dentro da jornada, com até três registros da chave de país/ciclo/versão/masterbrand, conforme o contrato de Snapshot. A consulta não troca silenciosamente a versão em trabalho. Iniciar a partir de uma foto deve ser uma ação explícita de cópia.

Saída: contexto válido e metas confirmadas para todos os ciclos. Receita e margem precisam ser maiores que zero; a margem não pode superar 100%. A tela informa quantos ciclos faltam e impede avançar inclusive pelos steps. Essa confirmação obrigatória é uma melhoria de fluxo aprovada nesta revisão do protótipo, não uma exigência literal atribuída às RFs. Fotos já concluídas continuam consultáveis.

CTA: Montar plano.

Etapa 2 — Montar

Pergunta respondida: quais condições comerciais quero oferecer e qual o impacto?

A grade contém VNPs vigentes nas revistas impressas e promoções já cadastradas. “Cardápio” deixa de ser uma fonte paralela da verdade. A seleção por checkbox delimita análise e ações em massa; ela não inclui/exclui produtos comercialmente.

Grade de planejamento implementada: a opção fica junto a Planejar produtos e Por veículo, dentro de Produtos do ciclo. O controle Resumida / Completa, no canto superior direito da tabela, alterna a densidade sem trocar as linhas, perder edições ou alterar os cálculos. A preferência fica salva neste navegador. O seletor de ciclo continua valendo; Consolidado mostra os ciclos selecionados lado a lado na mesma grade.

Limite da visão completa: cobertura de colunas não equivale à homologação de todas as integrações e fórmulas. Campos sem dado de origem ou regra implementada mostram “—”, com indicação de indisponibilidade. Não são inventados preços CB por nível, pontos ou corredores a partir dos exemplos da planilha. As projeções EOS disponíveis continuam identificadas como simulação.

Caminho implementado para planejar cada ciclo:

  1. Escolher o ciclo nos botões C01, C02 etc. A montagem inicia no primeiro ciclo selecionado; o botão “Consolidado” permite conferir o conjunto. A faixa de ciclos é o único seletor, sem dropdown repetido. A área Produtos do ciclo, com apoio “Planeje os produtos vigentes e as promoções deste ciclo”, separa opções de visualização, busca e dois painéis: Base vigente e Promoções do ciclo. No consolidado, o título passa a “Produtos dos ciclos”. Ações em lote aparecem no painel correspondente somente quando há seleção; descartar fica na barra inferior, junto ao salvamento. O cabeçalho compacto aproxima os produtos da área inicial da tela. Trocar o ciclo conserva o rascunho dos demais.
  2. Consultar Base vigente: produtos vigentes no recorte, com ou sem promoção cadastrada. A lista reúne as condições carregadas por país/canal/CV/ciclo, inclusive promoções sem VNP associado, em um único cartão por produto e ciclo. Os chips Todos, Só VNP, VNP + promo e Promo têm seleção única e contagens; Todos inicia ativo e volta a ser selecionado ao trocar ciclo ou recorte. O chip Promo reúne VNP substituído e promoção sem VNP; os quatro chips ficam em uma única linha, com rolagem horizontal somente quando a largura disponível não comporta o conteúdo. A classificação considera todas as condições antes da busca; as contagens refletem a busca e o recorte, antes do chip. No consolidado, contam-se produtos por ciclo, para conservar estados diferentes do mesmo CV. Os chips filtram somente a coluna da esquerda, preservando promoções à direita, totais, metas e dados do plano. Trocar chip ou busca limpa a seleção da base, e ações em lote usam somente produtos visíveis e elegíveis. Os cartões compactos identificam preço, unidades e receita VNP; quando há somente promoção, mostram os valores promocionais. Detalhes permite consultar cada condição, e Ver promoção/Ver promoções abre as condições existentes. Bloqueios continuam respeitados, e uma lista vazia oferece retorno a Todos.
  3. Acionar Promover, ou selecionar VNPs e usar Promover selecionados. Produtos com VNP ativo e desbloqueado oferecem essa ação; em Promo, a ação é consultar ou editar a promoção existente. A definição de múltiplas promoções do mesmo produto continua pendente em A93, sem ampliar regras de criação nesta alteração. O painel herda os produtos e ciclos escolhidos, recebe veículo, desconto e unidades específicas por produto/ciclo. A demanda VNP aparece como referência editável para a nova promoção; não é transferida destrutivamente. A prévia mostra a regra do VNP e a receita antes/depois.
  4. Conferir Promoções do ciclo, reunindo as já cadastradas e as adicionadas neste planejamento. Preço, demanda e condição podem ser ajustados. O resultado permanece visível como receita dos VNPs mantidos + receita das promoções = receita total, com margem total. Logo abaixo aparecem receita alvo, margem piso, diferença para o alvo e situação do ciclo; meta parcial não aparece como atingida. A busca e as seleções operacionais não retiram produtos desse cálculo.
  5. Usar Retirar promoção para desfazer a condição comercial. A confirmação mostra o impacto e quantos VNPs voltam a contribuir. Salvar aplica o rascunho; descartar volta à versão salva. Seguir para os próximos ciclos e verificar o conjunto.

Anulação executada no demonstrador: desconto simples, com requisito de uma unidade, substitui a contribuição do VNP vinculado no mesmo país/canal/CV/ciclo quando o veículo não é Revista Interativa. Na Revista Interativa, a regra do exemplo mantém o VNP impresso. Mecânicas anteriores que exigem duas unidades ou não anulam continuam preservando o VNP. A linha VNP permanece guardada: anular significa contribuição zero, não apagar o produto. O subtotal de VNPs e a visão por veículo consultam o cenário completo para não reativar um VNP quando a promoção que o anula está fora da visualização.

Carga demonstrativa e limite de cobertura: portfolio-demo.js contém cinco produtos de exemplo, com janelas de vigência e demandas explicitamente demonstrativas para 2026–2029. No ciclo 01 há três VNPs; no ciclo 02, quatro. Ekos Castanha entra no ciclo 02, Kaiak no ciclo 03 e Tododia deixa a base após o ciclo 02. Esses intervalos são fixtures de teste, não uma homologação da vigência oficial. A carga usa país/canal/ciclo/CV/veículo, não duplica linhas e preserva promoções e edições já salvas. Países e anos sem fonte não recebem o catálogo brasileiro por fallback. A integração deverá substituir as fixtures por todos os registros oficiais autorizados, inclusive as premissas financeiras e demandas de origem.

A carga de VNP é registrada como preparação da base e incluída nas referências de cenário sem salvar as edições manuais pendentes. Versões enviadas, recebidas, com demanda adotada ou concluídas não recebem carga automática de novos VNPs. Reabrir uma revisão permite atualizar a base. A solicitação EOS e o resultado final usam VNPs ativos mais promoções; o snapshot também preserva as linhas VNP de origem, inclusive as anuladas, para auditoria.

Manter o comparativo Inicial / Trabalhado / Variação, com dois níveis claros:

A referência inicial é o último estado salvo, estabelecido ao carregar a página. Preço ou demanda alterados atualizam o cenário trabalhado. Salvar aplica as alterações e atualiza a referência inicial, como exigido em A72–A75. Persistir um rascunho para recuperação automática não equivale a aplicá-lo ao plano.

Ações principais: Nova promoção, salvar alterações, editar selecionados. Excluir, duplicar, harmonizar, movimentos e visualização ficam na barra contextual ou em “Mais ações”. A seleção informa quantas promoções, linhas e ciclos serão afetados.

Criação no mesmo contexto: abrir um painel amplo dentro da etapa, com três seções progressivas:

  1. Configuração e público: veículo, público compatível, REs, nível, segmento, CRM e mecânica. Herdar país/ciclos/categoria. Mostrar obrigatórios na própria seção.
  2. Grupos de requisito e benefício: busca exata de CV, lista colada, agrupador ou kit. Apenas itens autorizados e vigentes em cada ciclo. Papéis, quantidades e steps ficam visíveis.
  3. Preço e demanda: Preço De de origem, Preço Por CF/CB conforme aplicável, desconto vinculado, unidades ou UPC, pontos e prévia dos corredores. Descrição semiautomática editável, sem apagar texto manual ao atualizar outro campo.

Escolher a mecânica revela somente campos relevantes. Um código de promoção é gerado uma vez; as linhas são expandidas por ciclo, grupo, CV e step. Conservar o código do produto como string, sem completar, truncar ou fazer busca por substring na inclusão. CV 713 não é 100713.

Diferentes iniciativas, uma bancada: Ciclal, Vertical e Itens Doados são tipos de iniciativa; Plano B é alternativa vinculada ao Plano A. Alternativas não entram no total principal enquanto não forem ativadas. Benefícios de preço zero permanecem representados. Receitas e custos dos doados dependem do contrato de negócio indicado na seção 8.

Visão por veículo: a grade e o quadro são duas visualizações das mesmas linhas. Remanejar requer prévia do público, comissão, preço/pontos e validação do destino. Arrastar é opcional; a ação “Mudar veículo” deve existir para teclado e precisão. O remanejamento acontece na etapa de montagem, evitando uma revisão separada que modifica dados já validados.

Saída: plano salvo, com alterações e autoria registradas. Salvar rascunho com aviso de corredor é permitido; avançar para ações governadas depende das validações.

CTA: Salvar alterações / Verificar plano.

Estimar e revisar demanda dentro de Montar

Pergunta respondida: qual demanda o EOS devolveu e qual adoto para o plano?

O botão ✦ Estimar demanda · EOS, fixo na barra de ações, abre um painel lateral sobre a montagem. O destaque visual identifica o apoio do EOS; não promete um agente de IA conectado. Solicitação, acompanhamento e revisão ficam no mesmo contexto:

  1. Selecionar itens individuais ou conjuntos por ciclo dentro do escopo, tipo de Forecast configurável e gate D-110/D-30. Default do gate deve usar datas de negócio/calendário; a escolha manual não é sobrescrita.
  2. Mostrar resumo final: país/canal/ciclos, revisão, número de promoções/linhas e condições enviadas.
  3. Criar solicitação com identificador, chave de idempotência e snapshot de entrada imutável.
  4. Mostrar estados aceito, em processamento, retorno parcial, recebido ou falhou. Não inventar percentual de progresso sem informação da integração.
  5. Comparar planejado × EOS × adotado por CV/ciclo/linha. A adoção em massa aceita somente sugestões pendentes e preserva decisões manuais já registradas; aplicar o conjunto exige todas as linhas exigidas resolvidas.
  6. Alterar a estimativa sugerida exige justificativa, individual ou em massa, preservada no snapshot.
  7. Aplicar a demanda revisada cria uma nova revisão e recalcula os indicadores da montagem. Ao concluir os lotes, Verificar confere o plano antes do fechamento.

Três fatos separados: enviado, estimativa recebida e demanda adotada. O check “Passou pelo EOS” depende de enviado + recebido (Tela 7 A120–A121); ele não significa que a demanda foi adotada ou aprovada.

Demanda e composição ficam protegidas enquanto o pedido está ativo. O projeto atual permite editar preço após enviar: nessa proposta, o snapshot enviado permanece intacto e a revisão fica desatualizada quando o preço muda. Reutilizar o retorno somente seria permitido se o contrato EOS afirmar quais campos não afetam a estimativa. Não aplicar um retorno antigo sobre condições novas silenciosamente.

Reavaliado no demonstrador: retornos complementares são anexados à mesma solicitação. Um lote inválido é rejeitado inteiro; uma retransmissão idêntica preserva decisões, enquanto uma sugestão alterada pede nova decisão apenas da linha afetada. Recebimento e decisão pendente são contados separadamente. O comando Simular restante do retorno demonstra a complementação, sem fingir integração ao EOS.

Linhas bloqueadas preservam todos os atributos, incluindo as unidades planejadas. A estimativa recebida fica registrada, mas a decisão mantém a demanda bloqueada; as demais linhas podem ser adotadas. O bloqueio não pode ser alterado durante solicitação/recebimento. O contrato real deve definir como sinalizar ao EOS as demandas fixas.

Saída: demanda revisada e aplicada à revisão atual. Retorno parcial, outra solicitação, linha desconhecida, duplicada ou quantidade inválida não habilitam fechamento.

CTA no painel: Enviar ao EOS → Revisar sugestões → Aplicar demanda revisada, conforme o estado. O botão fixo muda para Acompanhar EOS ou Revisar estimativas. Fechar o painel conserva a posição da grade e a solicitação em andamento.

Envio e validação contextual: somente os itens marcados são enviados. VNPs mantidos podem fazer parte do lote; VNPs substituídos ficam fora dele. A validação de envio examina a seleção, apresenta a causa de cada bloqueio e permite corrigir o item no painel. O comando salva as alterações do plano antes de enviar. Um bloqueio em outro lote não impede este pedido. Enquanto houver solicitação ativa, o demonstrador mantém a proteção global de demanda e composição; não implementa pedidos simultâneos.

Cobertura do plano: lotes sucessivos podem revisar ciclos diferentes. A compatibilidade é conferida por linha, condições comerciais e demanda adotada, preservando resultados de outras linhas. Mudança relevante torna a linha pendente; abrir uma nova revisão de um plano concluído exige nova rodada. O snapshot preserva todas as solicitações que sustentam as quantidades finais. Concluir exige todos os itens efetivos revisados e uma verificação da revisão atual. A granularidade de fechamento permanece o conjunto do recorte.

Limite da integração: as RFs também preveem carga automática de predições Supernova ao criar promoções com mecânicas contempladas e entrada manual quando não houver previsão. A interface oficial não está conectada: o protótipo preserva as demandas demonstrativas e identifica os retornos simulados, sem inventar previsões automáticas.

Compatibilidade: rascunhos anteriores preservam linhas, revisões e snapshots. A antiga etapa 4 de estimativa abre o painel em Montar; Concluir passa a ser a quarta etapa.

Etapa 3 — Verificar

Pergunta respondida: o que realmente impede este plano de seguir?

Conferir o recorte completo, independentemente do ciclo que estiver em foco. Agrupar pendências em Impede avançar, Avisos e Informações, com contagens, filtros por ciclo/veículo e prioridade.

Cada pendência precisa conter: regra, item, contexto, valor atual, valor esperado ou dado ausente, origem responsável, ação concreta e momento em que bloqueia. Exemplo: “CV 100144 · 202701 · Revista Impressa CFT · preço CF 35,90; piso CF 50,00. Rever preço”.

Não usar “Resolver” como sinônimo de reconhecer a mensagem. Corrigir o preço, atualizar a fonte ou excluir uma promoção é o que elimina a causa. Encaminhar ao Pricing cria um encaminhamento pendente. Adiar reorganiza o trabalho e mantém o bloqueio.

Uma correção deve abrir o campo na própria jornada. Se precisar de módulo externo, preservar retorno ao item, recorte e posição; ao voltar, recarregar a fonte e revalidar. Desfazer restaura os valores anteriores e recalcula a fila.

Saída: revisão salva sem bloqueios da ação solicitada e um comprovante de validação vinculado à revisão. A verificação é invalidada por mudança relevante. A barra de progresso nunca usa “página visitada” como evidência de validação.

CTA: Continuar para conclusão quando os dados estiverem válidos e a demanda aplicada. Salvar e continuar salva correções compatíveis antes de registrar a verificação. Demanda pendente ou retorno em andamento oferece Revisar demanda em Montar ou Acompanhar EOS em Montar, sem envio automático. A situação e o motivo ficam visíveis no início da etapa e junto ao botão. Bloqueios de qualquer ciclo impedem o fechamento; avisos não impedem avançar. Falha ao persistir conserva o rascunho. Planos concluídos oferecem consulta do fechamento.

Etapa 4 — Concluir

Pergunta respondida: qual versão estou encerrando e que resultado ela produz?

Mostrar resultado por ciclo antes do consolidado: receita versus alvo, margem versus piso, quantidade, exceções e situação. Uma média consolidada não encobre um ciclo inviável.

O resumo financeiro usa o mesmo motor de cálculo da grade. Preços, unidades e premissas não podem ser recalculados por fórmulas diferentes em Snapshot, Indicadores e DRE.

O fluxo real depende da definição de quem aprova e qual gate exige aprovação. Recomenda-se Enviar para aprovação quando aplicável; o planejador não se torna aprovador por estar na etapa final. Após aprovação vinculada à revisão, gerar o snapshot da versão escolhida e acompanhar integração/publicação até confirmação do destino.

A origem para gerar snapshot é WIP. A versão destino nasce Carga, com a lista oficial configurada. Fora de Carga, sobrescrita exige confirmação e preservação/reclassificação da anterior; respeitar os três últimos registros por chave, sem apagar a auditoria histórica. O demonstrador oferece um subconjunto de versões e mantém histórico local; não demonstra sobrescrita oficial.

Fechar significa bloquear alterações na versão concluída. Criar nova revisão, com motivo, reabre o trabalho preservando a foto anterior. Aprovação, forecast ou validação que pertencem à versão anterior não migram automaticamente.

Saída de negócio: revisão aprovada quando exigido, snapshot íntegro e integração confirmada. Saída do demonstrador: foto local de demonstração. Após a gravação bem-sucedida, a tela exibe uma confirmação verde com check animado, escopo e versão, receita, margem, unidades, composição VNP/promocional e relatório por ciclo. Desvios e justificativas permanecem visíveis. O relatório HTML é independente e imprimível; os dados JSON e o histórico também podem ser baixados. Uma nova revisão preserva o snapshot anterior. Falha de validação ou armazenamento não mostra sucesso.

CTA: Enviar para aprovação / Gerar snapshot / Concluir, conforme o contrato e o estado.

4. Estados, salvamento e contratos

Estado do plano não é número da etapa

Estado Alterações Próxima ação principal Condição
Em planejamento, sem alterações Permitidas conforme permissões Montar ou verificar Dados disponíveis
Alterações no rascunho Permitidas Salvar alterações Validação do campo; erro estrutural não persiste como válido
Salvo Permitidas Estimar em Montar ou verificar Revisão gerada; seleção validada ao solicitar
Verificado Permitidas, invalidando verificação Conferir fechamento Demanda aplicada e zero bloqueios do plano
Aguardando estimativa Demanda/composição protegidas Acompanhar Pedido aceito pelo destino
Retorno parcial Revisar linhas recebidas Aguardar/reprocessar faltantes Sem adoção completa prematura
Estimativa recebida Decidir adoção Aplicar demanda Justificativa de ajustes
Demanda revisada Alterar invalida dependências Revisar fechamento Revisão corresponde à adoção
Em aprovação Conforme workflow oficial Acompanhar aprovação Aprovador e objeto definidos
Concluído Somente consulta Consultar / criar revisão Snapshot e confirmação de integração
Desatualizado / falha Conforme causa Corrigir e reprocessar Retorno anterior preservado

Navegar entre as etapas é livre para consulta. Botões que mudam estado têm validação na execução, não apenas disabled na interface. O servidor precisa repetir as validações e conferir revisão/permissão.

Dados mínimos compartilhados

Objeto Campos / responsabilidade
Plano planId, revision, país, canal, ciclos, filtros autorizados, status, revisão-base, criado/alterado por e quando
Promoção promotionId, código comercial, iniciativa, mecânica e versão da regra, descrição, público, segmentação, configuração
Linha lineId estável, promoção, ciclo, CV, veículo, grupo, papel, step, região/segmento; não usar descrição na identidade
Premissas Valores e versão de preço, comissão, impostos, custo, royalties, pontos, vigência, ativas e corredores
Draft Alterações não aplicadas com baseRevision; recuperação automática sem mover o Cenário Inicial
Validação planId, revision, versão das regras, instante, pendências por regra/alvo, ações bloqueadas
Pedido EOS requestId, revisão, escopo, tipo, gate, idempotência, foto dos inputs, estados e mensagens do destino
Retorno EOS Pedido de origem, identidade da linha, quantidade, modelo/qualidade, recebido em; decisão separada
Aprovação Revisão e conteúdo aprovados, aprovador, decisão, comentário, instante
Snapshot Conteúdo imutável, contexto por linha, versão, metadados e referências de cálculo/adoção
Evento Quem/quando, ação, contexto, valores anterior/novo, motivo e correlação com pedido/job

Mesma promoção multiciclal: código comercial compartilhado; lineId diferente por ciclo. Mesma descrição ou CV não implica mesma promoção. Cancelar, excluir e duplicar precisam definir se a ação afeta só o ciclo em foco ou toda a promoção, com prévia dos afetados.

Invalidação e concorrência

5. Regras e momentos de bloqueio

F = requisito explícito da planilha; P = evidência do projeto; R = recomendação desta proposta; D = decisão pendente. Uma recomendação não deve ser tratada como requisito aprovado.

Regra Tipo Comportamento recomendado Momento
Contexto herdado no cadastro F: A59–A63 Pesquisar somente CVs do recorte; validar em todos os ciclos escolhidos Incluir/aplicar
Mesmo código em vários ciclos F: A60 Código único da promoção; linhas independentes por ciclo Criação/duplicação
Vigência por ciclo F: A57; P: mapa VNPs elegíveis; impedir incluir produto sem vigência Inclusão/validação
Campo obrigatório F: Botão B42 + imagem Marcação visível, erro junto ao campo e resumo navegável Aplicar formulário
CV exato F: Botão B43–B44 Códigos como string; lista colada com encontrados/ausentes Busca/inclusão
Preço ↔ desconto F: A67; Botão B47–B48 Atualização bidirecional imediata, guardando precisão acordada Edição
Corredores F: Botão B49; P: mapa Avisar no salvamento; Boy bloqueia aprovação; bloqueio pré-EOS proposto, a validar Salvar/avançar
Sem corredor P/R Mostrar “não validado”; encaminhar não resolve Aviso; política de bloqueio D
Régua de pontos P: mapa, regra 4 Ausência impede input, com origem e ação Incluir
Comissão/pontos F: A124 Consumir comissão e régua vigentes; exceção CPV requer definição completa Cálculo
Inicial/trabalhado F: A71–A75 Base inicial estável; comparações com população equivalente Durante edição/salvar
Autoria e data F: A68/A87/A91 Registrar quando aplicar/salvar, também no bloqueio Mutação persistida
Cadeado de linha F: A85–A91 Trava todos os atributos e demanda Editar/excluir/adotar
Ciclo/veículo bloqueado F: A69; P: promocoes.js Prevalece sobre desbloqueio de linha Toda mutação do recorte
Exclusão F: A69/A77 + imagem Prévia da promoção, requisito/benefício e impacto; confirmar antes de executar Excluir
Benefício pago/doado F: A70 Qtd benefício > 0; desconto 100% = Doado; demais = Pago Cálculo da linha
ZEST e combo F: A78–A80 Expandir filhos, preservar pai, quantidade de componentes, sem dupla soma Inclusão/cálculo
Agrupador F: A81 Expandir CVs e validar por ciclo Inclusão
Segmento/grupo F: A82–A83 Picklist integrada com código + descrição Cadastro
Edição em massa F: A96–A106 Percentual + operação + Unidades/UPC + prévia; validar conjunto Aplicar lote
Unidades/UPC F: A112–A114 Conversão com ativas do próprio ciclo; sem ativas não dividir Edição/cálculo
Passou pelo EOS F: A120–A121 Check somente após envio e estimativa recebida Retorno
Mecânicas e descrição F: Botão B50; aba Mecânicas Campos condicionais e uma descrição por step quando necessário Cadastro
Multiciclo Forecast P: item 83 e promocoes.js Escopo explícito e resposta por ciclo/linha Solicitação/retorno
Quantidade revisada P: Aurora, bloco 4 Adoção explícita; ajuste exige justificativa Revisão EOS
Foto imutável P: RF-10.010 Copiar valores e contexto da revisão, não referências mutáveis Snapshot
Meta financeira R Aviso por ciclo; justificativa ao concluir com desvio Revisão final
Aprovação D Definir papel, alçada e objeto antes de ativar gate oficial Produção

Não há regra universal “todo aviso impede tudo”. O retorno da validação deve dizer quais ações são impedidas. Salvar um rascunho incompleto é diferente de aprovar, solicitar forecast ou publicar o planejamento.

6. Cálculos e conciliação

Os cálculos devem ficar em um serviço de domínio compartilhado, com a mesma definição na tela e no output. O demonstrador não é uma homologação financeira.

Métrica Definição / situação
Desconto 1 − Preço Por CF / Preço De, com vínculo reverso. Base CB exige sua comissão/regra, não a fórmula CF aplicada diretamente.
UPC por ciclo Unidades / Ativas. Ativas ausentes/zero produzem indisponibilidade e erro de edição por UPC.
Unidades a partir de UPC UPC × Ativas, com regra de arredondamento a homologar. Demonstrador usa inteiros arredondados.
Produtividade RB / Ativas do mesmo contexto. Não usar só o denominador do primeiro ciclo num consolidado multiciclal.
RB da planilha BH14 registra Unidades × Preço De × (1−Comissão) × (1−Desconto).
RB no código atual receitaDe usa Unidades × Preço Por; a comissão é descontada depois em uma variável chamada RL. Isso diverge da planilha.
Margem bruta Planilha BI14: Receita Líquida − CMV − Royalties. É preciso homologar a construção de RL, incidência de impostos e base de royalties.
Margem % consolidada Soma(MB) / Soma(RB), nunca média simples de percentuais de linha. RB zero deixa percentual indefinido.
Meta consolidada de MB% Se metas estão em RB e MB%, ponderar pela RB alvo, somente quando todos os ciclos têm meta. Comparar também cada ciclo separadamente.
Variação Proposta: Trabalhado − Inicial, com MB% em pontos percentuais. M4/O4 da planilha de exemplo usam sinais/razão diferentes dos demais campos; não copiar essas fórmulas sem homologar.
VNP anulado Preservar linha para consulta e rastreio; contribuição quantitativa/financeira nula enquanto a condição de anulação vigorar. Excluir a promoção que anulava reavalia o baseline.
Vertical Distribuir o volume total pelos ciclos efetivos uma única vez, conciliando o total de distribuição. Não alocar toda a quantidade ao ciclo inicial nem replicar 100% em cada ciclo.
Kit/combo Somar a granularidade escolhida: pai ou filhos; jamais ambos. Preservar quantidade do kit × composição para demanda dos filhos.

Premissas demonstrativas: comissão 28%, imposto 10%, custo unitário 22% do Preço De, royalties 3% da RL; são fixtures identificadas, não regras da Natura. O protótipo usa a RB da planilha e calcula RL com imposto para demonstrar a conciliação. Essas premissas precisam ser substituídas por fontes oficiais. Um valor ausente não deve receber percentuais fixos automaticamente na implementação real.

7. Rastreabilidade da Tela 7 e cobertura da proposta

O arquivo requisitos-fonte.csv preserva 66 células de requisitos textuais, sem modificar a planilha original. O catálogo mecanicas.js preserva as 28 mecânicas e os flags H:M; campos em branco permanecem sem definição.

Fonte na planilha Destino no fluxo Cobertura
A55, oito veículos Montar / visão por veículo Demonstrado, com público e cor; grade e quadro usam as mesmas linhas
A56, CRUD por superusuário Administração contextual Especificado; não criar nova etapa para o planejador
A57–A58, vigentes/VNP e promoções anteriores Carregamento do plano / Base vigente Carga automática por ciclo, sem duplicação e com promoções anteriores preservadas; cinco produtos demonstrativos, carga oficial ainda necessária
A59–A63, filtros e multiciclo Preparar + Nova promoção Demonstrado; catálogo local limitado, sem RBAC real
A64, anulação VNP Promover / resultado do ciclo / retirada Desconto simples, exceção RI, vínculo VNP/promoção, subtotais e restauração executados; parametrização oficial das demais mecânicas pendente
A65, cálculos de todas as colunas Motor financeiro e campos derivados Demonstrado núcleo RB/RL/CMV/MB/UPC; demais cálculos exigem contratos
A66–A68, salvar, desconto/preço, auditoria Montar Demonstrado
A69, excluir e cadeados Seleção + confirmação + motor Demonstrado; política por papel depende do backend
A70, benefício pago/doado Nova promoção / grupos Regra no motor; criação do grupo não demonstrada
A71–A75, cenários Comparativo na etapa 2 Demonstrado; iniciais preservados até salvar
A76, limites de caracteres futuros Schema de campo configurável Fonte não define números; não foram inventados
A77 / imagem Exclusão Confirmação contextual Confirmação demonstrada; prévia completa de grupos especificada
A78–A81, kits/combos/agrupadores Grupos e precificação Especificado; editor completo ainda necessário
A82–A83, códigos + descrições Campos segmentação Especificado; depende de picklists integradas
A85–A91, bloquear/desbloquear Cadeado por linha Demonstrado, com prioridade do ciclo/veículo no motor
A93, várias promos do mesmo produto Identidade/composição Estrutura permite; precedência e acumulação comercial pendentes
A96–A106, massa Unidades/UPC Ajustar demanda em massa Demonstrado com prévia e aplicação atômica na interface
A112–A114, conversão Cálculo/edição de demanda UPC calculado e ajuste percentual demonstrados; input absoluto de UPC no editor completo especificado
A120–A121, EOS Montar / painel EOS Estados separados e retorno simulado; integração não construída
A124, pontos Motor oficial por país Especificado; base/step/exceção CPV pendentes de homologação
Botão B42 + imagem de configuração Campos obrigatórios Editor simples demonstrado; obrigatoriedade condicional completa especificada
Botão B43–B44, CV exato Nova promoção Busca exata demonstrada; lista colada/agrupador especificados
Botão B45, população conforme mecânica Editor em três seções Especificado para todas as mecânicas
Botão B47–B49, CF/CB, slider e corredor Precificação Preço/desconto e aviso demonstrados; CB por nível no editor completo
Botão B50, descrição semiautomática Nova promoção Exemplo simples + catálogo completo; descrição por step especificada
Aba Picklists Campos avançados Fonte preservada; configuração de administração a implementar
Aba Visualização G4–G6 Gerenciar campos / perfis master Especificado; fora do demonstrador
Imagem Harmonização Ajustes com prévia Percentual de demanda demonstrado; harmonização por receita requer alavanca definida
Mecânicas B2:M29 Configuração por mecânica 28 modelos extraídos; desconto simples executável; demais disponíveis para consulta da estrutura

Mecânicas: não completar vazios com suposições

A aba define seis flags: quantidade requisito, quantidade benefício, grupo requisito, grupo benefício, vale-pontos e número de steps. Há linhas com flags ausentes. Ausência de preenchimento não equivale a “NÃO”.

Para cada país, publicar uma versão do catálogo com: obrigatórios, opcionais, ocultos, domínio numérico, passos permitidos, grupos, preço de requisito/benefício, descrição, código Capta/GSP, anulação de baseline e cálculo de pontos. Para progressivas, validar faixas ordenadas e sem sobreposição conforme contrato e gerar uma descrição por step. A imagem e B33 da aba avisam que o requerimento foi construído com base em Brasil e precisa ser revisto por país.

8. Decisões de negócio que faltam

Estas decisões não foram resolvidas artificialmente no protótipo. A entrega já está concreta para discussão com os responsáveis.

Decisão Evidência / por que importa Recomendação para validação
RB, RL e comissão BH14/BI14 divergem do código de promocoes.js Homologar um exemplo numérico por país/público, com impostos e royalties, e usá-lo como teste de contrato.
Piso Boy e momento do bloqueio Planilha pede aviso ao salvar; mapa afirma bloqueio de aprovação Permitir salvar rascunho; definir se impede Forecast ou apenas aprovação/publicação. A proposta bloqueia antes do Forecast como hipótese visível.
Anulação do baseline A64 depende da mecânica; mapa e código divergem sobre verticais e exceções Configuração por país/mecânica/papel/requisito/veículo; não aplicar “toda ciclal anula” indiscriminadamente.
Acumulação de promoções do mesmo CV A93 é uma pergunta aberta Permitir identidade distinta; decidir coexistência, sobreposição, exclusividade e tratamento da demanda.
Mecânicas com flags vazios H:M não está completo para as 28 linhas Completar matriz com negócio; campo não definido não é opcional automaticamente.
Aprovação e alçadas Documentação reconhece papel de aprovador não fechado Definir quem aprova, se aprova linha/promoção/ciclo/plano, que desvios exigem alçada e qual evento libera publicação.
Preço alterado durante estimativa CicloEstado permite preço editável; forecast usa inputs comerciais Invalidar retorno para revisão alterada até contrato EOS permitir compatibilidade seletiva.
Metas, piso e exceções Fluxo atual permite enviar mesmo abaixo da meta Avisos por ciclo e justificativa na conclusão; definir quem pode aceitar e se falta de meta bloqueia algum gate.
Pontos / Crer Para Ver A124 excepciona CPV, mas não define o resultado completo Não assumir “CPV = zero” sem a regra oficial da régua e sua exceção.
Doações e DRE Código diz “sem impacto financeiro”; preço zero não prova custo zero Validar onde entram CMV/doações, sem apagar a linha da demanda ou inventar custo.
Harmonizar por receita A imagem demonstra percentual e receita alvo, sem fórmula da alavanca Definir se o sistema altera quantidade, preço ou composição; mostrar a prévia dos campos que serão modificados.
Produção multiciclal Fontes admitem promoção e Forecast multiciclais Definir aprovação/fechamento por ciclo ou conjunto. Padrão recomendado: resumo por ciclo e operação sobre conjunto explicitamente confirmado.

9. Usabilidade e acessibilidade

10. Aceite ponta a ponta

Cenário Resultado esperado
Planejar 202701 e 202702 Cada linha conserva seu ciclo; totais por ciclo conciliam com o consolidado.
Trocar para Chile Dados brasileiros não aparecem no recorte chileno; continuam preservados no plano.
Incluir CV exato 713 Somente 713 é considerado, respeitando permissão/vigência; não encontra outro CV por sufixo.
Criar mesma promoção em dois ciclos Código comercial compartilhado; duas identidades de linha independentes.
Editar preço/desconto Ambos se atualizam; receita, margem, corredor e resumo usam o mesmo valor.
Selecionar uma linha Comparação usa os mesmos produtos/ciclos, incluindo VNP e promoções antes/depois; resumo global não muda.
Recarregar com rascunho Alterações são recuperadas; Cenário Inicial continua sendo a versão salva.
Salvar ou descartar Salvar move a referência; descartar restaura valores, não apenas o status.
Promo anula VNP Baseline não duplica demanda/receita; excluir a promo reavalia o VNP.
Item bloqueado numa edição em massa A seleção é reportada e não há aplicação silenciosa parcial.
Corrigir preço abaixo do Boy Pendência some por cálculo; mudar novamente para abaixo traz a pendência de volta.
Solicitar sem salvar/verificar Não cria pedido; informa a ação necessária.
Duplicar clique ou timeout de pedido Mesma operação/idempotência, sem envio duplicado.
Alterar preço depois do envio Foto enviada preservada; revisão e retorno incompatíveis são sinalizados.
Receber só parte das linhas Mostra recebidas/faltantes e permite completar a mesma solicitação, preservando decisões; não conclui o conjunto prematuramente.
Adotar sugestões pendentes Preserva ajustes manuais e demandas bloqueadas; linhas sem retorno continuam pendentes.
Consultar meta parcial Nunca mostra “Na meta” como comparação completa; desvio de uma meta conhecida exige justificativa.
Alterar unidades EOS Exige justificativa e preserva valor sugerido e adotado.
Concluir abaixo da meta Aviso por ciclo e justificativa; política de aprovação segue decisão de negócio.
Gerar snapshot Foto contém ciclo correto, preço efetivo, quantidade adotada, justificativa e premissas/revisão.
Reabrir plano concluído Nova revisão com motivo; snapshot anterior permanece inalterado.
Falhar persistência/integração Sem falso sucesso; mostrar estado recuperável e ação específica.

O motor do demonstrador tem 40 testes automatizados: 20 da jornada, 10 de VNPs e 10 da reavaliação (recorte de metas/ativas, metas parciais, auditoria, retorno complementar, preservação de decisões e demanda bloqueada). Os testes de navegador exercitam promoção por ciclo e em múltiplos ciclos, regra RI, retirada/restauração, edição VNP, correção, salvamento, solicitação, adoção, conclusão, reabertura e telas responsivas. periodos.test.js verifica anos e quarters independentes, ano completo, exclusão individual de ciclos, persistência, recuperação de rascunhos anteriores, propagação do recorte, seleções vazias e consulta de plano concluído. reavaliacao-navegador.test.js exercita troca de recorte com rascunho, meta no ciclo, atalhos de correção, retorno complementar, decisões manuais, demanda bloqueada, progresso, conclusão e steps fixos em diferentes larguras. Aprovação, integrações e cenários complexos de mecânicas precisam de testes com os contratos reais na implementação.

11. Sequência de implementação no produto

  1. Contrato de plano e cálculos: identidade, recortes, versões, baseline, premissas, RB/RL/MB e persistência. Corrigir inconsistências antes de conectar novas vistas.
  2. Bancada única: grade existente dentro da etapa Montar; editor completo como painel do fluxo, preservando todos os atributos da Tela 7. Substituir links que abandonam a jornada por navegação contextual com retorno.
  3. Validação compartilhada: regras com severidade, motivo e ações bloqueadas; correção por causa e versão validada.
  4. EOS/Aurora no fluxo: pedido versionado/idempotente, assíncrono, retorno parcial, decisões e adoção.
  5. Aprovação e fechamento: estado de governança, snapshot imutável, outputs e confirmação de integração.
  6. Escala e colaboração: virtualização da grade, processamento de lote, concorrência e auditoria no backend.

Não é necessário reescrever todos os módulos para oferecer uma jornada única. É necessário que todos leiam e alterem o mesmo plano por contratos consistentes.

Fontes consultadas