PolíticaBSBConte sua necessidade

Dados abertos

Dados abertos

Os arquivos de que saem os estudos de preço e a ferramenta de faixa observada, para baixar e refazer a conta. Cada um vem com o sha256 calculado do próprio arquivo quando o site é publicado, o tamanho, o período, a licença e o significado de cada campo.

Nesta página
  1. Os arquivos
  2. Contratos públicos de capacitação e apoio técnico, coleta bruta do PNCP
  3. Base limpa e classificada dos estudos de preço, um contrato por linha
  4. Agregado do observatório de preços, um grupo por linha
  5. Script de coleta, tratamento e análise
  6. Script do agregado do observatório
  7. O que ainda não está aqui
  8. Outros arquivos abertos
  9. Uso e citação

Para conferir se o arquivo que você baixou é o mesmo daqui: sha256sum arquivo no Linux, shasum -a 256 arquivo no macOS ou certutil -hashfile arquivo SHA256 no Windows. O resultado tem de ser idêntico ao publicado abaixo. Como os dados foram coletados e tratados está em método.

Os arquivos

Arquivos publicados para download
ArquivoO que éRegistrosTamanho
pncp-contratos-2026-08-31.jsonContratos públicos de capacitação e apoio técnico, coleta bruta do PNCP3.5072,0 MB
faixas-preco-2026-08-31.jsonlBase limpa e classificada dos estudos de preço, um contrato por linha2.5703,7 MB
coleta-pncp.pyScript de coleta, tratamento e análise—35 kB
observatorio-2026-08-31.csvAgregado do observatório de preços, um grupo por linha12312 kB
agregar-observatorio.pyScript do agregado do observatório—13 kB

Contratos públicos de capacitação e apoio técnico, coleta bruta do PNCP

Registros de contrato devolvidos pelas consultas temáticas à API pública de busca do PNCP, antes da limpeza (sem valor, duplicata e exclusão por tema). Sem campo de fornecedor; o objeto passou por tratamento para redução de identificadores pessoais.

Dicionário de campos (11 campos)

"Preenchido" conta os registros em que o campo não vem vazio. Campo do esquema que a fonte não devolve aparece com zero, em vez de sumir da lista.

Dicionário de campos de pncp-contratos-2026-08-31.json
CampoSignificadoPreenchido
qa consulta temática que trouxe o registro (os termos estão no script de coleta)3.507 de 3.507
orgaonome do órgão contratante, como o PNCP o devolve3.507 de 3.507
esferaesfera do órgão em texto (Municipal, Estadual, Federal, Distrital ou Não se aplica, valor que o próprio PNCP devolve para alguns órgãos)3.507 de 3.507
ufsigla da unidade da federação do órgão3.507 de 3.507
municipiomunicípio do órgão3.507 de 3.507
modalidademodalidade ou fundamento da contratação informado no registro3.507 de 3.507
valorvalor global do contrato, em reais3.507 de 3.507
anoano do registro, como o PNCP o devolve3.507 de 3.507
objetoobjeto do contrato, escrito por quem contrata, truncado na coleta; CPF e nome de pessoa passam por tratamento automático que os troca por marcador. O tratamento é por regra e pode deixar passar um caso: quem achar nome de pessoa aqui, por favor avise pelo contato, e a correção entra em /correcoes3.507 de 3.507
inidata de início da vigência (AAAA-MM-DD)3.507 de 3.507
fimdata de fim da vigência (AAAA-MM-DD)3.507 de 3.507

Base limpa e classificada dos estudos de preço, um contrato por linha

Os registros que sobraram da limpeza, num esquema comum de preço: valor global, equivalente mensal quando a vigência passa de três meses, tema classificado e a base de comparação. É dela que saem a faixa observada e as contagens do entorno.

Dicionário de campos (44 campos)

"Preenchido" conta os registros em que o campo não vem vazio. Campo do esquema que a fonte não devolve aparece com zero, em vez de sumir da lista.

