De "Taxa de Perda 33,8%" para 3% real — sem quebrar uma única página.
Dashboard executivo SPA que consolida jornada do lead, P&L por convênio, LTV/recorrência e performance por FIDC, com correção semântica de enums que estavam mentindo para o C-level.
- ClienteKGX Capital
- Ano2026
- PapelSolo · dashboard SPA end-to-end
- StatusEm produção · sob NDA
Dois enums de Status semanticamente distintos (jornada do lead vs ciclo do consignado) eram tratados como o mesmo — "Taxa de Perda" exibida ao C-level era 33,8% por incluir leads em etapa intermediária; valor real é 3,0%.
Sprint 1: refatoração semântica em comercialConstants.ts com aliases @deprecated para não quebrar imports legados durante a migração. Sprint 2: módulo financeiro completo (carteira, P&L, LTV, FIDC) com Health Score multidimensional ponderado e auditoria visual.
Bug de produção corrigido com impacto direto na decisão executiva, sem quebrar uma única página. Privacy by default na borda do query (CPF/Email omitidos). Threshold de alertas recalibrado de 40% para 15%.
Aliases @deprecated nas constantes — refatoração de semântica em uma sprint sem migrar simultaneamente todas as páginas. Risco controlado, dívida explícita.
Convenio Health Score ponderado em 5 dimensões (Quitação 30%, Perda 25%, Aging 20%, Volume 15%, Tempo 10%) com volume em escala log relativa à mediana.
onAuthStateChange antes de getSession — ordem deliberada para evitar race entre hidratação e primeiro evento de auth.
- 33.8% → 3%bug de Taxa de Perda em produção
- 18tabelas Postgres tipadas
- 14RPCs Postgres expostas
- 5dimensões no Health Score
- 11rotas autenticadas (comercial + financeiro)
- TypeScript 5.8 strict
- Vite 5 + React 18
- Tailwind + shadcn/ui (49 componentes)
- TanStack Query 5
- React Hook Form + Zod
- Recharts 2
- Supabase (Auth, Postgres 15, RLS, RPCs)
- Vitest + Playwright