As 33 empresas com saldo negativo no Incentivo Esportivo
Base: IPATINGA_NOTAS (MySQL 5.7.42) · tabela compensacao_det · coluna incentivo_esportivo = 1
Somente leitura. Dataset: esporte_33_negativas.csv (645 linhas).
1. Resumo
| empresas no Incentivo Esportivo | 7.253 |
| saldo zerado (comportamento esperado) | 7.204 (99,4%) |
| saldo positivo (crédito não usado) | 16 |
| saldo negativo (caso anômalo) | 33 |
| — dedução total dessas 33 | R$ 416.176,27 |
| — utilização total dessas 33 | R$ 632.425,95 |
| — excedente total | R$ 216.249,68 |
O excedente se divide em dois mecanismos distintos e mutuamente exclusivos, cuja soma fecha exatamente o total:
| mecanismo | empresas | excedente | % |
|---|---|---|---|
B — valor gravado no bucket errado (tipo='T') |
29 | R$ 180.987,81 | 83,7% |
C — reaplicação por encerramento complementar (enc=2) |
4 | R$ 35.261,87 | 16,3% |
| total | 33 | R$ 216.249,68 | 100% |
Nenhuma das 33 tem o comportamento "correto" — o sistema nunca recusou uma aplicação. Não é uma exceção sporadica: é a ausência da validação de saldo.
2. Como o Incentivo Esportivo é registrado
Para entender o defeito é preciso conhecer a estrutura de compensacao_det:
tipo = 'P'— bucket do Incentivo Esportivo. Recebe tanto a dedução (o aporte do incentivo,valor_deducao, comprotocoloet08_iddo processo) quanto a utilização (valor_utilizado, obs "Incentivo utilizada no encerramento..."). É aqui que vive o saldo do incentivo.tipo = 'T'— bucket de Compensação genérica (créditos de cancelamento de nota, compensações de Tributário). Recebe obs "Compensacao utilizada no encerramento...".
O fechamento de competência grava pares de linhas: uma P ("Incentivo utilizada") e uma T ("Compensacao utilizada"), no mesmo cnpj/mes/ano e mesmo dt_cadastro. São 17.565 pares cnpj+mes+ano com P e T simultaneamente.
Invariante do sistema:
SUM(valor_utilizado) ≤ SUM(valor_deducao)dentro do bucket P. O bucket T não participa do saldo do incentivo.
Comparação lado a lado da mesma competência (02/2026):
| empresa | id_det | tipo | obs | ded | util | enc |
|---|---|---|---|---|---|---|
| 03230771000163 (com crédito) | 732 | P | aporte | 11.666,00 | 10.799,00 | 0 |
| 117050 | P | Compensacao | 0,00 | 0,00 | 2 | |
| 117051 | P | Incentivo | 0,00 | 31.666,00 | 2 | |
| 60894730002582 (sem crédito) | 32618 | T | Incentivo | 0,00 | 61.882,06 | 1 |
| 94588 | T | Compensacao | 0,00 | 0,00 | 2 | |
| 94589 | T | Incentivo | 0,00 | 0,00 | 2 |
No caso saudável, a utilização vai para P e consome o saldo. No caso quebrado, a utilização foi escrita em T — e a empresa não tem uma única linha tipo P em todo o histórico.
3. Mecanismo B — 29 empresas: valor no bucket errado
29 empresas. R$ 180.987,81. Correspondência 1:1 com o defeito.
Todas as 67 linhas com valor dessas empresas são tipo='T' com obs "Incentivo utilizada no encerramento...". Nenhuma tem valor_deducao, e nenhuma dessas empresas possui qualquer linha tipo='P' na base inteira.
Exemplo — USIMINAS (60894730002582, CCM 101200), o maior caso, R$ 125.506,02:
| id_det | comp. | tipo | obs | ded | util | enc | cadastro |
|---|---|---|---|---|---|---|---|
| 21824 | 06/2025 | T | Incentivo | 0,00 | 5.076,61 | 2 | 19/03/2026 |
| 21896 | 08/2025 | T | Incentivo | 0,00 | 34.552,47 | 2 | 19/03/2026 |
| 22441 | 10/2025 | T | Incentivo | 0,00 | 1.245,82 | 2 | 24/03/2026 |
| 22443 | 10/2025 | T | Incentivo | 0,00 | 16.772,49 | 2 | 24/03/2026 |
| 22491 | 12/2025 | T | Incentivo | 0,00 | 4.355,57 | 2 | 25/03/2026 |
| 32618 | 02/2026 | T | Incentivo | 0,00 | 61.882,06 | 1 | 14/04/2026 |
| 32711 | 12/2025 | T | Incentivo | 0,00 | 1.620,99 | 2 | 14/04/2026 |
Como a empresa não tem dedução, o relatório soma valor_utilizado contra valor_deducao = 0 → saldo negativo por construção. O valor saiu, mas não debita nada.
As 29 empresas
| CNPJ | Razão social | CCM | Excedente | Lanç. | Util. em T |
|---|---|---|---|---|---|
| 60894730002582 | USINAS SIDERURGICAS DE MINAS GERAIS S/A (USIMINAS) | 101200 | 125.506,02 | 36 | 125.506,02 |
| 03007331003248 | MERCADO LIVRE BRASIL LTDA | 27571100 | 12.924,83 | 21 | 12.924,83 |
| 17281106000103 | COMPANHIA DE SANEAMENTO DE MINAS GERAIS COPASA MG | 15472800 | 12.752,89 | 7 | 12.752,89 |
| 15438067000180 | AGENCIA DE DESENVOLVIMENTO DA REGIAO METROPOLITANA DO VALE DO ACO | 17456000 | 7.228,64 | 17 | 7.228,64 |
| 42956441003046 | SOLUCOES EM ACO USIMINAS S.A. | 25670100 | 6.398,32 | 9 | 6.398,32 |
| 05599094000180 | DEFENSORIA PUBLICA DO ESTADO DE MINAS GERAIS | −306056 | 3.187,92 | 12 | 3.187,92 |
| 11137051038744 | BOTICARIO PRODUTOS DE BELEZA LTDA | 22316104 | 2.953,97 | 15 | 2.953,97 |
| 17254509000163 | CONSELHO REGIONAL DE ENGENHARIA E ARQUITETURA | 8509100 | 2.882,43 | 12 | 2.882,43 |
| 35820448003666 | WHITE MARTINS GASES INDUSTRIAIS LTDA | 821300 | 1.410,32 | 16 | 1.410,32 |
| 32592073001188 | HARSCO METALS LTDA | −2042210715 | 1.016,86 | 23 | 1.016,86 |
| 45242914035154 | C&A MODAS S.A | 19971200 | 967,47 | 9 | 967,47 |
| 16567572000197 | CARNEIRO & ALMEIDA CONSTRUTORA LTDA | 17521400 | 963,75 | 14 | 963,75 |
| 04477018000130 | POLAR INDUSTRIA E COMERCIO DE COLHOES LTDA | 8167000 | 808,54 | 25 | 808,54 |
| 19878404001000 | FUNDACAO SAO FRANCISCO XAVIER | 20506 | 608,64 | 18 | 608,64 |
| 21027537000115 | AP MAGALHAES E CIA LTDA | 14800 | 317,22 | 14 | 317,22 |
| 21027537000549 | A. P. MAGALHAES & CIA LTDA | 14802 | 254,55 | 7 | 254,55 |
| 01926432000190 | CAIXA ESCOLAR BENVINDA MOREIRA PACHECO | −2042232571 | 171,07 | 8 | 171,07 |
| 35820448015591 | WHITE MARTINS GASES INDUSTRIAIS LTDA | 821302 | 150,49 | 11 | 150,49 |
| 27593883000147 | FARDIER TRANSPORTES LTDA | 22022200 | 121,76 | 16 | 121,76 |
| 01757902000130 | UNIVACO - UNIAO EDUCACIONAL DO VALE DO ACO S.A. | 6966800 | 90,00 | 28 | 90,00 |
| 19613397000115 | CAIXA ESCOLAR PADRE JOSE VALENTIM BERTOLO | 2203500 | 59,93 | 1 | 59,93 |
| 26336941000941 | MVC TRANSPORTE E LOGISTICA S.A | 24599100 | 55,82 | 10 | 55,82 |
| 04641376038966 | SUPERMERCADOS BH COMERCIO DE ALIMENTOS S/A | 33982600 | 45,50 | 14 | 45,50 |
| 04641376041169 | SUPERMERCADOS BH COMERCIO DE ALIMENTOS S/A | 33982900 | 45,50 | 12 | 45,50 |
| 28624878000117 | POSTO JR FAISAO IV LTDA | 22791900 | 26,49 | 17 | 26,49 |
| 48337247000639 | EUROVILLE GWM VEICULOS E PECAS LTDA | 2025008060 | 24,00 | 22 | 24,00 |
| 19935563000108 | PROCEDIMENTOS ODONTOLOGICOS LTDA | 19115500 | 8,43 | 18 | 8,43 |
| 05503624000650 | CAPTAMED CUIDADOS CONTINUADOS LTDA | 19932700 | 3,82 | 14 | 3,82 |
| 10448515000102 | MAQUINACO LOCACAO DE MAQUINAS LTDA | 14041200 | 2,63 | 17 | 2,63 |
Perfil: grandes empresas e órgãos públicos — USIMINAS, COPASA, Boticário, C&A, Harsco, White Martins, Defensoria Pública, UNIVACO. Ou seja, não são empresas de teste nem de baixo risco.
4. Mecanismo C — 4 empresas: reaplicação no fechamento complementar
4 empresas. R$ 35.261,87. Aqui a utilização está corretamente no bucket P; o defeito é de sequência.
As quatro têm dois sintomas combinados:
C.1 — Encerramento complementar (enc=2) reconsome crédito já consumido pelo encerramento regular (enc=1).
O mesmo valor aparece duas vezes, em competências diferentes, com meses de intervalo entre as aplicações:
| CNPJ | 1ª aplicação | 2ª aplicação | valor | Excedente |
|---|---|---|---|---|
| 07051313000118 (ACTCON) | id 18356 · 02/2026 · enc=1 · 10/03/2026 | id 137724 · 12/2025 · enc=2 · 03/09/2026 | R$ 4.548,84 | 4.548,84 |
| 17661295000140 | id 706 · 09/2025 · enc=1 · 03/09/2025 | id 132902 · 08/2025 · enc=2 · 01/09/2026 | R$ 1.595,93 | 1.595,93 |
| 04943416000102 | id 10833 · 01/2026 · enc=1 · 19/02/2026 | id 118897 · 08/2025 · enc=2 · 13/08/2026 | R$ 8.330,00 | 8.330,00 |
| 03230771000163 | id 618 · 05/2025 · enc=1 · 17/06/2025 | id 117051 · 09/2025 · enc=2 · 12/08/2026 | R$ 31.666,00 | (parcial) |
O caso da ACTCON é o mais limpo: o saldo chega a exatamente R$ 0,00 em 11/08/2026 e o lançamento seguinte consome R$ 4.548,84 de um saldo já zerado.
C.2 — Linha de aporte com valor_utilizado > valor_deducao na mesma linha.
A linha credita e consome na mesma operação, e consome mais do que credita:
| empresa | id_det | comp. | ded | util | excesso na linha |
|---|---|---|---|---|---|
| 07051313000118 (ACTCON) | 646 | 06/2025 | 5.000,00 | 7.500,00 | 2.500,00 |
| 07051313000118 (ACTCON) | 683 | 08/2025 | 5.000,00 | 6.901,22 | 1.901,22 |
| 03230771000163 | 367 | 08/2024 | 14.000,00 | 42.000,00 | 28.000,00 |
| 03230771000163 | 769 | 11/2025 | 18.332,80 | 58.332,80 | 40.000,00 |
| 03230771000163 | 802 | 12/2025 | 20.000,00 | 34.900,00 | 14.900,00 |
Este padrão não é exclusivo das 4. Em toda a base do Incentivo Esportivo há 232 linhas tipo P com valor_utilizado > valor_deducao na mesma linha, somando R$ 2.843.070,10 utilizados contra R$ 2.526.522,98 de excesso. Nas empresas que NÃO ficaram negativas, o excesso é absorvido pelo crédito restante — por isso elas "passam" e as 4 não.
As 4 empresas
| CNPJ | Razão social | CCM | ded P | util P | Saldo P | Excedente |
|---|---|---|---|---|---|---|
| 03230771000163 | EXATA COMERCIAL LTDA | 7521300 | 279.097,60 | 299.884,70 | −20.787,10 | 20.787,10 |
| 04943416000102 | SISTEMA ALFA UNIVERSITARIO LTDA - ALFA | 8935300 | 97.078,67 | 105.408,67 | −8.330,00 | 8.330,00 |
| 07051313000118 | ACTCON SOLUCOES WEB S.A. | 9700900 | 30.000,00 | 34.548,84 | −4.548,84 | 4.548,84 |
| 17661295000140 | AUTO MECANICA ESPACO DIESEL LTDA | 17966100 | 10.000,00 | 11.595,93 | −1.595,93 | 1.595,93 |
5. Por que o sistema permitiu
Três deficiências somadas:
-
Não há validação de saldo disponível na aplicação. A rotina de encerramento grava
valor_utilizadodireto, sem conferir se o bucket P tem crédito. O saldo negativo é um sintoma que o sistema não proíbe — apenas reflete. -
Não há separação entre os buckets na hora de gravar. O valor da utilização deveria ir em
tipo='P'. Quando vai paratipo='T', sai do ledger do incentivo sem debitar nada, e o relatório (que soma as duas colunas sem filtrar bucket) exibe o saldo negativo. As 29 empresas do mecanismo B são, na prática, créditos de compensação genérica rotulados como Incentivo Esportivo — o valor pode nem ser de incentivo. -
O encerramento complementar (
enc=2) não é idempotente. Reprocessa uma competência já fechada e reaplica o valor sem checar se já foi consumido. Não há chave de unicidade nem trava que impeça a reaplicação — por isso o mesmo valor aparece 2, 5, 7 e até 10 vezes em empresas diferentes (35358115000137 tem R$ 11.999,99 aplicados 10 vezes).
Agravante crítico: não existe trilha de auditoria. log_alteracoes_compensacao tem 0 linhas — para a base inteira, não só para estas empresas. Não há como saber quem rodou o fechamento, quando, nem o que mudou. Também não há chave única em compensacao_det que impeça o mesmo lançamento de ser gravado duas vezes.
6. Impacto
| dimensão | valor |
|---|---|
| Excedente total | R$ 216.249,68 |
| Empresas afetadas | 33 (inclui USIMINAS, COPASA, Boticário, C&A, Defensoria) |
| Empresas com Incentive Esportivo no total | 7.253 |
| % com saldo anômalo | 0,45% |
Linhas P com util > ded na mesma linha (base toda) |
232 · R$ 2.526.522,98 de excesso |
| Trilha de auditoria | inexistente (tabela vazia) |
O risco não está no valor — R$ 216 mil é pequeno. Está em que o sistema permite subtrair crédito que não existe, o que significa que: - o Incentivo Esportivo pode estar sendo usado como desconto não autorizado (crédito de compensação comum rotulado como incentivo, mecanismo B); - 7.253 empresas podem ter histórico com o mesmo defeito, e a amostra de 33 é só o extremo visível (saldo negativo). Empresas cujo saldo ficou positivo ou zerado pelo crédito indevido podem existir em silêncio.
Não auditei se as 29 empresas do mecanismo B realmente têm projeto esportivo enquadrado — isso exige cruzar com os processos SMAR/certidões de enquadramento, que não estão estruturados para consulta por CNPJ. As 67 linhas trazem o valor mas o obs é genérico ("Incentivo utilizada no encerramento..."), sem projeto, protocolo ou certidão.
7. Recomendações
- Auditar as 29 empresas do mecanismo B — verificar se têm Incentivo Esportivo enquadrado. Se não têm, o valor de R$ 180.987,81 é compensação comum indevidamente marcada.
- Auditar as 4 empresas do mecanismo C — verificar se os encerramentos complementares reaplicaram valores sobre creditos já consumidos, e conferir o lastro nas guias.
- Corrigir o sistema em três pontos:
- gravar a utilização sempre em
tipo='P'; - validar saldo disponível antes de gravarvalor_utilizadoe recusar a operação com mensagem clara; - tornar o encerramento idempotente (chave única porcnpj/mes/ano/tipo/encerramentoou marcação de "já fechado"). - Popular
log_alteracoes_compensacao— hoje está vazia; sem ela não há reconstrução de incidente. - Rodar a mesma verificação de saldo nas bases SQL Server (
SIGBANCOS_IPATINGA,SIGCARTORIOS_IPATINGA), onde a mesma lógica de fechamento pode existir.
Arquivos
| arquivo | conteúdo |
|---|---|
incentivo_esportivo_33_saldo_negativo.csv |
catálogo das 33 com razão social, mecanismo, ded/util P e T, excedente |
esporte_33_negativas.csv |
645 linhas brutas das 33 empresas |
razao_33.txt |
razão social resolvida via dados_contribuintes |
analise_33_negativas.py |
classificação por mecanismo (B/A/C/D) |
analise_33_detalhe.py |
decomposição por (tipo, encerramento) e linha a linha com saldo acumulado |
catalogo_33_negativas.py |
gera o catálogo final |
RELATORIO_ACTCON.md |
análise da ACTCON (caso do mecanismo C) |