Núcleo de inflação no Python: como analisar o IPCA

Tutorial de como coletar as nove medidas de núcleo do IPCA na API do Banco Central com Python, calcular o acumulado em 12 meses e a MM3M dessazonalizada anualizada, e montar um painel de conjuntura da inflação brasileira com as aberturas por segmento.

O núcleo de inflação é o IPCA recalculado sem os itens mais voláteis, e serve para separar choque passageiro de pressão persistente nos preços. Neste tutorial, você vê como coletar as nove medidas de núcleo do Banco Central com Python, calcular as duas transformações que os analistas acompanham e montar um painel de conjuntura da inflação brasileira.

O caminho percorrido é o ciclo completo de análise de dados: coleta pela API do Banco Central, tratamento das séries, ajuste sazonal e visualização. Ao final, você terá um retrato de onde a inflação está e, o que é mais difícil, para onde ela aponta.

Gráfico do núcleo de inflação no Python comparando o acumulado em 12 meses e a MM3M dessazonalizada anualizada da média dos núcleos do IPCA entre 2002 e 2026
A linha laranja antecipa as inflexões da azul nos ciclos de 2003, 2016 e 2022. Fonte: BCB (SGS) e IBGE.

As duas linhas medem a mesma inflação e contam histórias diferentes. A azul olha para o ano que passou; a laranja, para o ritmo do trimestre recente. Quem acompanha só a azul percebe as mudanças de rumo com meses de atraso. O tutorial mostra como construir as duas.

Quer criar análises como esta?

Clique no link para obter o código em python, e rodar direto no seu computador. É grátis.

Obter o código →

Por que o IPCA cheio não basta

O IPCA mede a variação de preços de uma cesta ampla de produtos e serviços, e é a referência do sistema de metas de inflação no Brasil. O problema prático é que essa cesta contém itens muito erráticos.

Uma geada que destrói uma safra ou uma mudança de bandeira tarifária mexe no índice do mês sem dizer nada sobre a tendência dos preços na economia. Quem decide política monetária precisa distinguir esses dois movimentos, porque cada um pede uma resposta diferente.

As medidas de núcleo resolvem isso. Um núcleo é o próprio IPCA recalculado depois de retirar ou atenuar a influência dos itens mais voláteis. A meta continua definida sobre o IPCA cheio, mas os núcleos são parte central do conjunto de informação que o Banco Central observa ao decidir a taxa de juros.

As nove medidas de núcleo e as três lógicas por trás delas

O Banco Central calcula nove núcleos, descritos na Nota Técnica 57. Eles se dividem em três famílias, e cada uma filtra o ruído por um caminho distinto.

Por exclusão

Retiram de antemão uma lista fixa de itens voláteis. O EX-0 exclui alimentação no domicílio e preços administrados; o EX-3 exclui alimentação no domicílio e combustíveis; o EX-FE tira alimentos e energia, definição mais próxima do core internacional. EX-1 e EX-2 são variações da mesma ideia.

Por médias aparadas

Em vez de decidir antes o que sai, ordenam os itens do mês pela variação e descartam os extremos das duas pontas. O MA corta as caudas e tira a média do miolo; o MS faz o mesmo, mas antes distribui no tempo os preços de reajuste concentrado, como mensalidade escolar.

Por peso e por percentil

O DP não exclui nada: reduz o peso de cada item conforme a sua volatilidade histórica. O P55 toma o item na posição 55 da distribuição ordenada das variações, ponderada pelos pesos do IPCA, o que o torna pouco sensível a valores extremos.

Com nove medidas disponíveis, a pergunta prática é qual acompanhar. O Estudo Especial 102/2021 do Banco Central definiu um conjunto de cinco como o mais informativo para conjuntura: EX-0, EX-3, DP, MS e P55. É a média desses cinco que usamos como síntese ao longo do exercício.

As duas transformações que os analistas acompanham

Os núcleos são divulgados como variação percentual mensal, e um número isolado de um mês diz pouco. Na prática, trabalhamos com duas transformações que respondem a perguntas distintas.

Acumulado em 12 meses

É a variação de preços ao longo de um ano completo, obtida pela composição das doze variações mensais. Inflação compõe, como juros, então o cálculo é um produto de fatores, não uma soma das taxas.

A vantagem é a estabilidade: como toma um ano inteiro, a sazonalidade se cancela e o número não oscila com o ruído do mês. A desvantagem é a inércia, porque o indicador carrega os onze meses anteriores e demora a registrar uma mudança de rumo. Quando um choque antigo sai da base de comparação, o número se move por causa de algo que aconteceu há um ano.

MM3M dessazonalizada e anualizada

A segunda transformação existe para corrigir essa lentidão. Ela responde a outra pergunta: se o ritmo dos últimos três meses se mantivesse por um ano inteiro, em quanto fecharia a inflação?

A construção tem três passos, e cada um resolve um problema específico do dado bruto.

1. Dessazonalizar

