Fontes e método
Dados em Foco · O Brasil explicado pelos números.
O que está funcionando
O SAMU mostra recursos móveis por município e total estadual da mesma categoria e competência, com CSV gratuito. Ambulâncias básicas, avançadas, motolâncias, embarcações e aeromédicos permanecem separados. O histórico contém as competências de dezembro de 2016 a 2025 e agosto de 2026; não é uma série mensal completa. Recursos atribuídos ao município não identificam a base nem sua área atendida e não medem funcionamento, qualidade ou espera.
A Farmácia Popular mostra estabelecimentos localizados por município, seus endereços e total estadual da lista de 02/10/2026. Não publicamos mapa sem coordenadas verificadas nem pagamentos, beneficiários ou dispensações sem fonte municipal verificável.
Totais do Brasil
O panorama nacional aparece mesmo antes de selecionar uma cidade. SAMU, competência agosto/2026: 3.385 ambulâncias básicas e 741 avançadas, totalizando 4.126 ambulâncias; 258 motolâncias, 27 embarcações e 24 aeromédicos são exibidos separadamente. Os totais nacionais usam o campo oficial vl_indicador_calculado_br, conferido em todas as linhas e retido uma única vez por categoria e competência. A soma dos totais nativos das 27 UFs coincide com o Brasil em todas as competências publicadas.
Farmácia Popular: 27.538 estabelecimentos únicos na lista nacional de 02/10/2026, incluindo os 19 sem correspondência municipal. Esse total coincide com a soma das listas estaduais. Município, estado e Brasil são recortes contidos uns nos outros e nunca são somados entre si. Os CSVs incluem o total nacional e sua referência. Retemos apenas esses agregados adicionais nos metadados; os originais continuam sendo descartados.
Filtros, gráficos e totalizações
Os dropdowns Estado e Cidade são encadeados e sincronizados com a busca e com a URL. Na visão geral, os gráficos e tabelas mostram o município escolhido e os totais estaduais comparáveis.
O total de ambulâncias soma somente básicas e avançadas da mesma competência. Essa soma foi conferida contra o indicador oficial combinado de ambulâncias básicas e avançadas (samunaab.csv.zip), em 61.273 observações município/competência, sem divergências. Motolâncias, embarcações e aeromédicos permanecem separados. A ausência de uma parcela torna o total indisponível. Município e UF não são somados entre si.
Na Farmácia Popular, as barras mostram estabelecimentos localizados no município e o total da lista estadual. O gráfico de municípios exibe os dez maiores da UF e a cidade selecionada, quando fora desse grupo. Grafias não correspondidas podem afetar as posições; não se infere zero para municípios sem correspondência. O CSV das totalizações contém os valores e a data da lista.
Conferência aberta dos totais de ambulâncias.
Fontes oficiais
- SAMU 192 — catálogo oficial e arquivos por categoria. Campos usados: co_anomes, co_ibge, vl_indicador_calculado_mun, vl_indicador_calculado_uf e dt_atualizacao. Ambulâncias básicas e avançadas são fornecidas nos arquivos samunab e samunaa, respectivamente; samumoto, samuemb e samuaer são as outras categorias. Nunca se soma o indicador sobreposto de básicas+avançadas, nem os totais de UF repetidos em cada linha.
- Farmácia Popular — página e XLSX de 02/10/2026. Estabelecimentos únicos conferidos pelo CNPJ apenas em memória. O identificador não é retido; preservamos razão social, endereço e bairro.
- IBGE — Divisão Territorial Brasileira 2024, data base 31/12/2024. Tabela de 5.571 municípios, com código oficial de sete dígitos. O código de seis dígitos do SAMU é associado à tabela oficial, sem inventar dígitos.
Correspondência de municípios e lacunas
Na lista de farmácias, nome e UF passam por normalização de acentos, caixa e pontuação e precisam coincidir exatamente com a DTB. Não há aproximação automática. Dos 27.538 estabelecimentos, 19 não tiveram correspondência: MG 11, RN 2, SE 2, CE 2, MT 1 e SP 1. Eles entram apenas no total da UF, com aviso de contagem municipal potencialmente incompleta. Os nomes e contagens estão nos metadados abertos. Ausência de correspondência aparece como “Não localizado”, nunca zero inferido.
Uma contagem zero do SAMU é exibida somente quando publicada como zero. Campos ausentes e competências inexistentes permanecem indisponíveis. Não calculamos cobertura, frota exclusiva para residentes, notas de desempenho ou per capita a partir desses dados.
Consultas reais antes das visualizações
Em 06/11/2026, testamos São Paulo/SP (IBGE 3550308) e Rio de Janeiro/RJ (3304557), sem autenticação. SAMU em agosto de 2026: básicas 107 e 38; avançadas 15 e 11; motolâncias 36 e 0; embarcações 0 e 0; aeromédicos 0 e 1, respectivamente. Farmácias localizadas na lista: 771 e 574. São recortes reais, não exemplos simulados.
| Fonte testada | Resultado e limite |
|---|---|
| DEMAS hospitais e leitos | Amostras sem autenticação em 1,1–2,0 segundos. O filtro por código municipal de SP/RJ foi ignorado, com resposta de outras UFs e código nulo. O filtro documentado de UF retornou HTTP 500. limit e offset alteram quantidade/página. A amostra não tem competência nem definição validada de leitos gerais/complementares. Não há somas ou séries publicadas. |
| DEMAS vacinação PNI 2025 | SP/RJ retornam o mesmo registro e hash mesmo com filtro de município de estabelecimento, em 1,3–1,7 segundos; offset=1 muda o registro. A API devolve registros individuais, com campos distintos de aplicação e residência; só limit/offset estão documentados, até 1.000 itens por página. Não paginamos a base nacional durante a visita nem retemos esses registros. Outros anos não foram validados. |
| Doses distribuídas | Amostra HTTP 200 em 1,6 segundo com ano, mês, ibge, origem, quantidade e insumo. Recorte municipal e histórico não confirmados. Não confundir doses distribuídas e aplicadas. Cobertura depende de denominador e metodologia oficiais, não disponíveis nesta versão. |
| SAMU e Farmácia Popular | Arquivos oficiais pequenos baixados fora da requisição, processados temporariamente e descartados. Cinco tipos separados de recurso SAMU foram confirmados; observações municipais/competência únicas e totais estaduais consistentes. Arquivo misto foi usado apenas para conferência. Lista de farmácias com data e cabeçalho conferidos. |
| SIOPS | Catálogo acessível, mas os caminhos usuais de Swagger consultados retornaram 404. Isso não prova indisponibilidade de toda a API; o contrato municipal não foi confirmado. Não se publicam despesas sem validação. |
| FNS, PNCP, BPS | Fontes identificadas, consultas financeiras municipais não validadas. Despesa declarada, repasse federal e compra/contrato são medidas distintas e nunca são somadas como valores independentes. Sem população oficial compatível não há despesa por habitante. Valor municipal não disponível nesta fonte para serviços sem atribuição confiável. |
| IBGE | API de localidades retornou 503 (~5 segundos), inclusive para SP e RJ. A DTB oficial em arquivo funcionou; a referência territorial fica explícita. |
Fontes pendentes: Hospitais e leitos · DEMAS (Swagger, vacinação e BPS) · SIOPS · FNS · PNCP. UPAs, atenção básica, internações e mortalidade ficam para fases seguintes.
Armazenamento, atualização e retenção
Não há base bruta no D1, no R2 ou no repositório. O programa offline usa pasta temporária e descarta originais ao terminar, inclusive em falhas. Não executamos downloads nacionais, descompactação ou paginação extensa durante a visita.
Para permitir a consulta, retivemos cerca de 6,8 MiB de derivados públicos estáticos: código/nome/UF do município; contagens municipais e totais estaduais por competência e cinco tipos SAMU; razão social/endereço/bairro por município; totais estaduais e número de farmácias sem correspondência; datas, fontes e hashes. Não há CNPJ, pacientes nem microdados de vacinação. Os dados são divididos por UF e o visitante carrega só a UF escolhida; a maior consulta testada (SP) tem cerca de 943 KiB antes da compressão HTTP.
Retemos o último snapshot válido, a revisar em até 90 dias. Fontes com mais de 90 dias recebem aviso. O histórico Git e previews antigos podem preservar derivados anteriores sem apagamento automático. Os originais não são versionados. Não há tarefa agendada. A data de preparo nunca substitui a competência nem a data da publicação. Falha na atualização mantém os arquivos válidos anteriores; falha de leitura mostra indisponibilidade e oferece nova tentativa, sem inventar zeros.
Os CSVs contêm o recorte municipal, os valores estaduais comparáveis (SAMU), período e fonte. Em campos textuais iniciados por sinais de fórmula, um apóstrofo protege a abertura em planilhas.
Reprodução aberta
Baixar o programa de preparação (Python) · Metadados, fontes, hashes e lacunas (JSON) · Evidências das consultas sem registros individuais (JSON).
Com Python 3.11+ e openpyxl, execute o programa no checkout do projeto, em scripts/health/prepare.py. O programa consulta URLs oficiais fixas e valida geografia, contagens, duplicatas e datas antes de gerar dist/saude/dados. Se a data da lista ou o esquema mudar, ele falha até revisão humana da fonte e do código. Para uma cópia autônoma, ajuste ROOT para uma pasta de saída própria. Para consultar o site local, execute python -m http.server 8765 --directory dist e abra /saude/.