bcb-br-mcp 1.5.0 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/series.d.ts +112 -0
- package/dist/series.d.ts.map +1 -1
- package/dist/series.js +154 -2
- package/dist/series.js.map +1 -1
- package/dist/stats.d.ts +55 -0
- package/dist/stats.d.ts.map +1 -1
- package/dist/stats.js +91 -1
- package/dist/stats.js.map +1 -1
- package/dist/tools.d.ts +13790 -3893
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +528 -4
- package/dist/tools.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -18,7 +18,7 @@ Query economic and financial indicators such as **Selic** (interest rate), **IPC
|
|
|
18
18
|
|
|
19
19
|
> If you find this project useful, please consider giving it a [star on GitHub](https://github.com/SidneyBissoli/bcb-br-mcp). It helps others discover the project!
|
|
20
20
|
|
|
21
|
-
**Capabilities:**
|
|
21
|
+
**Capabilities:** 15 tools (skills) · 3 resources · 3 prompts — everything an MCP client needs to query the Brazilian Central Bank: SGS/BCB time series, the **Focus** market-expectations survey and **PTAX** exchange rates.
|
|
22
22
|
|
|
23
23
|
## See it in action
|
|
24
24
|
|
package/dist/series.d.ts
CHANGED
|
@@ -63,6 +63,26 @@ export declare function inferirPeriodicidade(observacoes: Array<{
|
|
|
63
63
|
* pode derrubar a consulta que o usuário pediu de verdade.
|
|
64
64
|
*/
|
|
65
65
|
export declare function sondarPeriodicidade(codigo: number, timeoutMs?: number, maxRetries?: number): Promise<Periodicidade | null>;
|
|
66
|
+
/**
|
|
67
|
+
* Ordena observações da origem em ordem cronológica crescente.
|
|
68
|
+
*
|
|
69
|
+
* **A origem NÃO garante ordem em `ultimos/N`.** Medido em 12/08/2026 sobre as
|
|
70
|
+
* 169 séries do catálogo: 22 delas devolvem do mais NOVO para o mais velho
|
|
71
|
+
* (entre outras 4513, 4503, 5364, 5793, 27788, 27791, 27815, 195), enquanto o
|
|
72
|
+
* caminho `dados?dataInicial=` veio crescente em todas as 151 medidas. Não há
|
|
73
|
+
* padrão declarado pelo BCB e não há como saber de antemão qual série é qual —
|
|
74
|
+
* então toda leitura passa por aqui.
|
|
75
|
+
*
|
|
76
|
+
* Não é preciosismo: `handleVariacao` toma `data[0]` como valor inicial e o
|
|
77
|
+
* último como final. Na 4513 isso publicava −7,40% onde a série subiu +8,00%,
|
|
78
|
+
* com `dataInicial` posterior à `dataFinal`. Falha silenciosa, resposta
|
|
79
|
+
* bem-formada — a mesma classe que a fase já encontrou quatro vezes.
|
|
80
|
+
*
|
|
81
|
+
* Observação sem data parseável vai para o fim, preservando a ordem relativa:
|
|
82
|
+
* é a convenção que `fundir` já usava, e mantê-la evita descartar dado que a
|
|
83
|
+
* origem mandou.
|
|
84
|
+
*/
|
|
85
|
+
export declare function ordenarPorData(observacoes: SerieValor[]): SerieValor[];
|
|
66
86
|
export interface Janela {
|
|
67
87
|
/** `dd/MM/yyyy` */
|
|
68
88
|
inicio: string;
|
|
@@ -171,4 +191,96 @@ export declare function harmonizar(observacoes: Array<{
|
|
|
171
191
|
data: string;
|
|
172
192
|
valor: number;
|
|
173
193
|
}>, alvo: FrequenciaAlvo, agregacao: Agregacao, origem: Periodicidade | null): ResultadoHarmonizacao;
|
|
194
|
+
export interface LinhaAlinhada {
|
|
195
|
+
/** `dd/MM/yyyy` */
|
|
196
|
+
data: string;
|
|
197
|
+
/** Um valor por série, na ordem em que as séries entraram; `null` onde não há observação. */
|
|
198
|
+
valores: Array<number | null>;
|
|
199
|
+
}
|
|
200
|
+
export interface ResultadoAlinhamento {
|
|
201
|
+
linhas: LinhaAlinhada[];
|
|
202
|
+
/** Datas em que TODAS as séries publicam. É o que entra num cálculo pareado. */
|
|
203
|
+
completas: number;
|
|
204
|
+
/** Datas em que ao menos uma série publica e ao menos uma não. */
|
|
205
|
+
parciais: number;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Alinha N séries pela data, na UNIÃO das datas, preservando a ordem de entrada.
|
|
209
|
+
*
|
|
210
|
+
* O alinhamento é separado do cálculo de propósito: é aqui que mora o erro caro.
|
|
211
|
+
* Medido contra a origem em 11/08/2026: casar uma série DIÁRIA com uma MENSAL por
|
|
212
|
+
* data devolve **7 datas de 12** no ano — os dias 1º que caíram em dia útil. Não dá
|
|
213
|
+
* zero, que seria evidente; dá um punhado de pontos com o qual qualquer estatística
|
|
214
|
+
* pareada produz um número de aparência saudável. Por isso `completas` e `parciais`
|
|
215
|
+
* saem contados, e quem chama decide o que fazer com a diferença: correlacionar
|
|
216
|
+
* séries de periodicidades diferentes sem harmonizar é recusado, não avisado.
|
|
217
|
+
*
|
|
218
|
+
* Séries de mesma periodicidade casam de verdade: dólar, Selic e CDI diários deram
|
|
219
|
+
* 253 de 253 em 2024; IPCA e IGP-M mensais, 12 de 12 (todos no dia 1º).
|
|
220
|
+
*/
|
|
221
|
+
export declare function alinharSeries(series: Array<Array<{
|
|
222
|
+
data: string;
|
|
223
|
+
valor: number;
|
|
224
|
+
}>>): ResultadoAlinhamento;
|
|
225
|
+
/**
|
|
226
|
+
* Deflator construído por ENCADEAMENTO de variações mensais.
|
|
227
|
+
*
|
|
228
|
+
* Existe encadeado porque a origem não deixa alternativa: **o SGS não publica
|
|
229
|
+
* número-índice do IPCA** — o índice do Portal de Dados Abertos não tem nenhuma série
|
|
230
|
+
* de número-índice, só variações. Encadear é reconstruir o índice a partir delas.
|
|
231
|
+
*
|
|
232
|
+
* A reconstrução foi medida contra a própria fonte em 11/08/2026: compor 12 variações
|
|
233
|
+
* mensais da série 433 reproduz o acumulado em 12 meses que o BCB publica na série
|
|
234
|
+
* 13522 com erro máximo de **0,0052 pp** em 85 janelas de 2018 a 2025. O resíduo é o
|
|
235
|
+
* arredondamento da fonte, que publica a variação com 2 casas — não é erro do método.
|
|
236
|
+
*/
|
|
237
|
+
export interface Deflator {
|
|
238
|
+
/** Chave `yyyy-MM` → fator que leva o valor daquele mês a preços do mês base. */
|
|
239
|
+
fatores: Map<string, number>;
|
|
240
|
+
/** `MM/yyyy` do mês em cujos preços os valores são expressos. */
|
|
241
|
+
mesBase: string;
|
|
242
|
+
/** `MM/yyyy` do primeiro e do último mês cobertos pelo deflator. */
|
|
243
|
+
primeiroMes: string;
|
|
244
|
+
ultimoMes: string;
|
|
245
|
+
}
|
|
246
|
+
/** `yyyy-MM` do mês que contém a data `dd/MM/yyyy`; `null` se a data não casar. */
|
|
247
|
+
export declare function chaveMes(data: string): string | null;
|
|
248
|
+
/**
|
|
249
|
+
* Monta o deflator a partir das variações mensais publicadas (em %).
|
|
250
|
+
*
|
|
251
|
+
* O fator de um mês é `L(base) / L(mês)`, onde `L` é o nível do índice reconstruído.
|
|
252
|
+
* A forma de razão, em vez de compor só as variações posteriores, é o que permite o
|
|
253
|
+
* mês base ficar em QUALQUER posição — inclusive no meio ou antes do período, que é o
|
|
254
|
+
* caso de "quanto valia, em reais de 2010, o salário de 2024".
|
|
255
|
+
*/
|
|
256
|
+
export declare function construirDeflator(variacoes: Array<{
|
|
257
|
+
data: string;
|
|
258
|
+
valor: number;
|
|
259
|
+
}>, mesBaseSolicitado?: string): Deflator;
|
|
260
|
+
export interface ObservacaoDeflacionada {
|
|
261
|
+
data: string;
|
|
262
|
+
valorNominal: number;
|
|
263
|
+
/** `null` quando a data cai fora da cobertura do índice de preços. */
|
|
264
|
+
valorReal: number | null;
|
|
265
|
+
/** `null` pelo mesmo motivo. */
|
|
266
|
+
fator: number | null;
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Converte cada observação nominal a preços do mês base.
|
|
270
|
+
*
|
|
271
|
+
* Cada observação é deflacionada pelo fator do MÊS EM QUE ELA CAI, qualquer que seja
|
|
272
|
+
* a periodicidade da série — o índice de preços é mensal, então todo dia de um mesmo
|
|
273
|
+
* mês compartilha o fator, o que é a convenção certa para série diária. Em série
|
|
274
|
+
* trimestral ou anual isso significa usar o mês da data do ponto; quem quiser outra
|
|
275
|
+
* convenção (média do período, por exemplo) harmoniza a série antes com `frequencia`.
|
|
276
|
+
*
|
|
277
|
+
* Data fora da cobertura do índice devolve `null` em vez de valor: o IPCA começa em
|
|
278
|
+
* 01/1980 e é publicado com defasagem, então observação anterior ao início ou
|
|
279
|
+
* posterior ao último mês divulgado não tem como ser deflacionada. Nulo é a
|
|
280
|
+
* informação de que ali não há dado — inventar fator 1 seria mentir.
|
|
281
|
+
*/
|
|
282
|
+
export declare function deflacionar(observacoes: Array<{
|
|
283
|
+
data: string;
|
|
284
|
+
valor: number;
|
|
285
|
+
}>, deflator: Deflator): ObservacaoDeflacionada[];
|
|
174
286
|
//# sourceMappingURL=series.d.ts.map
|
package/dist/series.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"series.d.ts","sourceRoot":"","sources":["../src/series.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAA4B,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAExE,eAAO,MAAM,YAAY,kDAAkD,CAAC;AAE5E,6EAA6E;AAC7E,eAAO,MAAM,YAAY,KAAK,CAAC;AAE/B,yDAAyD;AACzD,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC;;;;GAIG;AACH,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,+EAA+E;AAC/E,eAAO,MAAM,YAAY,IAAI,CAAC;AAiB9B,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,GAAG,OAAO,GAAG,WAAW,CAAC;AAEnG,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAO9D,CAAC;AAEF,yEAAyE;AACzE,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMxD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrD;AAID;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,aAAa,GAAG,IAAI,CAqB/F;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAS/B;AAcD,MAAM,WAAW,MAAM;IACrB,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,mBAAmB;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAUD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,GAAE,MAAmB,GAAG,MAAM,EAAE,CAqB7F;AAID,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,mEAAmE;IACnE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,iDAAiD;IACjD,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,8EAA8E;IAC9E,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;CACrB;AASD,iFAAiF;AACjF,wBAAgB,OAAO,IAAI,MAAM,CAEhC;AA0DD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"series.d.ts","sourceRoot":"","sources":["../src/series.ts"],"names":[],"mappings":"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"}
|
package/dist/series.js
CHANGED
|
@@ -126,6 +126,38 @@ export async function sondarPeriodicidade(codigo, timeoutMs, maxRetries) {
|
|
|
126
126
|
return null;
|
|
127
127
|
}
|
|
128
128
|
}
|
|
129
|
+
/**
|
|
130
|
+
* Ordena observações da origem em ordem cronológica crescente.
|
|
131
|
+
*
|
|
132
|
+
* **A origem NÃO garante ordem em `ultimos/N`.** Medido em 12/08/2026 sobre as
|
|
133
|
+
* 169 séries do catálogo: 22 delas devolvem do mais NOVO para o mais velho
|
|
134
|
+
* (entre outras 4513, 4503, 5364, 5793, 27788, 27791, 27815, 195), enquanto o
|
|
135
|
+
* caminho `dados?dataInicial=` veio crescente em todas as 151 medidas. Não há
|
|
136
|
+
* padrão declarado pelo BCB e não há como saber de antemão qual série é qual —
|
|
137
|
+
* então toda leitura passa por aqui.
|
|
138
|
+
*
|
|
139
|
+
* Não é preciosismo: `handleVariacao` toma `data[0]` como valor inicial e o
|
|
140
|
+
* último como final. Na 4513 isso publicava −7,40% onde a série subiu +8,00%,
|
|
141
|
+
* com `dataInicial` posterior à `dataFinal`. Falha silenciosa, resposta
|
|
142
|
+
* bem-formada — a mesma classe que a fase já encontrou quatro vezes.
|
|
143
|
+
*
|
|
144
|
+
* Observação sem data parseável vai para o fim, preservando a ordem relativa:
|
|
145
|
+
* é a convenção que `fundir` já usava, e mantê-la evita descartar dado que a
|
|
146
|
+
* origem mandou.
|
|
147
|
+
*/
|
|
148
|
+
export function ordenarPorData(observacoes) {
|
|
149
|
+
const comData = [];
|
|
150
|
+
const semData = [];
|
|
151
|
+
for (const obs of observacoes) {
|
|
152
|
+
const t = parseDataSgs(obs.data);
|
|
153
|
+
if (t === null)
|
|
154
|
+
semData.push(obs);
|
|
155
|
+
else
|
|
156
|
+
comData.push({ t, obs });
|
|
157
|
+
}
|
|
158
|
+
comData.sort((a, b) => a.t - b.t);
|
|
159
|
+
return [...comData.map(x => x.obs), ...semData];
|
|
160
|
+
}
|
|
129
161
|
/** Dias que uma observação ocupa, por periodicidade — dimensiona janelas. */
|
|
130
162
|
const DIAS_POR_OBSERVACAO = {
|
|
131
163
|
diaria: 1.45, // dias corridos por dia útil (252 úteis / 365 corridos)
|
|
@@ -272,7 +304,9 @@ export async function buscarSerieSgs(pedido, timeoutMs, maxRetries, concorrencia
|
|
|
272
304
|
try {
|
|
273
305
|
const dados = (await fetchBcbApi(urlSerie(codigo, pedido.dataInicial, pedido.dataFinal), timeoutMs, maxRetries));
|
|
274
306
|
requisicoes += 1;
|
|
275
|
-
|
|
307
|
+
// Medido crescente em todas as janelas de data, mas a garantia não é da
|
|
308
|
+
// origem: normalizar aqui também custa um sort e fecha a classe inteira.
|
|
309
|
+
const observacoes = ordenarPorData(Array.isArray(dados) ? dados : []);
|
|
276
310
|
return { observacoes, periodicidade: inferirPeriodicidade(observacoes), requisicoes };
|
|
277
311
|
}
|
|
278
312
|
catch (erro) {
|
|
@@ -313,7 +347,9 @@ export async function buscarUltimosSgs(codigo, quantidade, timeoutMs, maxRetries
|
|
|
313
347
|
if (quantidade <= TETO_ULTIMOS) {
|
|
314
348
|
const url = `${BCB_SGS_BASE}.${codigo}/dados/ultimos/${quantidade}?formato=json`;
|
|
315
349
|
const dados = (await fetchBcbApi(url, timeoutMs, maxRetries));
|
|
316
|
-
|
|
350
|
+
// `ultimos/N` é o caminho onde a origem devolve descendente em parte das
|
|
351
|
+
// séries — ver `ordenarPorData`.
|
|
352
|
+
const observacoes = ordenarPorData(Array.isArray(dados) ? dados : []);
|
|
317
353
|
return { observacoes, periodicidade: inferirPeriodicidade(observacoes), requisicoes: 1 };
|
|
318
354
|
}
|
|
319
355
|
const periodicidade = (await sondarPeriodicidade(codigo, timeoutMs, maxRetries)) ?? "mensal";
|
|
@@ -410,4 +446,120 @@ export function harmonizar(observacoes, alvo, agregacao, origem) {
|
|
|
410
446
|
`O cálculo é do servidor, não do Banco Central; a data de cada ponto é o primeiro dia do período agregado.`;
|
|
411
447
|
return { dados, frequencia: alvo, agregacao, nota };
|
|
412
448
|
}
|
|
449
|
+
/**
|
|
450
|
+
* Alinha N séries pela data, na UNIÃO das datas, preservando a ordem de entrada.
|
|
451
|
+
*
|
|
452
|
+
* O alinhamento é separado do cálculo de propósito: é aqui que mora o erro caro.
|
|
453
|
+
* Medido contra a origem em 11/08/2026: casar uma série DIÁRIA com uma MENSAL por
|
|
454
|
+
* data devolve **7 datas de 12** no ano — os dias 1º que caíram em dia útil. Não dá
|
|
455
|
+
* zero, que seria evidente; dá um punhado de pontos com o qual qualquer estatística
|
|
456
|
+
* pareada produz um número de aparência saudável. Por isso `completas` e `parciais`
|
|
457
|
+
* saem contados, e quem chama decide o que fazer com a diferença: correlacionar
|
|
458
|
+
* séries de periodicidades diferentes sem harmonizar é recusado, não avisado.
|
|
459
|
+
*
|
|
460
|
+
* Séries de mesma periodicidade casam de verdade: dólar, Selic e CDI diários deram
|
|
461
|
+
* 253 de 253 em 2024; IPCA e IGP-M mensais, 12 de 12 (todos no dia 1º).
|
|
462
|
+
*/
|
|
463
|
+
export function alinharSeries(series) {
|
|
464
|
+
const porData = new Map();
|
|
465
|
+
series.forEach((serie, indice) => {
|
|
466
|
+
for (const obs of serie) {
|
|
467
|
+
const t = parseDataSgs(obs.data);
|
|
468
|
+
if (t === null || !Number.isFinite(obs.valor))
|
|
469
|
+
continue;
|
|
470
|
+
let linha = porData.get(t);
|
|
471
|
+
if (!linha) {
|
|
472
|
+
linha = { data: obs.data, valores: new Array(series.length).fill(null) };
|
|
473
|
+
porData.set(t, linha);
|
|
474
|
+
}
|
|
475
|
+
// Data repetida na mesma série (emenda de fatia já deduplicada): o primeiro fica.
|
|
476
|
+
if (linha.valores[indice] === null)
|
|
477
|
+
linha.valores[indice] = obs.valor;
|
|
478
|
+
}
|
|
479
|
+
});
|
|
480
|
+
const linhas = [...porData.entries()]
|
|
481
|
+
.sort((a, b) => a[0] - b[0])
|
|
482
|
+
.map(([, linha]) => linha);
|
|
483
|
+
let completas = 0;
|
|
484
|
+
for (const linha of linhas) {
|
|
485
|
+
if (linha.valores.every(v => v !== null))
|
|
486
|
+
completas++;
|
|
487
|
+
}
|
|
488
|
+
return { linhas, completas, parciais: linhas.length - completas };
|
|
489
|
+
}
|
|
490
|
+
/** `yyyy-MM` do mês que contém a data `dd/MM/yyyy`; `null` se a data não casar. */
|
|
491
|
+
export function chaveMes(data) {
|
|
492
|
+
const t = parseDataSgs(data);
|
|
493
|
+
if (t === null)
|
|
494
|
+
return null;
|
|
495
|
+
const d = new Date(t);
|
|
496
|
+
return `${d.getUTCFullYear()}-${String(d.getUTCMonth() + 1).padStart(2, "0")}`;
|
|
497
|
+
}
|
|
498
|
+
function mesLegivel(chave) {
|
|
499
|
+
const [ano, mes] = chave.split("-");
|
|
500
|
+
return `${mes}/${ano}`;
|
|
501
|
+
}
|
|
502
|
+
/**
|
|
503
|
+
* Monta o deflator a partir das variações mensais publicadas (em %).
|
|
504
|
+
*
|
|
505
|
+
* O fator de um mês é `L(base) / L(mês)`, onde `L` é o nível do índice reconstruído.
|
|
506
|
+
* A forma de razão, em vez de compor só as variações posteriores, é o que permite o
|
|
507
|
+
* mês base ficar em QUALQUER posição — inclusive no meio ou antes do período, que é o
|
|
508
|
+
* caso de "quanto valia, em reais de 2010, o salário de 2024".
|
|
509
|
+
*/
|
|
510
|
+
export function construirDeflator(variacoes, mesBaseSolicitado) {
|
|
511
|
+
const porMes = new Map();
|
|
512
|
+
for (const obs of variacoes) {
|
|
513
|
+
const chave = chaveMes(obs.data);
|
|
514
|
+
if (chave !== null && Number.isFinite(obs.valor))
|
|
515
|
+
porMes.set(chave, obs.valor);
|
|
516
|
+
}
|
|
517
|
+
const meses = [...porMes.keys()].sort();
|
|
518
|
+
if (meses.length === 0) {
|
|
519
|
+
throw new Error("O índice de preços não devolveu observações no período necessário para deflacionar.");
|
|
520
|
+
}
|
|
521
|
+
// Nível do índice: o mês anterior ao primeiro vale 1, e cada mês aplica a sua variação.
|
|
522
|
+
const nivel = new Map();
|
|
523
|
+
let atual = 1;
|
|
524
|
+
for (const mes of meses) {
|
|
525
|
+
atual *= 1 + porMes.get(mes) / 100;
|
|
526
|
+
nivel.set(mes, atual);
|
|
527
|
+
}
|
|
528
|
+
const mesBase = mesBaseSolicitado && nivel.has(mesBaseSolicitado)
|
|
529
|
+
? mesBaseSolicitado
|
|
530
|
+
: meses[meses.length - 1];
|
|
531
|
+
const nivelBase = nivel.get(mesBase);
|
|
532
|
+
const fatores = new Map();
|
|
533
|
+
for (const mes of meses)
|
|
534
|
+
fatores.set(mes, nivelBase / nivel.get(mes));
|
|
535
|
+
return {
|
|
536
|
+
fatores,
|
|
537
|
+
mesBase: mesLegivel(mesBase),
|
|
538
|
+
primeiroMes: mesLegivel(meses[0]),
|
|
539
|
+
ultimoMes: mesLegivel(meses[meses.length - 1])
|
|
540
|
+
};
|
|
541
|
+
}
|
|
542
|
+
/**
|
|
543
|
+
* Converte cada observação nominal a preços do mês base.
|
|
544
|
+
*
|
|
545
|
+
* Cada observação é deflacionada pelo fator do MÊS EM QUE ELA CAI, qualquer que seja
|
|
546
|
+
* a periodicidade da série — o índice de preços é mensal, então todo dia de um mesmo
|
|
547
|
+
* mês compartilha o fator, o que é a convenção certa para série diária. Em série
|
|
548
|
+
* trimestral ou anual isso significa usar o mês da data do ponto; quem quiser outra
|
|
549
|
+
* convenção (média do período, por exemplo) harmoniza a série antes com `frequencia`.
|
|
550
|
+
*
|
|
551
|
+
* Data fora da cobertura do índice devolve `null` em vez de valor: o IPCA começa em
|
|
552
|
+
* 01/1980 e é publicado com defasagem, então observação anterior ao início ou
|
|
553
|
+
* posterior ao último mês divulgado não tem como ser deflacionada. Nulo é a
|
|
554
|
+
* informação de que ali não há dado — inventar fator 1 seria mentir.
|
|
555
|
+
*/
|
|
556
|
+
export function deflacionar(observacoes, deflator) {
|
|
557
|
+
return observacoes.map(obs => {
|
|
558
|
+
const chave = chaveMes(obs.data);
|
|
559
|
+
const fator = chave === null ? undefined : deflator.fatores.get(chave);
|
|
560
|
+
return fator === undefined
|
|
561
|
+
? { data: obs.data, valorNominal: obs.valor, valorReal: null, fator: null }
|
|
562
|
+
: { data: obs.data, valorNominal: obs.valor, valorReal: obs.valor * fator, fator };
|
|
563
|
+
});
|
|
564
|
+
}
|
|
413
565
|
//# sourceMappingURL=series.js.map
|
package/dist/series.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"series.js","sourceRoot":"","sources":["../src/series.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"series.js","sourceRoot":"","sources":["../src/series.ts"],"names":[],"mappings":"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"}
|
package/dist/stats.d.ts
CHANGED
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* O efeito prático é que `bcb_comparar` não muda em nada e `bcb_variacao` passa a
|
|
26
26
|
* devolver extremos verbatim — a única diferença de valor da migração inteira.
|
|
27
27
|
*/
|
|
28
|
+
import { type CorrelationMethod } from "@sbissoli/mcp-stats";
|
|
28
29
|
/** Casas decimais de todo número que este servidor calcula. */
|
|
29
30
|
export declare const CASAS_DERIVADAS = 4;
|
|
30
31
|
/** Arredonda um valor DERIVADO. Não use em valor vindo da fonte. */
|
|
@@ -48,6 +49,39 @@ export interface EstatisticasSerie {
|
|
|
48
49
|
* canônico costuma precisar de parsing — aqui os valores já chegam numéricos.
|
|
49
50
|
*/
|
|
50
51
|
export declare function estatisticasDaSerie(valores: number[]): EstatisticasSerie;
|
|
52
|
+
export type MetodoCorrelacao = CorrelationMethod;
|
|
53
|
+
export type BaseCorrelacao = "nivel" | "variacao";
|
|
54
|
+
export interface CorrelacaoEntreSeries {
|
|
55
|
+
/** `null` quando indefinido: menos de 2 pares completos, ou série constante. */
|
|
56
|
+
coeficiente: number | null;
|
|
57
|
+
/** Pares completos usados. */
|
|
58
|
+
n: number;
|
|
59
|
+
/** Pares descartados por falta de observação em uma das pontas. */
|
|
60
|
+
descartados: number;
|
|
61
|
+
/** Leitura em prosa da força e do sentido; `null` quando não há coeficiente. */
|
|
62
|
+
interpretacao: string | null;
|
|
63
|
+
/** Presente somente quando `coeficiente` é `null`. */
|
|
64
|
+
motivo?: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Correlação entre duas séries JÁ ALINHADAS na mesma grade, pelo motor comum.
|
|
68
|
+
*
|
|
69
|
+
* O alinhamento não acontece aqui de propósito — mora em `series.ts`, que é quem
|
|
70
|
+
* conhece as grades do SGS. Aqui só se escolhe o método e se traduz o resultado para
|
|
71
|
+
* a superfície pt-BR do servidor.
|
|
72
|
+
*/
|
|
73
|
+
export declare function correlacaoEntreSeries(pares: Array<{
|
|
74
|
+
a: number | null;
|
|
75
|
+
b: number | null;
|
|
76
|
+
}>, metodo: MetodoCorrelacao): CorrelacaoEntreSeries;
|
|
77
|
+
/** Variação percentual ponto a ponto, para correlacionar movimento em vez de nível. */
|
|
78
|
+
export declare function emVariacoes(pares: Array<{
|
|
79
|
+
a: number | null;
|
|
80
|
+
b: number | null;
|
|
81
|
+
}>): Array<{
|
|
82
|
+
a: number | null;
|
|
83
|
+
b: number | null;
|
|
84
|
+
}>;
|
|
51
85
|
/**
|
|
52
86
|
* Bloco de derivação anexado às respostas que carregam número calculado.
|
|
53
87
|
*
|
|
@@ -60,4 +94,25 @@ export declare const DERIVACAO_ESTATISTICA: {
|
|
|
60
94
|
readonly motor: "@sbissoli/mcp-stats";
|
|
61
95
|
readonly nota: string;
|
|
62
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* Derivação da correlação. Carrega os dois avisos que a tool precisa fazer sozinha,
|
|
99
|
+
* porque o leitor não vai fazê-los: correlação não é causalidade, e correlação entre
|
|
100
|
+
* NÍVEIS de duas séries com tendência é alta por construção (as duas crescem com o
|
|
101
|
+
* tempo), o que é a armadilha mais comum de toda a estatística econômica aplicada.
|
|
102
|
+
*/
|
|
103
|
+
export declare const DERIVACAO_CORRELACAO: {
|
|
104
|
+
readonly derived: true;
|
|
105
|
+
readonly motor: "@sbissoli/mcp-stats";
|
|
106
|
+
readonly nota: string;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* Derivação da deflação. Diz de onde vem o índice, porque a resposta seria
|
|
110
|
+
* incompreensível sem isso: o número real não existe em lugar nenhum na fonte — ele
|
|
111
|
+
* nasce de um índice que o servidor reconstrói por encadeamento.
|
|
112
|
+
*/
|
|
113
|
+
export declare const DERIVACAO_DEFLACAO: {
|
|
114
|
+
readonly derived: true;
|
|
115
|
+
readonly motor: "bcb-br-mcp";
|
|
116
|
+
readonly nota: string;
|
|
117
|
+
};
|
|
63
118
|
//# sourceMappingURL=stats.d.ts.map
|
package/dist/stats.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAoC,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE/F,+DAA+D;AAC/D,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,oEAAoE;AACpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAUxE;AAID,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AACjD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,CAAC;AAElD,MAAM,WAAW,qBAAqB;IACpC,gFAAgF;IAChF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8BAA8B;IAC9B,CAAC,EAAE,MAAM,CAAC;IACV,mEAAmE;IACnE,WAAW,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AA2BD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,EACpD,MAAM,EAAE,gBAAgB,GACvB,qBAAqB,CAmBvB;AAED,uFAAuF;AACvF,wBAAgB,WAAW,CACzB,KAAK,EAAE,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GACnD,KAAK,CAAC;IAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAQ/C;AAED;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB;;;;CAQxB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;CAavB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;CAWrB,CAAC"}
|
package/dist/stats.js
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* O efeito prático é que `bcb_comparar` não muda em nada e `bcb_variacao` passa a
|
|
26
26
|
* devolver extremos verbatim — a única diferença de valor da migração inteira.
|
|
27
27
|
*/
|
|
28
|
-
import { computeStats } from "@sbissoli/mcp-stats";
|
|
28
|
+
import { computeCorrelation, computeStats } from "@sbissoli/mcp-stats";
|
|
29
29
|
/** Casas decimais de todo número que este servidor calcula. */
|
|
30
30
|
export const CASAS_DERIVADAS = 4;
|
|
31
31
|
/** Arredonda um valor DERIVADO. Não use em valor vindo da fonte. */
|
|
@@ -48,6 +48,61 @@ export function estatisticasDaSerie(valores) {
|
|
|
48
48
|
n: e.n
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
|
+
const MOTIVO_INDEFINIDO = {
|
|
52
|
+
"insufficient-pairs": "Menos de duas datas em que as duas séries publicam valor: não há dispersão para correlacionar.",
|
|
53
|
+
"constant-series": "Ao menos uma das séries é constante no período (variância zero), e a correlação com uma constante é indefinida — não é zero."
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Faixas de leitura do coeficiente. Existem para que o rótulo seja SEMPRE o mesmo:
|
|
57
|
+
* sem ele, quem lê a resposta escolhe o próprio limiar e chama 0,45 de "forte" numa
|
|
58
|
+
* frase e de "fraca" na seguinte. Os cortes em 0,3 e 0,7 são a convenção mais comum
|
|
59
|
+
* em ciências sociais aplicadas e vão declarados na nota de derivação.
|
|
60
|
+
*/
|
|
61
|
+
function interpretar(r) {
|
|
62
|
+
if (Math.abs(r) < 0.1) {
|
|
63
|
+
return "Correlação praticamente nula: as duas séries não se moveram juntas no período.";
|
|
64
|
+
}
|
|
65
|
+
const forca = Math.abs(r) < 0.3 ? "fraca" : Math.abs(r) < 0.7 ? "moderada" : "forte";
|
|
66
|
+
const sentido = r > 0 ? "positiva" : "negativa";
|
|
67
|
+
const glosa = r > 0
|
|
68
|
+
? "as duas séries tenderam a subir e descer juntas"
|
|
69
|
+
: "quando uma subiu, a outra tendeu a descer";
|
|
70
|
+
return `Correlação ${sentido} ${forca}: ${glosa}.`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Correlação entre duas séries JÁ ALINHADAS na mesma grade, pelo motor comum.
|
|
74
|
+
*
|
|
75
|
+
* O alinhamento não acontece aqui de propósito — mora em `series.ts`, que é quem
|
|
76
|
+
* conhece as grades do SGS. Aqui só se escolhe o método e se traduz o resultado para
|
|
77
|
+
* a superfície pt-BR do servidor.
|
|
78
|
+
*/
|
|
79
|
+
export function correlacaoEntreSeries(pares, metodo) {
|
|
80
|
+
const c = computeCorrelation(pares, p => p.a ?? NaN, p => p.b ?? NaN, { method: metodo });
|
|
81
|
+
if (c.coefficient === null) {
|
|
82
|
+
return {
|
|
83
|
+
coeficiente: null,
|
|
84
|
+
n: c.n,
|
|
85
|
+
descartados: c.dropped,
|
|
86
|
+
interpretacao: null,
|
|
87
|
+
motivo: MOTIVO_INDEFINIDO[c.reason ?? ""] ?? "Coeficiente indefinido."
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return {
|
|
91
|
+
coeficiente: arredondarDerivado(c.coefficient),
|
|
92
|
+
n: c.n,
|
|
93
|
+
descartados: c.dropped,
|
|
94
|
+
interpretacao: interpretar(c.coefficient)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/** Variação percentual ponto a ponto, para correlacionar movimento em vez de nível. */
|
|
98
|
+
export function emVariacoes(pares) {
|
|
99
|
+
const saida = [];
|
|
100
|
+
for (let i = 1; i < pares.length; i++) {
|
|
101
|
+
const varOf = (ant, atual) => ant === null || atual === null || ant === 0 ? null : ((atual - ant) / Math.abs(ant)) * 100;
|
|
102
|
+
saida.push({ a: varOf(pares[i - 1].a, pares[i].a), b: varOf(pares[i - 1].b, pares[i].b) });
|
|
103
|
+
}
|
|
104
|
+
return saida;
|
|
105
|
+
}
|
|
51
106
|
/**
|
|
52
107
|
* Bloco de derivação anexado às respostas que carregam número calculado.
|
|
53
108
|
*
|
|
@@ -63,4 +118,39 @@ export const DERIVACAO_ESTATISTICA = {
|
|
|
63
118
|
"período; `maximo` e `minimo` são observações da fonte, devolvidas sem arredondamento; números " +
|
|
64
119
|
"derivados (média, amplitude, variação, diferença) são arredondados em 4 casas decimais."
|
|
65
120
|
};
|
|
121
|
+
/**
|
|
122
|
+
* Derivação da correlação. Carrega os dois avisos que a tool precisa fazer sozinha,
|
|
123
|
+
* porque o leitor não vai fazê-los: correlação não é causalidade, e correlação entre
|
|
124
|
+
* NÍVEIS de duas séries com tendência é alta por construção (as duas crescem com o
|
|
125
|
+
* tempo), o que é a armadilha mais comum de toda a estatística econômica aplicada.
|
|
126
|
+
*/
|
|
127
|
+
export const DERIVACAO_CORRELACAO = {
|
|
128
|
+
derived: true,
|
|
129
|
+
motor: "@sbissoli/mcp-stats",
|
|
130
|
+
nota: "O coeficiente é calculado por este servidor a partir das observações publicadas pelo Banco Central; " +
|
|
131
|
+
"o BCB não divulga correlações. Convenções: Pearson mede relação LINEAR entre os valores, Spearman " +
|
|
132
|
+
"mede relação MONÓTONA entre os postos (com posto médio nos empates, adequado a séries que ficam " +
|
|
133
|
+
"paradas, como taxa de juros entre reuniões do Copom); só entram datas em que as duas séries " +
|
|
134
|
+
"publicam, e o descarte é declarado em `descartados`; coeficiente arredondado em 4 casas. " +
|
|
135
|
+
"Leitura dos rótulos: |r| < 0,1 praticamente nula, < 0,3 fraca, < 0,7 moderada, >= 0,7 forte. " +
|
|
136
|
+
"DUAS RESSALVAS: correlação não estabelece causalidade; e correlação entre NÍVEIS de séries que têm " +
|
|
137
|
+
"tendência (preço, índice, estoque) costuma ser alta só porque ambas crescem com o tempo — use " +
|
|
138
|
+
"`base: \"variacao\"` para correlacionar os movimentos em vez dos níveis."
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* Derivação da deflação. Diz de onde vem o índice, porque a resposta seria
|
|
142
|
+
* incompreensível sem isso: o número real não existe em lugar nenhum na fonte — ele
|
|
143
|
+
* nasce de um índice que o servidor reconstrói por encadeamento.
|
|
144
|
+
*/
|
|
145
|
+
export const DERIVACAO_DEFLACAO = {
|
|
146
|
+
derived: true,
|
|
147
|
+
motor: "bcb-br-mcp",
|
|
148
|
+
nota: "Os valores reais são calculados por este servidor; o Banco Central publica apenas a série nominal e a " +
|
|
149
|
+
"variação do índice de preços. Como o SGS não divulga número-índice, o índice é RECONSTRUÍDO pela " +
|
|
150
|
+
"composição geométrica das variações mensais publicadas — reconstrução conferida contra a própria " +
|
|
151
|
+
"fonte: 12 variações da série 433 compostas reproduzem o acumulado em 12 meses da série 13522 com " +
|
|
152
|
+
"diferença máxima de 0,0052 ponto percentual (2018–2025), resíduo do arredondamento em 2 casas com " +
|
|
153
|
+
"que o BCB publica a variação. Cada observação é deflacionada pelo fator do mês em que cai; " +
|
|
154
|
+
"observação fora da cobertura do índice recebe `valorReal: null` em vez de valor inventado."
|
|
155
|
+
};
|
|
66
156
|
//# sourceMappingURL=stats.js.map
|
package/dist/stats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"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"}
|