Janeiro concentra reajustes, fevereiro tem mensalidade escolar. O ajuste sazonal estima esse padrão de calendário e o remove, para não confundir repetição anual com mudança de tendência.

2. Suavizar

Um único mês dessazonalizado ainda traz ruído. A média dos três meses mais recentes reduz esse ruído e mantém a leitura próxima do presente.

3. Anualizar

A média mensal vira taxa anual equivalente, composta por doze meses. Multiplicar por 12 é uma aproximação que subestima o resultado quando a inflação está alta.

A sigla usada nos relatórios é SAAR, de seasonally adjusted annualized rate. O ganho é a tempestividade, já que ela vira meses antes do acumulado em 12 meses. O custo é o ruído: como olha apenas três meses, um trimestre atípico produz um número extremo. Voltamos a esse ponto no fim, com o gráfico que o demonstra.

Como o exercício foi construído

A coleta usa o pacote python-bcb, que consulta o Sistema Gerenciador de Séries Temporais do Banco Central. Cada série tem um código numérico, e organizá-los em dicionários deixa o código legível e fácil de estender: são nove núcleos, dez aberturas por segmento e o IPCA cheio, vinte séries ao todo, todas desde 2002.

Um detalhe prático faz diferença aqui. A consulta ao SGS depende de rede e falha de vez em quando por instabilidade do servidor. Envolver a chamada numa função que tenta de novo algumas vezes evita que o script quebre no meio de uma coleta de vinte séries.

O tratamento cria a média dos cinco núcleos do Estudo Especial e aplica as três funções de transformação: uma que acumula variações compondo os fatores da janela, uma que remove o componente sazonal com a decomposição clássica do statsmodels, e uma que faz a média móvel de três meses e anualiza por composição. Escritas de forma genérica, elas se aplicam às vinte séries de uma vez.

Os gráficos saem no plotnine, a implementação da gramática dos gráficos em Python. Quem vem do R reconhece a sintaxe do ggplot2: o gráfico é montado por camadas somadas, uma para cada elemento visual. O tema com a paleta da Análise Macro fica numa função e é somado a todas as figuras, o que garante acabamento idêntico nas sete.

O que os dados mostram

Os números abaixo têm como referência junho de 2026, o último dado disponível quando o exercício foi rodado.

Núcleo No mês (%) Em 12 meses (%) MM3M anualizada (%)
EX-0 0,25 4,67 4,53
EX-1 0,27 4,60 4,81
EX-2 0,11 4,20 4,48
EX-3 0,22 4,64 5,29
EX-FE 0,25 4,70 4,10
DP 0,15 4,01 4,50
MA 0,14 3,62 4,37
MS 0,24 4,33 4,46
P55 0,18 4,54 5,22

A média dos cinco núcleos do Banco Central fechou junho em 4,44% no acumulado em 12 meses, com ritmo recente de 4,80% pela MM3M anualizada. O IPCA cheio marcava 4,64% em 12 meses. Todos os nove núcleos estavam acima da meta de 3%, entre 3,62% e 4,70% no acumulado do ano.

A concordância entre as nove medidas é o que dá segurança à leitura. Quando todas apontam na mesma direção, a conclusão sobre a tendência é robusta; quando divergem, a diferença entre elas indica qual grupo de preços está se movendo.

Painel com os nove núcleos de inflação do IPCA calculados no Python, cada um com o acumulado em 12 meses e a MM3M dessazonalizada anualizada
Os nove núcleos do IPCA, do EX-0 ao P55, com as duas transformações. Fonte: BCB (SGS) e IBGE.

O gráfico de dispersão resume o mês em uma única imagem. Cada linha é um núcleo e os dois pontos marcam onde ele está no acumulado do ano e no ritmo recente. A distância entre os pontos carrega a informação: quando o ponto laranja fica à direita do azul, o trimestre recente roda mais forte que o ano, sinal de pressão à frente.

Gráfico de dispersão comparando o acumulado em 12 meses e a MM3M anualizada de cada núcleo de inflação do IPCA em junho de 2026
Em EX-3 e P55, o ritmo recente supera o acumulado do ano. Fonte: BCB (SGS) e IBGE.

De onde vem a pressão: as aberturas por segmento

Os núcleos dizem quanto; os segmentos ajudam a dizer de onde. Separar serviços, bens industriais, administrados e livres liga o número à economia real.

Serviços têm forte componente inercial e acompanham o mercado de trabalho, o que os torna o segmento mais observado por quem tenta antecipar a persistência da inflação. Bens industriais respondem mais rápido a câmbio e a cadeias globais de produção. Administrados seguem reajustes contratuais e decisões regulatórias, com calendário próprio.

Em junho de 2026, serviços rodavam a 4,82% pela MM3M anualizada e bens industriais a 4,28%, enquanto administrados marcavam 7,85%.

