Scraper PNCP usa valorGlobal (bugado na fonte) em vez de valorParcela × numeroParcelas #3
Labels
No labels
area/api
area/auth
area/dashboard
area/db
area/frontend
area/llm
area/scrapers
meta
priority/critical
priority/high
priority/low
priority/medium
type/bug
type/feature
type/infra
type/refactor
type/security
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
soberania-brasileira/digital#3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexto
scripts/scraper_pncp_full.py:94lêitem.get("valorGlobal", 0)direto. PNCP tem typos sistêmicos no campovalorGlobal: contratos com valores de R$ 1 trilhão, R$ 6 trilhões, etc. — encontrado em 2026-04-28 quando o site mostrava SUM = R$ 38,9 trilhões.Análise dos
api_rawmostra quevalorParcela × numeroParcelasé confiável e bate comvalorGlobalem ~99% dos casos. Os ~1% divergentes são os bugs.Exemplo
Contrato
pncp-53378820000188-2-000088/2025("Espingarda calibre 12"):valorInicial: 1.034.440.001.034,44 (R$ 1 tri — bug)valorParcela: 1.034.440,00 (R$ 1 mi — real)numeroParcelas: 1valorParcela × numeroParcelasMudança
scraper_pncp_full.py:94— calcularvalor = valorParcela * numeroParcelas; fallback paravalorGlobalse ausentevalorParcelaapi_rawexistente para reparse de todos os 4,77M rows (script/tmp/apply_heuristic_fix.pyjá fez isso para a faixa R$ 100M-10bi; estender para todas as faixas)Já feito (2026-04-29)
valor_outliers_quarantine(104 cegos + 341 via heurística)valor_totalsaiu de R$ 38,94 T → R$ 1,77 T