Projeto em Python para geração de série histórica de índices econômicos acumulados (Fatores de Correção Monetária).
O sistema coleta dados automaticamente de fontes oficiais (IBGE, Banco Central/Ipeadata e FIPE), realiza o cálculo dos fatores acumulados mensais desde Janeiro de 2007 até o mês atual e exporta o resultado consolidado em formato JSON.
Este projeto foi desenhado para simular correções de débitos e atualizações monetárias, replicando metodologias utilizadas por órgãos oficiais (como a Receita Federal para a SELIC e o IBGE para índices de preços).
| Índice | Fonte de Dados | Metodologia de Cálculo Acumulado |
|---|---|---|
| SELIC | Banco Central (via Ipeadata) | Soma Simples (Juros de Mora). Padrão Sicalc/Receita Federal: 1. Mês do pagamento (atual) = 1%. 2. Mês anterior ao pagamento = Taxa Selic do mês. 3. Meses anteriores = Soma simples das taxas. |
| IPCA | IBGE (API SIDRA) | Número-Índice. Cálculo via divisão da série histórica de número-índice (Base Fixa). Fórmula: (Índice Atual / Índice Data Base) - 1. |
| INPC | IBGE (API SIDRA) | Número-Índice. Mesma metodologia do IPCA. |
| IPCA-E | IBGE (API SIDRA) | Número-Índice. Baseado na série histórica do IPCA-15. |
| IPC-FIPE | FIPE | Número-Índice. Coleta direta da série histórica do índice geral da FIPE. |
| IGP-M | FGV (via Ipeadata) | Produtório (Juros Compostos). Acumulado das taxas mensais percentuais. |
| TR | Banco Central (via Ipeadata) | Produtório (Juros Compostos). Acumulado das taxas mensais da Taxa Referencial. |
| Poupança | Banco Central (via Ipeadata) | Produtório (Juros Compostos). Acumulado dos rendimentos mensais da poupança. |
- Python 3.8 ou superior
- Gerenciador de pacotes
pip
- Clone este repositório.
- Instale as dependências necessárias listadas no
requirements.txt:
pip install -r requirements.txtPara gerar o arquivo JSON atualizado, execute o script principal:
python main.pyO script realizará os seguintes passos:
- Conexão com a API do Ipeadata (SELIC, TR, IGP-M, Poupança).
- Conexão com a API SIDRA do IBGE (IPCA, INPC, IPCA-E).
- Conexão com a API da FIPE (IPC).
- Cálculo dos acumulados reversos (de cada mês histórico até a data de hoje).
- Geração do arquivo
indices_acumulados.jsonno diretório raiz (ou no caminho configurado).
O projeto foi modularizado para facilitar a manutenção e a escalabilidade de novas fontes de dados:
main.py: Arquivo principal. Gerencia a orquestração das chamadas, realiza os cálculos matemáticos dos acumulados e exporta o JSON.service_ibge.py: Módulo responsável por buscar as séries de Números-Índices na API SIDRA.service_ipea.py: Módulo responsável por buscar as séries de Taxas Mensais no Ipeadata.service_fipe.py: Módulo responsável por iterar e buscar a série histórica no site da FIPE.requirements.txt: Lista de bibliotecas Python necessárias (pandas,numpy,requests,ipeadatapy).
O arquivo gerado (indices_acumulados.json) contém um array de objetos. Cada objeto representa a referência mensal e os fatores acumulados para correção de um valor daquela data até o presente.
Exemplo:
[
{
"Ano": 2024,
"Mes": 11,
"Referencia": "11/2024",
"SELIC": 14.18,
"TR": 2.1239,
"INPC": 4.4902,
"IPCA": 4.6807,
"IPCAE": 5.1523,
"IGPM": 1.1967,
"Poupanca": 9.5096,
"IPC_FIPE": 5.0721
},
]Nota: Os valores representam a porcentagem acumulada (%). Ex: 14.18 significa 14,18% de correção.
Desenvolvido com Python e Pandas.