Stock Level Expansion

Expansão de Stock Levels: very_low e very_high

Resumo

Foram adicionados dois novos níveis de estoque à tabela pricing_stock_level_factors:
- very_low: Estoque muito baixo (fator: 0.6 - reduz desconto em 40%)
- very_high: Estoque muito alto (fator: 1.5 - aumenta desconto em 50%)

Níveis de Estoque Disponíveis

Stock Level Fator Ajuste Descrição
very_low 0.600000 -40% Estoque muito baixo: reduz desconto em 40% para evitar esgotamento e proteger margem
low 0.800000 -20% Estoque baixo: reduz desconto em 20% para evitar esgotamento
normal 1.000000 0% Estoque normal: sem ajuste no desconto
high 1.200000 +20% Estoque alto: aumenta desconto em 20% para escoar estoque
very_high 1.500000 +50% Estoque muito alto: aumenta desconto em 50% para escoar estoque e liberar capital

Script SQL

Execute o script para adicionar os novos níveis:

mysql -u usuario -p csuite_pricing < csuite-pricing/sql/adicionar_very_low_very_high_stock_level.sql

Ou execute diretamente no MySQL Workbench/phpMyAdmin.

Mudanças no Código

1. Validações Atualizadas

Arquivos modificados:
- agents/pricing/repository.py - Validação em create_pricing_stock_level_factor()
- agents/pricing/engine.py - Normalização de stock_level
- csuite-pricing/sql/add_stock_level_to_sp_price_compute_v8.sql - Validação na stored procedure

Antes:

valid_levels = ['low', 'normal', 'high']

Depois:

valid_levels = ['very_low', 'low', 'normal', 'high', 'very_high']

2. Frontend (Labels e Cores)

Arquivo: agents/pricing/main.py

Labels adicionados:

const levelLabels = {
  'very_low': 'Muito Baixo',
  'low': 'Baixo',
  'normal': 'Normal',
  'high': 'Alto',
  'very_high': 'Muito Alto'
};

Cores adicionadas:

const levelColors = {
  'very_low': 'badge-error',    // Vermelho
  'low': 'badge-error',         // Vermelho
  'normal': 'badge-success',    // Verde
  'high': 'badge-warning',      // Amarelo
  'very_high': 'badge-warning'  // Amarelo
};

Impacto no Cálculo de Preço

O fator de stock level é aplicado na fórmula final:

Desconto_Final = Desconto_Allowed × Curve_Factor × Stock_Level_Factor

Exemplos

Cenário 1: Desconto base de 10% com very_low
- Desconto base: 10%
- Stock Level Factor: 0.6
- Desconto final: 10% × 0.6 = 6% (redução de 40%)

Cenário 2: Desconto base de 10% com very_high
- Desconto base: 10%
- Stock Level Factor: 1.5
- Desconto final: 10% × 1.5 = 15% (aumento de 50%)

Mapeamento Sugerido de Estoque Real

Para mapear o estoque real para os níveis, sugere-se:

Stock Level Critério (Days Supply) Critério (Estoque)
very_low < 30 dias < 5% do estoque médio
low 30-60 dias 5-20% do estoque médio
normal 60-120 dias 20-80% do estoque médio
high 120-180 dias 80-150% do estoque médio
very_high > 180 dias > 150% do estoque médio

Nota: Estes critérios devem ser ajustados conforme a estratégia de negócio e análise de dados históricos.

Ordem de Precedência

Do mais conservador (menor desconto) ao mais agressivo (maior desconto):

very_low (0.6) < low (0.8) < normal (1.0) < high (1.2) < very_high (1.5)

Verificação

Após executar o script SQL, verifique:

SELECT 
    stock_level,
    factor,
    ROUND((factor - 1.0) * 100, 1) AS ajuste_percentual,
    description,
    is_active
FROM csuite_pricing.pricing_stock_level_factors
WHERE is_active = 1
ORDER BY factor;

Deve retornar 5 níveis ativos.

Próximos Passos

  1. ✅ Executar script SQL para adicionar os novos níveis
  2. ⚠️ Atualizar lógica de cálculo de stock_level em product_classification para incluir very_low e very_high
  3. ⚠️ Atualizar stored procedures de sincronização se necessário
  4. ⚠️ Testar o pricing agent com os novos níveis
  5. ⚠️ Monitorar impacto nos preços calculados

🔊 Text-to-Speech

1.0x
1.0
Pronto para reproduzir