Dicionário de campos de faixas-preco-2026-08-31.jsonl
CampoSignificadoPreenchido
fontede onde o registro veio (pncp-busca: a API de busca do PNCP)2.570 de 2.570
origem_idchave aproximada do registro na origem: órgão, valor e início do objeto, porque a API de busca não devolve identificador estável2.570 de 2.570
origem_urlendereço do registro na origem, quando a fonte o devolve0 de 2.570
tipo_registrotipo do registro na origem (contrato)2.570 de 2.570
estagioestágio da contratação (assinado: contrato já firmado, não estimativa)2.570 de 2.570
coletado_emdata da coleta (AAAA-MM-DD)2.570 de 2.570
esquema_versaoversão do esquema comum de preço em que a linha foi gravada2.570 de 2.570
orgao_nomenome do órgão contratante2.570 de 2.570
orgao_cnpjCNPJ do órgão, quando a fonte o devolve0 de 2.570
unidade_nomeunidade compradora dentro do órgão, quando a fonte a devolve0 de 2.570
esferaesfera em código: F federal, E estadual, D distrital, M municipal, N não se aplica2.570 de 2.570
poderPoder do órgão, quando a fonte o devolve0 de 2.570
ufsigla da unidade da federação2.570 de 2.570
municipio_nomemunicípio do órgão2.570 de 2.570
municipio_ibgecódigo IBGE do município, quando a fonte o devolve0 de 2.570
porte_enteporte do ente comprador (desconhecido quando a fonte não permite inferir)2.570 de 2.570
objetoobjeto do contrato, com o mesmo tratamento de identificadores da coleta bruta2.570 de 2.570
catalogo_tipotipo de catálogo do item, quando a fonte o devolve0 de 2.570
catalogo_codigocódigo do item no catálogo, quando a fonte o devolve0 de 2.570
catalogo_descricaodescrição do item no catálogo, quando a fonte a devolve0 de 2.570
temaslinhas de serviço em que o registro foi classificado; lista vazia quando não casa com nenhuma1.147 de 2.570
temas_versaoversão da taxonomia de temas usada na classificação2.570 de 2.570
temas_origemcomo o tema foi atribuído: regex (pelo texto do objeto), orgao (pela natureza do órgão, caso das escolas de governo) ou nenhum2.570 de 2.570
moedamoeda dos valores (BRL)2.570 de 2.570
valor_brutovalor como veio da fonte, em texto, para não perder casas decimais2.570 de 2.570
valor_tipoo que o valor bruto mede (global: o contrato inteiro)2.570 de 2.570
quantidadequantidade contratada, quando a fonte a devolve0 de 2.570
unidade_medidaunidade da quantidade, quando a fonte a devolve0 de 2.570
valor_totalvalor total do contrato, em texto decimal2.570 de 2.570
valor_unitariovalor por unidade, quando a fonte o devolve0 de 2.570
valor_mensalequivalente mensal (valor total dividido pelos meses de vigência); não é a parcela paga1.907 de 2.570
data_referenciadata que situa o preço no tempo (AAAA-MM-DD)2.570 de 2.570
vigencia_inicioinício da vigência (AAAA-MM-DD)2.570 de 2.570
vigencia_fimfim da vigência (AAAA-MM-DD)2.570 de 2.570
meses_vigenciameses de vigência: dias entre início e fim divididos por 30,44; vazio quando não calculável2.287 de 2.570
valor_total_realvalor corrigido pela inflação, quando calculado0 de 2.570
deflator_basemês-base da correção pela inflação, quando calculada0 de 2.570
base_comparacaoa série em que o registro entra: global ou mensal, que não se misturam2.570 de 2.570
modalidademodalidade ou fundamento informado no registro2.570 de 2.570
fundamento_legaldispositivo legal da contratação, quando a fonte o devolve0 de 2.570
criterio_julgamentocritério de julgamento, quando a fonte o devolve0 de 2.570
n_propostasnúmero de propostas recebidas, quando a fonte o devolve0 de 2.570
fornecedor_tiponatureza do fornecedor (NI: não informado; nenhum campo de fornecedor é coletado)2.570 de 2.570
valor_confiavelmarca de valor utilizável no cálculo das faixas2.570 de 2.570

Agregado do observatório de preços, um grupo por linha

A faixa de cada linha de serviço e base de comparação, para qualquer comprador e por perfil (região e via de contratação), com P10, P25, mediana, P75 e P90. Sai da base limpa acima pelo script agregar-observatorio.py, que só grava se a faixa geral for idêntica à da faixa observada já publicada. Grupo sem faixa vem com o n e o motivo, sem percentil.

Dicionário de campos (15 campos)

"Preenchido" conta os registros em que o campo não vem vazio. Campo do esquema que a fonte não devolve aparece com zero, em vez de sumir da lista.

