Visual diagram of the Chile Macro Forecasting pipeline: BCCh API, models, backtesting, and dashboard

Operable macro forecasting: official source → model pool → backtesting → dashboard and report.

Public

Chile Macro Forecasting

Reproducible system for forecasting Chilean macro series from the Central Bank BDE API: model pool, rolling backtests, DuckDB history, and a Dash/Plotly dashboard.

Stack

Python · BCCh API · optional TimesFM · statsmodels · DuckDB · Dash · Plotly · pytest

Artifacts

Local dashboard/report; public repo and demo pending confirmation

Constraints

  • Base case written from local project documentation; public repo and demo links are pending confirmation.
  • Accuracy metrics are not published until a reproducible backtesting report is fixed.
  • TimesFM is treated as an optional member of the pool, not as a promise of systematic superiority.

TL;DR

  • Downloads and normalizes Chilean Central Bank macro series, including CPI, IMACEC, policy rate, FX, copper, and unemployment.
  • Compares optional TimesFM against reasonable baselines: naive, seasonal naive, ETS, SARIMA, and optional AutoARIMA.
  • Stores observations, runs, forecasts, and metrics in DuckDB so decisions can be audited over time.

Reusable patterns

  • Model pool with strong baselines as the floor before introducing foundation models.
  • Rolling backtests with MASE/sMAPE to compare across series instead of trusting a single window.
  • Prediction history with run_id, timestamp, and inputs for traceability.
  • Operational guardrails: healthchecks for stale data, gaps, and outliers before trusting a forecast.

Context

Macro forecasting breaks down when it is presented as a one-off prediction without baselines, history, or error auditing.

Chile has official public Central Bank series that make it possible to build a reproducible system before adding harder fiscal data.

The project asks whether a model such as TimesFM adds value over classical baselines, in which series, and under which regimes.

Decisions

  • Separate ingestion, monthly normalization, modeling, backtesting, and visualization so each layer can be replaced.
  • Use DuckDB as a local ledger for observations, runs, forecasts, metrics, and best-model recommendations.
  • Keep TimesFM optional: the pipeline must still work with baselines when model cost or installation does not pay off.
  • Evaluate with rolling backtests and cross-series metrics, especially MASE and sMAPE.
  • Prepare operation with run_pipeline.py, export_report.py, and healthcheck.py so the system can run on a schedule.

Architecture

Chile Macro Forecasting architecture: Central Bank API, DuckDB, model pool, backtesting, and dashboard
BCCh GetSeries → monthly normalization → DuckDB → model pool → rolling backtests → Dash/Plotly + HTML report.
  • Daily series such as the policy rate and CLP/USD are aggregated to monthly frequency to compare them with the core macro series.
  • Backtesting writes aggregate metrics, origin-level folds, and a best-model recommendation per series.
  • The operations layer includes checks for missing data, frozen series, and simple outliers.

Outcome

  • Turns the forecasting pillar into a tangible case: not just a chart or post, but a reproducible and auditable system.
  • Makes the thesis explicit: modern models only matter when they compete against defensible baselines and are measured by regime.
  • Prepares the natural extension toward fiscal DIPRES/SII series through versioned connectors and macro covariates.