SAÚDE EM FOCO / METODOLOGIA

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

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 testadaResultado e limite
DEMAS hospitais e leitosAmostras 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 2025SP/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ídasAmostra 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 PopularArquivos 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.
SIOPSCatá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, BPSFontes 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.
IBGEAPI 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/.

Voltar ao Saúde em Foco ↗