Dicionário de campos de observatorio-2026-08-31.csv
CampoSignificadoPreenchido
temalinha de serviço (o rótulo de cada uma está em /observatorio)123 de 123
basebase de comparação: global (valor do contrato) ou mensal (equivalente mensal, para vigência de mais de três meses)123 de 123
dimensaogeral (qualquer comprador), regiao (região do comprador) ou via (via de contratação declarada no registro)123 de 123
valoro recorte dentro da dimensão: N, NE, CO, SE ou S para região; licitacao ou direta para via; vazio na geral105 de 123
nnúmero de contratos no grupo123 de 123
nEntesnúmero de órgãos distintos no grupo123 de 123
periodoIniciodata de referência mais antiga do grupo (AAAA-MM-DD)123 de 123
periodoFimdata de referência mais recente do grupo (AAAA-MM-DD)123 de 123
p10percentil 10, em reais, valores nominais; vazio quando o grupo não tem faixa71 de 123
p25percentil 25, em reais, valores nominais; vazio quando o grupo não tem faixa71 de 123
p50mediana, em reais, valores nominais; vazio quando o grupo não tem faixa71 de 123
p75percentil 75, em reais, valores nominais; vazio quando o grupo não tem faixa71 de 123
p90percentil 90, em reais, valores nominais; vazio quando o grupo não tem faixa71 de 123
suprimidosim quando o grupo não tem faixa publicável123 de 123
motivopor que o grupo não tem faixa: n abaixo do mínimo (8 na geral, 10 no perfil), menos de 3 órgãos ou um órgão com mais da metade52 de 123

Script de coleta, tratamento e análise

O programa que faz a coleta no PNCP, o tratamento do objeto, a limpeza, a classificação e o cálculo dos percentis do primeiro estudo. Roda com Python 3, sem dependência externa.

Opções de linha de comando de coleta-pncp.py
OpçãoO que faz
--analisarecalcula, sobre a base, as tabelas do estudo e as imprime
--gera-jsongera o agregado que a página do estudo publica
--anonimiza-basereaplica o tratamento de CPF e de nome de pessoa a uma base já coletada
--objetoslista os objetos de uma linha de serviço, para conferência manual
--ufrestringe a listagem de objetos a uma ou mais unidades da federação

Script do agregado do observatório

O programa que lê a base limpa, confere que a faixa geral é idêntica à já publicada e calcula o P10 e os perfis. Roda com Python 3, sem dependência externa e sem rede.

Opções de linha de comando de agregar-observatorio.py
OpçãoO que faz
--conferirsó confere a paridade com a faixa publicada, sem gravar nada
--simular-ipcaimprime a mediana nominal e a corrigida pelo IPCA de cada linha, sem gravar nada (preparação da coleta de 01/12/2026)

O que ainda não está aqui

Dois estudos saem de bases intermediárias que ainda não publicamos. Os agregados que eles usam declaram o sha256 da base de origem, para que a publicação futura possa ser conferida contra o número que já está na tela:

  • Preço da hora por porte: 3.133 registros, Compras.gov.br — API pública de pesquisa de preço (modulo-pesquisa-preco), coletados em 10/09/2026. sha256 declarado: cf915e6a4f6edc47e27ea5b0c771afb590e5f0dee59f63f717edcd479069bd11
  • Série no tempo: 2.570 registros, PNCP — Portal Nacional de Contratações Públicas, API pública de busca, coletados em 31/08/2026. sha256 declarado: ee95f7a96749b8252292277439673819d238d0313f4127e6d11b32d2e73ceb6d. O número de registros e a fonte são os da base de faixas acima, mas o arquivo é outro: é a base intermediária de que sai a correção pela inflação do estudo, e por isso o sha256 é diferente.

Outros arquivos abertos

Gerados de novo a cada publicação do site, a partir das páginas. Por isso não têm sha256 fixo aqui: a versão que vale é a que está no ar.

  • calendario.ics (iCalendar) — os prazos da página de calendário, para assinar no programa de agenda. Página: calendario.
  • novidades.xml (Atom) — as entradas da página de novidades, para leitor de feed. Página: novidades.
  • llms.txt (texto) — uma linha por página, com o que cada uma traz. Página: início.
  • llms-full.txt (texto) — o texto de todas as páginas num arquivo só, na ordem do sitemap. Página: início.

Uso e citação

Pode baixar, redistribuir e usar, inclusive em processo administrativo, com crédito a politica.bsb.br e à data da versão usada. Nenhuma base daqui é referência oficial de preço: os limites de cada uma estão no estudo. Erro encontrado é corrigido com registro em correções.