// Inteligência em Custos da Construção Civil
Preços de insumos, materiais, mão de obra e fichas técnicas de composições estruturadas e consolidadas via pipeline de dados automático. Prontos para BI, simulações ou download imediato.
O SINAPI da Caixa é público, mas os dados estão ocultos em milhares de planilhas zipadas com layouts instáveis. O PulseSINAPI unifica e consolida essas informações.
Preços medianos de insumos e mão de obra de 2015 a 2026 em uma única base de dados de alta performance.
Códigos numéricos limpos (ex: 00001379) preenchidos com zeros à esquerda para garantir joins e chaves consistentes.
Coeficientes de consumo de materiais e mão de obra para cada tipo de serviço, permitindo cálculo recursivo de orçamentos.
Pipeline robusto de download com curl-cffi (impersonate Chrome) e gerador de contingência determinístico integrado.
A Caixa alterou a estrutura de links a partir de 2025. Arquivos de 2024 e anteriores são descobertos dinamicamente via REST API do SharePoint.
Tabelas históricas com e sem desoneração de encargos sociais sobre a folha de pagamento da mão de obra (horista).
Pipeline estruturado em Python que descobre, baixa, limpa e sincroniza dados das planilhas mensais do SINAPI.
O scraper monitora o site da Caixa em busca de novas planilhas publicadas para o ano corrente, rodando via automação agendada.
sinapi_insumos.py · Caixa ScrapingFórmulas de download com cabeçalhos realistas baixam os arquivos ZIP e extraem as planilhas xlsx e xls em diretórios de cache temporários.
ZIP extraction · curl_cffiDesloca cabeçalhos vazios, identifica as colunas corretas de código, descrição, unidade e preços medianos de forma adaptativa.
pandas · Excel parserAs novas linhas são combinadas com as tabelas flat já existentes e gravadas com deduplicação rigorosa baseada em chaves compostas.
salvar_csv · deduplicationSincronização de altíssima velocidade (bulk insert mappings) com o banco de dados relacional sinapi.db para consumo da API FastAPI.
Bases flat CSV compiladas pelo pipeline. Atualizadas periodicamente e versionadas.
| Dataset | Descrição | Frequência | Fonte | Download |
|---|
Estrutura das tabelas CSV compiladas (UTF-8, ponto decimal, datas YYYY-MM-DD).
| Campo | Tipo | Descrição |
|---|---|---|
| data_captura | datetime | Data e hora do processamento do registro |
| codigo_insumo | string | Código único de 8 dígitos do insumo (ex: 00001379) |
| descricao_insumo | string | Descrição completa do material ou serviço de mão de obra |
| unidade | string | Unidade de medida (KG, M3, H, UN, etc.) |
| preco_mediano | float | Valor mediano cobrado pelo insumo naquele estado/período (R$) |
| uf | string | Sigla do estado brasileiro de referência (ex: SP, AC, RJ) |
| data_referencia | string | Mês e ano da referência no formato YYYY-MM |
| desonerado | boolean | Indica se a tabela considera desoneração de encargos sociais (True/False) |
| Campo | Tipo | Descrição |
|---|---|---|
| data_captura | datetime | Data e hora do processamento do registro |
| codigo_composicao | string | Código único de 8 dígitos da composição principal (ex: 00088316) |
| descricao_composicao | string | Descrição do serviço composto de engenharia civil |
| unidade_composicao | string | Unidade de medida da composição (M3, M2, UN, etc.) |
| codigo_item | string | Código do item constituinte (seja insumo ou subcomposição) |
| descricao_item | string | Descrição do item constituinte |
| unidade_item | string | Unidade de medida do item constituinte |
| tipo_item | string | Tipo de item: INSUMO ou COMPOSICAO |
| coeficiente | float | Coeficiente/consumo do item para produzir uma unidade da composição |
Clone, configure e execute os scripts de automação do SINAPI.
git clone https://github.com/PulseDataLabs/PulseSINAPI.git
Instale os requerimentos do pipeline: pip install -r requirements.txt
Colete dados novos rodando python run_all.py ou importe dados históricos com python scripts/import_historical_caixa.py --all-ufs --month 2023-12
Digite python run.py para inicializar o dashboard localmente (API FastAPI + React SPA).
# Clone e entre na pasta git clone https://github.com/PulseDataLabs/PulseSINAPI.git cd PulseSINAPI # Instale dependências pip install -r requirements.txt # Execute o pipeline e colete python run_all.py # Sincronize com o banco e inicialize app local python run.py