bcb_variacao
Calculate the percentage change or accumulated variation of a single Brazilian economic time series over a period, with summary statistics.
Instructions
Calcula a variação percentual de UMA série no período, mais estatísticas descritivas. Para série de NÍVEL (dólar, Selic, dívida, produção) é a variação entre o primeiro e o último ponto; para série que JÁ É uma variação por período (IPCA 433, INPC 188, IGP-M 189 e demais índices de preço mensais do catálogo; Selic/CDI acumulados no mês 4390/4391; rentabilidade da poupança 25/195) é o ACUMULADO do período por encadeamento — "quanto o IPCA acumulou em 2024" ou "quanto a Selic rendeu em 2024" é esta tool. O campo analise.metodo diz qual das duas contas foi feita; código fora do catálogo curado é tratado como nível. Série de acumulado móvel (IPCA em 12 meses, 13522) é recusada com orientação — o valor publicado já é a resposta. O período pode ser definido por datas (dataInicial/dataFinal) OU pelos últimos N períodos (parâmetro periodos, que tem precedência e ignora as datas). Quando usar: para medir tendência/variação/acumulado de uma única série. Quando NÃO usar: para comparar várias séries use bcb_comparar; para os valores brutos use bcb_serie_valores. Requer ao menos 2 observações no período (senão retorna isError). Retorna: serie, periodo (dataInicial, dataFinal, totalPeriodos), analise (metodo, valorInicial, valorFinal, diferencaAbsoluta — nula quando encadeado —, variacaoPercentual, variacaoFormatada) e estatisticas (maximo, minimo, media, amplitude). Períodos longos são tratados automaticamente: janela diária acima de 10 anos é fatiada (a API do BCB responde 406) e periodos acima de 20 é atendido por janela de datas; chunking e janelaAplicada aparecem na resposta quando isso acontece. Comportamento: consome a API pública SGS do Banco Central do Brasil — sem autenticação, chave de API ou cadastro, e sem limite de requisições divulgado (uso é best-effort). Em falha transitória ou timeout a chamada é repetida automaticamente (até 3 tentativas, backoff exponencial); persistindo o erro, retorna isError: true com mensagem em português (HTTP 404 = série inexistente ou sem dados no período solicitado). O resultado vem como JSON tanto em texto quanto em structuredContent (conforme o outputSchema); datas no formato dd/MM/yyyy e valores numéricos (ponto decimal).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| codigo | Yes | Código da série no SGS/BCB | |
| periodos | No | Alternativa: calcular variação dos últimos N períodos (ignora datas se informado). Acima de 20 o servidor busca por janela de datas, porque o endpoint nativo do BCB tem esse teto. | |
| dataFinal | No | Data final (yyyy-MM-dd ou dd/MM/yyyy). Se não informada, usa o último valor disponível. | |
| dataInicial | No | Data inicial (yyyy-MM-dd ou dd/MM/yyyy). Se não informada, usa o primeiro valor disponível. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| serie | Yes | Identificação da série | |
| analise | Yes | Resultado da variação no período. Em `metodo: "nivel"` é a variação entre o primeiro e o último valor; em `metodo: "encadeamento"` (série que já é variação por período, como IPCA e IGP-M mensais) é o acumulado composto de todas as observações | |
| periodo | Yes | Janela temporal analisada | |
| chunking | No | Presente quando a consulta foi fatiada em várias requisições à origem, por causa do limite de 10 anos por janela em séries diárias. As fatias são fundidas e ordenadas antes de responder. | |
| derivacao | Yes | Origem dos números calculados: o que é derivado, por qual motor e com quais convenções | |
| provenance | Yes | Bloco de proveniência (contrato v1.0): fonte, URL, competência, extração e licença | |
| attribution | Yes | URLs canônicas das fontes desta resposta (lista de atribuição) | |
| estatisticas | Yes | Estatísticas descritivas dos valores no período | |
| janelaAplicada | No | Presente quando o período pedido estava aberto numa série diária e o servidor aplicou uma janela própria (a origem recusa janela aberta em série diária com HTTP 406). |