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.
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
- 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.