A moldura inegociável
Indício não é estatística.
As três camadas têm fidelidades diferentes e nunca se misturam. Cada ponto no mapa declara sua natureza: registro, indício ou dado oficial.
Indício serve para investigar.
Nunca para acusar. Anomalia estatística aponta onde olhar — jamais conclui sobre eventos ou pessoas específicas.
Apartidário, com fonte.
Toda afirmação carrega a origem do dado e a ressalva metodológica. O código é aberto — AGPL-3.0, auditável por qualquer pessoa.
AS CAMADAS, LADO A LADO
FONTES DE DADOS
AVISOS
Não é alerta de emergência
Em urgências, ligue 190. Esta aplicação não mede risco individual em tempo real.
Indício não é prova
Camadas de notícia e anomalia não devem ser usadas para vigilância, previsão de crime ou conclusões sobre pessoas específicas.
O dado oficial também erra
Subnotificação, revisões e diferenças metodológicas entre fontes existem — por isso o radar de anomalia existe.
O MAPA OFICIAL — COMO LER
A fonte é a Base VDE do SINESP/MJSP (carga nacional, 27 UFs e municípios, de 2015 em diante). O valor exibido é de vítimas registradas, não ocorrências. A taxa por 100 mil usa população IBGE 2025 enquanto a série populacional histórica não é integrada.
"Sem dado" (a fonte não informou) é distinto de "zero registrado" (a fonte informou 0) — eles nunca se confundem no mapa.
O RADAR DE ANOMALIA — TRÊS LENTES
Ciclo eleitoral
O homicídio reportado "some" na janela pré-eleitoral? Comparamos cada UF consigo mesma (índice sazonal ago–out ÷ média do ano) e com os pares de mesmo porte(diff-in-diff) — nunca ranking cru (IPEA). Só vira "forte" cruzado com presença de facção (Review of Economic Studies 86(2), 2018).
Governança criminal
Intensidade de homicídio (homicídios ÷ óbitos totais) relativa à mediana nacional, cruzada com facção. Intensidade atipicamente baixa + facção podeindicar controle/"pax" — ou refletir fatores estruturais. Hipótese a investigar, não leitura fechada.
Homicídios ocultos
Homicídio (X85–Y09) cai enquanto a morte por causa indeterminada (Y10–Y34) sobe acima da tendência nacional — a morte não some, muda de coluna. Comparação sempre relativa (anti-alarmismo); motivação: SciELO 2025 (~43,6% das MVCI seriam homicídios).
A CAMADA OSINT — PIPELINE
- 1 · Classificação keyword-first — palavra-chave decide se é violência armada, antes de qualquer IA.
- 2 · Geocode por dicionário IBGE — 5.564 municípios, sem LLM (e sem confundir bairro/rua homônimo com município).
- 3 · Dedupe determinístico — funde notícias do mesmo fato, sem embeddings.
- 4 · Só então, o LLM — o restante cai num rodízio de provedores gratuitos.
No mapa, o indício OSINT é sempre o ◆ losango âmbar, com precisão municipal e fonte citada — visivelmente distinto do registro do Fogo Cruzado. Indício, não registro.
COMO É CONSTRUÍDO
- ⚙️ Next.js + TypeScript · Tailwind v4 · MapLibre GL — sem tile pago.
- 🔒 server-only + assets versionados — dado pesado fora do bundle.
- 🤖 Rodízio de 6 IAs gratuitas (Gemini · Groq · Cloudflare · Mistral · OpenRouter · Together).
- ⏱️ Cron no GitHub Actions — ingestão frequente no plano gratuito.
- 🛡️ CSP estrita + Permissions-Policy — segurança que já pegou bug real.
- ✅ node:test · ESLint · Greptile · Snyk · Playwright · AGPL-3.0.