Quanto o Mercado Erra a Inflação: o Boletim Focus Contra o IPCA

Quanto o Mercado Erra a Inflação: o Boletim Focus Contra o IPCA

Setor
Economia
Ferramentas
Python, DuckDB, SQL, pytest, Docker, GitHub Actions
Entregas
  • Carga incremental com histórico
  • Camadas em SQL com testes
  • Painel em HTML
  • CI que roda o pipeline duas vezes

Desafio

Toda semana o Banco Central pergunta a cerca de 150 instituições quanto elas esperam de IPCA para este ano e para os próximos, e o Boletim Focus publica a mediana das respostas. Quisemos medir quanto essa mediana erra o IPCA realizado e a partir de quando ela passa a acertar.

A API Olinda do Banco Central publica as estatísticas do Focus por dia desde 3 de janeiro de 2000, e cada dia traz duas linhas por ano projetado: uma com as projeções informadas nos últimos 30 dias, com cerca de 148 respondentes, e outra só com as mais recentes, com cerca de 45. Usamos a primeira, que é a do Boletim semanal. O mesmo ano é projetado por anos seguidos (o IPCA de 2025 recebeu projeções de 2021 até janeiro de 2026), então cada projeção precisa saber a que distância estava do fim do ano. O IPCA anual também não vem pronto: sai da composição dos 12 meses da série 433 do SGS, que começa em janeiro de 1980. E a API não aceita contar os registros antes da carga, porque o $count dá erro.

Este projeto de estudo monta esse caminho com Python 3.12 e DuckDB para a carga e as camadas em SQL, pytest e GitHub Actions para os testes e um painel em HTML.

Solução

Arquitetura do pipelinePasse o mouse em cada etapa. Clique numa tabela da gold para seguir o caminho dela.
Fontes do Banco Central
Boletim FocusAPI Olinda
IPCA mensalSGS 433
Meta de inflaçãoSGS 13521
Bronze
Respostas da APIPython · DuckDB48.822linhas de projeção
Silver
ProjeçõesSQL32.697 na base de 30 dias
IPCA mensalSQL562 meses
MetaSQLuma linha por ano
Gold
Painel
PainelHTML · SVGembutido mais abaixo

Escolha uma tabela da gold para ver de onde ela vem, o que calcula e o que o estudo encontrou.

  1. Carga. A camada bronze guarda cada resposta da API como veio, com a data de extração e um hash da linha. Um valor republicado diferente vira linha nova, e o histórico fica. Como a API não entrega uma contagem, a carga pagina até a página vazia. A primeira carga trouxe 48.822 linhas de projeção, de 3/1/2000 a 6/11/2026, em uns 4 minutos. As seguintes pedem ao Focus só os últimos 35 dias além do que já temos e levam segundos.
  2. Camadas. A silver tem uma linha por dia, ano projetado e base, sempre a versão mais recente. A gold, em SQL, calcula o IPCA anual, o erro da mediana em cada dia (mediana menos IPCA realizado), a data de convergência de cada ano (a partir de quando a projeção fica a menos de 0,5 ponto percentual do realizado e não sai mais), o erro médio por antecedência e o Focus contra a meta de inflação. O IPCA anual composto bate com o número oficial do IBGE: 4,62 % em 2023, 4,83 % em 2024 e 4,26 % em 2025.
  3. Testes e CI. São 18 testes com pytest, que usam amostras reais da API e não dependem de rede. No GitHub Actions, cada push passa pelo lint, pelos testes e pelo pipeline rodado duas vezes numa amostra; a CI falha se a segunda rodada mudar o resultado. O Docker é opcional.
  4. Painel. Um HTML autocontido, sem biblioteca externa, com os dados embutidos.

O painel abre com quatro números que resumem o estudo. Logo abaixo, a curva de convergência mostra o erro de cada ano por meses de antecedência, com a faixa de 0,5 ponto percentual marcada, e um seletor destaca o ano escolhido. Mais abaixo ficam o erro médio por antecedência, a projeção do início do ano contra a meta e o IPCA, e o erro de cada ano. O painel abaixo é o mesmo do botão Ver projeto:

Resultado

  • O erro médio absoluto da mediana cai conforme o ano se aproxima: 1,83 p.p. com 12 a 24 meses de antecedência, 1,48 com 6 a 12, 0,96 com 3 a 6 e 0,42 nos últimos 3 meses.
  • A projeção feita no início de cada ano para o próprio ano errou 1,59 p.p. em média. Ficou abaixo do IPCA realizado em 16 dos 26 anos e a menos de 0,5 p.p. dele em só 6.
  • Os maiores erros do início do ano foram em 2002 (projeção de 4,75 %, IPCA de 12,53 %), 2021 (3,32 % contra 10,06 %) e 2015 (6,56 % contra 10,67 %). O maior erro para cima foi em 2017 (4,86 % contra 2,95 %).
  • Na mediana dos 26 anos, a projeção entrou na faixa de 0,5 p.p. 105 dias antes do fim do ano. Em 12 anos isso só aconteceu nos últimos 90 dias, e em 6 aconteceu com mais de 180. A projeção de 2002 só convergiu 18 dias antes do fim do ano; a de 2013 convergiu em 14/12/2012, 382 dias antes.
  • O IPCA ficou acima da meta em 20 dos 26 anos.

O botão Ver projeto abre o painel em tela cheia. O código está no GitHub, com a licença MIT e as instruções para rodar a carga, gerar o painel e rodar os testes.

Projeto de estudo da Dome Analytics com dados abertos do Banco Central do Brasil, sob a licença ODbL. O IPCA é produzido pelo IBGE. Não tem relação com o Banco Central nem com as instituições que respondem ao Focus.

Ver projeto

Projetos relacionados

« Voltar aos projetos