Gráfico da MM3M dessazonalizada anualizada dos segmentos do IPCA: serviços, bens industriais, administrados, livres e comercializáveis
Serviços e bens industriais rodam em ritmos distintos, por razões econômicas diferentes. Fonte: BCB (SGS) e IBGE.

Quando a anualização engana

O último gráfico justifica todo o cuidado metodológico do exercício, e é a lição que sobra depois que o código roda.

Ele compara a MM3M anualizada de três séries: a média dos núcleos, o IPCA cheio e alimentação no domicílio, a mais volátil das aberturas. Em junho de 2026, alimentação no domicílio marcava 13,81% na MM3M anualizada enquanto acumulava 3,01% em 12 meses.

O motivo é aritmético. Anualizar eleva a média trimestral à décima segunda potência, o que amplifica qualquer desvio. Três meses de safra ruim viram uma taxa anualizada de dois dígitos, ainda que o acumulado do ano esteja em patamar baixo. A taxa não está errada: ela responde literalmente à pergunta sobre manter aquele ritmo por um ano, e a resposta honesta, para uma série sazonal e volátil, é que não se manteria.

É por isso que o núcleo existe. Aplicada a uma série já filtrada, a anualização entrega tempestividade sem o ruído. Aplicada a uma série bruta e volátil, produz números que impressionam e informam pouco. A regra prática que fica: use a MM3M anualizada em núcleos e agregados amplos, e desconfie dela em aberturas estreitas.

Gráfico comparando a MM3M anualizada da média dos núcleos de inflação, do IPCA cheio e de alimentação no domicílio, mostrando a amplificação do ruído
A série de alimentação oscila numa amplitude que o núcleo filtra. Fonte: BCB (SGS) e IBGE.

As ferramentas por trás

Quatro pacotes de Python dão conta do exercício inteiro:

  • python-bcb: acesso às séries do Sistema Gerenciador de Séries Temporais do Banco Central.
  • pandas: organização das séries em tabelas e as operações de janela móvel.
  • statsmodels: decomposição sazonal das séries mensais.
  • plotnine: construção dos gráficos pela gramática dos gráficos, no estilo do ggplot2.

A metodologia dos núcleos está detalhada na Nota Técnica do Banco Central que definiu o conjunto de cinco medidas usado nas análises de conjuntura.

Considerações finais

Com vinte séries públicas e algumas dezenas de linhas de Python, você montou o mesmo painel de núcleos que sustenta relatórios de conjuntura em bancos e gestoras. Os dados vieram da API do Banco Central, sem custo com bases proprietárias, e o cálculo roda no seu computador em segundos.

O que torna o exercício útil não é o código em si, mas as decisões por trás dele: escolher o conjunto de núcleos que o Banco Central acompanha, compor em vez de somar variações, dessazonalizar antes de anualizar e reconhecer quando uma transformação deixa de informar. Essas escolhas separam um número calculado de uma análise defensável.

O alcance vai além da inflação. O mesmo caminho — coletar, tratar, transformar e visualizar — se repete em quase todo problema de macroeconomia aplicada. O que muda é a aplicação:

  • Analista de research: monta o painel de conjuntura que alimenta o relatório mensal e sustenta a projeção de inflação com dado próprio.
  • Economista de banco ou gestora: antecipa a leitura do Copom acompanhando o ritmo recente dos núcleos, não só o acumulado do ano.
  • Gestor de carteira: liga a dinâmica de serviços e administrados às decisões de alocação em ativos indexados à inflação.
  • Profissional de risco e atuária: usa séries dessazonalizadas e anualizadas para cenários de projeção com horizonte curto.
  • Professor e estudante: reproduz a metodologia oficial com dado real, em vez de trabalhar com exemplo fictício.

Aprender Python é o que abre a porta para essas frentes, porque reúne coleta, tratamento e visualização num fluxo só, com pacotes feitos para o dado brasileiro. E o ponto de partida não exige conhecimento prévio de programação.

Você viu como funciona. Aprenda a construir do zero.

Na formação Do Zero à Análise de Dados Econômicos e Financeiros usando Python e IA, você parte sem pré-requisito e aprende o ciclo completo que este exercício percorre: coletar dados de APIs públicas, tratar séries, aplicar as transformações certas e construir os gráficos. Quem quer acesso a todas as formações tem o AM Black, a assinatura anual.

Conheça a formação →Ver o AM Black →

Leia também:

 

📩 Quem lê o dado decide melhor

Inflação, juros e atividade não se leem no olho — se leem com método. No Boletim AM eu mostro, todo dia, a estatística, a econometria e a IA por trás da leitura de conjuntura. Com a fonte, com a ressalva e com o código quando ele importa.

Receber o Boletim AM → Todo dia no seu e-mail. Gratuito, e sai num clique.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print
Análise Macro © 2011 / 2026

comercial@analisemacro.com.br – Rua Visconde de Pirajá, 414, Sala 718
Ipanema, Rio de Janeiro – RJ – CEP: 22410-002

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp