BCB · IFData · SCR · Cosif · Trimestral · desde 2014

PulseIFData

// Inteligência do Sistema Financeiro Nacional

11 relatórios do IFData/BACEN coletados, normalizados e enriquecidos via pipeline serverless — série histórica consolidada desde 2014, métricas derivadas e schema consistente, prontos para consumo em CSV, Python ou BI.

11Relatórios IFData
2014Início da série histórica
TrimestralFrequência de atualização
SCR + CosifBases BACEN cobertas
Sobre

Por que PulseIFData?

O IFData do BACEN é público, mas difícil de consumir. Sem série histórica consolidada, paginação manual, quebras de série e endpoints instáveis. O PulseIFData resolve isso.

📦

Série histórica consolidada (10+ anos)

Dados desde 2014 em um único CSV. Sem iterar trimestre × relatório × tipo de IF na API OData do BACEN.

🔄

Schema normalizado com pivot semântico

35 contas COSIF mapeadas semanticamente em colunas legíveis. UTF-8, decimal ponto, datas YYYY-MM-DD.

📊

Métricas derivadas inclusas

HHI de concentração, participação de mercado por IF, rankings e variações QoQ/YoY — calculadas automaticamente sobre a série consolidada.

🔗

Integrável com o portfólio Pulse

Cruzamento nativo com PulseFlat (SELIC, CDI) para análises como NIM ajustado ao ciclo de juros.

⚠️

Limitação: endpoint de cadastro instável

IfDataCadastro retorna HTTP 500 para todos os períodos. O pipeline usa fallback via CodInst extraído dos dados financeiros + mapeamento manual das maiores IFs.

🔀

Quebra de série COSIF (mar/2025)

O BACEN alterou o plano COSIF em março/2025. O pipeline mantém equivalências em cosif_de_para.csv para preservar comparabilidade histórica.

Relatórios

11 relatórios IFData cobertos

Coletados para 3 tipos de instituição (conglomerado prudencial, conglomerado financeiro, IF individual). Relatórios de crédito retornam dados apenas para tipos 2 e 3.

01

Resumo

Balanço
02

Ativo

Balanço
03

Passivo

Balanço
04

Demonstração de Resultado

Balanço
05

Informações de Capital

Balanço
06

Segmentação

Cadastro
07

Crédito por Indexador

Crédito (SCR)
08

Crédito por Nível de Risco

Crédito (SCR)
09

Crédito por Região Geográfica

Crédito (SCR)
11

Crédito PF — Modalidade e Prazo

Crédito (SCR)
13

Crédito PJ — Modalidade e Prazo

Crédito (SCR)
Pipeline

Como funciona

Pipeline serverless com orquestração paralela via ThreadPoolExecutor. Checkpointing incremental evita re-coleta de trimestres já processados.

01

Detecção e disparo

GitHub Actions com cron trimestral monitora novo período disponível no endpoint OData do BACEN (olinda.bcb.gov.br/ifdata/v1). Pode ser disparado manualmente pelo orquestrador.

GitHub Actions · cron
02

Extração com paginação e checkpointing

O scraper itera ano → trimestre → relatório → tipo de IF com paginação $top/$skip. CSVs brutos salvos em data/raw/ como checkpoint — trimestres já coletados são ignorados em re-execuções.

bacen_ifdata.py · OData v4 · paginação
03

Normalização: pivot semântico COSIF

35 contas COSIF mapeadas via cosif_semantic_mapping.csv são pivotadas em colunas legíveis. ROE, ROA e NIM calculados. Cadastro de IFs enriquecido via fallback CodInst. Equivalências de quebra de série aplicadas via cosif_de_para.csv.

normalizer.py · pandas
04

Geração de métricas derivadas

Sobre a série consolidada (ifdata_historical.csv): market share por IF e segmento, HHI de concentração (0–10000), rankings por ativo total e carteira, variações QoQ e YoY.

derivadas.py · 4 datasets gerados
05

Publicação e status

CSVs versionados em git commit → push. Catálogo datasets.json regenerado automaticamente. Status da execução salvo em pipeline_status.json e pipeline_status.js — carregado pelo dashboard em tempo real.

git · GitHub Pages · pipeline_status.js
🕐 Ciclo de atualização — BACEN divulga ~60–90 dias após fechamento do trimestre
T+0 BACEN publica novo trimestre no IFData
olinda.bcb.gov.br
T+1 dia Extração paralela — 11 relatórios × 3 tipos de IF, com checkpointing
data/raw/
T+1 dia Pivot semântico, indicadores e join de cadastro
data/processed/
T+1 dia Derivadas: market share, HHI, rankings, QoQ/YoY
data/derivadas_*.csv
T+1 dia Commit, catálogo e status do pipeline publicados no GitHub Pages
datasets.jsonpipeline_status.js
Downloads

Datasets disponíveis

CSVs gerados e versionados pelo pipeline. Atualizados a cada nova divulgação trimestral do BACEN.

Dataset Descrição Frequência Fonte Download
Schema

Estrutura dos dados

Todos os CSVs seguem o padrão: UTF-8, separador vírgula, decimal ponto, datas YYYY-MM-DD.

Série Histórica
Cadastro IFs
Métricas derivadas
CampoTipoDescrição
data_basedateData de referência do trimestre (YYYY-MM-DD)
cod_inststringCódigo da instituição no IFData (CodInst)
nome_ifstringNome da instituição financeira
tipo_instintTipo: 1=conglomerado prudencial, 2=conglomerado financeiro, 3=IF individual
ativo_totalfloatAtivo total (R$ mil) — mapeado semanticamente de contas COSIF
patrimonio_liquidofloatPatrimônio líquido (R$ mil)
resultado_periodofloatResultado do período (R$ mil)
roefloatReturn on equity — calculado pelo pipeline
roafloatReturn on assets — calculado pelo pipeline
nimfloatNet Interest Margin — calculado pelo pipeline
indice_basileiafloatÍndice de Basileia (%) — relatório 05
segmentostringSegmento prudencial S1–S5 — relatório 06
CampoTipoDescrição
cod_inststringCódigo da instituição no IFData (CodInst) — chave primária
nome_ifstringNome da instituição financeira (mapeamento manual para as maiores IFs)
segmentostringSegmento prudencial BACEN: S1, S2, S3, S4, S5
fonte_cadastrostring"api" ou "fallback" — indica se veio da API ou do fallback CodInst
data_basedateTrimestre mais recente em que a IF aparece nos dados
CampoTipoDescrição
data_basedateData de referência do trimestre
cod_inststringCódigo da instituição financeira (CodInst)
nome_ifstringNome da instituição financeira
market_share_pctfloatParticipação de mercado no ativo total do segmento (%)
hhi_segmentofloatÍndice Herfindahl-Hirschman de concentração (0–10000)
var_qoqfloatVariação do ativo total vs. trimestre anterior (%)
var_yoyfloatVariação do ativo total vs. mesmo trimestre do ano anterior (%)
ranking_ativointPosição no ranking por ativo total no trimestre
ranking_carteiraintPosição no ranking por carteira de crédito total
Instalação

Comece em minutos

Clone, habilite o Actions e os dados chegam automaticamente a cada nova divulgação do BACEN. Sem dependências proprietárias.

1

Clone o repositório

Faça o fork ou clone direto do PulseIFData para sua conta GitHub.

2

Instale as dependências

pip install -r requirements.txt — apenas pandas, requests, PyYAML e aiohttp.

3

Habilite o GitHub Actions

Na aba Actions, clique em Enable Actions. O pipeline já está configurado para monitorar novas divulgações do BACEN.

4

Rode manualmente para testar

Actions → Coleta e Atualização IFData → Run workflow para verificar extração + normalização antes do próximo trimestre.

5

Consuma os CSVs via URL raw

Aponte Python, Excel ou BI para as URLs raw do GitHub. Os dados são versionados e imutáveis — cada trimestre fica registrado permanentemente.

terminal
# 1. Clone
git clone https://github.com/PulseDataLabs/PulseIFData.git
cd PulseIFData

# 2. Dependências
pip install -r requirements.txt

# 3. Pipeline completo (extração + normalização + derivadas + catálogo)
python run_all.py

# Ou etapas individuais:
python run_all.py --scraper-only      # só extração
python run_all.py --normalize-only    # só normalização
python run_all.py --derivadas-only    # só métricas derivadas
python run_all.py --generate-catalog  # regenera datasets.json
python run_all.py --sequential        # execução sequencial (sem paralelo)

# 4. Consumo direto em Python:
import pandas as pd

BASE = "https://raw.githubusercontent.com/PulseDataLabs/PulseIFData/main/"

# Série histórica consolidada (10+ anos)
df = pd.read_csv(BASE + "data/processed/ifdata_historical.csv")

# Rankings mais recentes
df_rank = pd.read_csv(BASE + "data/derivadas_rankings.csv")