Metadata-Version: 2.4
Name: nfer-macrocast
Version: 0.1.0
Summary: Decomposing ML Forecast Gains in Macroeconomic Forecasting
Project-URL: Documentation, https://nanyeonk.github.io/macrocast/
Project-URL: Repository, https://github.com/NanyeonK/macrocast
Project-URL: Issues, https://github.com/NanyeonK/macrocast/issues
Author: Chan
License: MIT
License-File: LICENSE
Keywords: FRED,forecasting,machine-learning,macroeconomics
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.10
Requires-Dist: joblib>=1.3
Requires-Dist: numpy>=1.24
Requires-Dist: openpyxl>=3.1
Requires-Dist: pandas>=2.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: requests>=2.31
Requires-Dist: scikit-learn>=1.3
Requires-Dist: scipy>=1.11
Requires-Dist: statsmodels>=0.14
Requires-Dist: tqdm>=4.65
Provides-Extra: all
Requires-Dist: beautifulsoup4>=4.12.0; extra == 'all'
Requires-Dist: chromadb>=0.4.0; extra == 'all'
Requires-Dist: einops>=0.8.2; extra == 'all'
Requires-Dist: lightgbm>=4.0; extra == 'all'
Requires-Dist: matplotlib>=3.7; extra == 'all'
Requires-Dist: mcp[cli]>=1.2.0; extra == 'all'
Requires-Dist: mkdocs-material>=9.4; extra == 'all'
Requires-Dist: mkdocstrings[python]>=0.23; extra == 'all'
Requires-Dist: mypy>=1.5; extra == 'all'
Requires-Dist: pre-commit>=3.4; extra == 'all'
Requires-Dist: pyarrow>=14.0; extra == 'all'
Requires-Dist: pymupdf>=1.23.0; extra == 'all'
Requires-Dist: pytest-cov>=4.1; extra == 'all'
Requires-Dist: pytest>=7.4; extra == 'all'
Requires-Dist: ruff>=0.4; extra == 'all'
Requires-Dist: seaborn>=0.13; extra == 'all'
Requires-Dist: sentence-transformers>=2.2.0; extra == 'all'
Requires-Dist: torch>=2.0; extra == 'all'
Requires-Dist: xgboost>=2.0; extra == 'all'
Provides-Extra: dev
Requires-Dist: mypy>=1.5; extra == 'dev'
Requires-Dist: pre-commit>=3.4; extra == 'dev'
Requires-Dist: pytest-cov>=4.1; extra == 'dev'
Requires-Dist: pytest>=7.4; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.4; extra == 'docs'
Requires-Dist: mkdocstrings[python]>=0.23; extra == 'docs'
Provides-Extra: ml
Requires-Dist: lightgbm>=4.0; extra == 'ml'
Requires-Dist: pyarrow>=14.0; extra == 'ml'
Requires-Dist: torch>=2.0; extra == 'ml'
Requires-Dist: xgboost>=2.0; extra == 'ml'
Provides-Extra: rag
Requires-Dist: beautifulsoup4>=4.12.0; extra == 'rag'
Requires-Dist: chromadb>=0.4.0; extra == 'rag'
Requires-Dist: einops>=0.8.2; extra == 'rag'
Requires-Dist: mcp[cli]>=1.2.0; extra == 'rag'
Requires-Dist: pymupdf>=1.23.0; extra == 'rag'
Requires-Dist: sentence-transformers>=2.2.0; extra == 'rag'
Provides-Extra: viz
Requires-Dist: matplotlib>=3.7; extra == 'viz'
Requires-Dist: seaborn>=0.13; extra == 'viz'
Description-Content-Type: text/markdown

# macrocast

Decomposing ML Forecast Gains in Macroeconomic Forecasting.

An open-source Python (+ R) framework for systematic evaluation of machine learning methods in macroeconomic forecasting, with built-in support for the FRED-MD, FRED-QD, and FRED-SD database ecosystem.

[![CI](https://github.com/NanyeonK/macrocast/actions/workflows/ci.yml/badge.svg)](https://github.com/NanyeonK/macrocast/actions/workflows/ci.yml)
[![Docs](https://github.com/NanyeonK/macrocast/actions/workflows/docs.yml/badge.svg)](https://nanyeonk.github.io/macrocast/)
[![PyPI](https://img.shields.io/pypi/v/nfer-macrocast)](https://pypi.org/project/nfer-macrocast/)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)

---

## Release Status

| Surface | State |
|--------|-------|
| Latest PyPI release | Pending first `nfer-macrocast` publish |
| Current repository version | `0.1.0` |
| PyPI-safe scope today | Data layer and package metadata cleanup |
| Repo-head, not yet published | Forecasting pipeline, evaluation layer, `macrocastR` companion work |

The repository is ahead of the current PyPI release. Install from source if you need unreleased pipeline or evaluation features.
The PyPI distribution name is `nfer-macrocast`. The Python import package remains `macrocast`.

---

## Installation

```bash
pip install nfer-macrocast
# or with all extras
pip install nfer-macrocast[all]
```

---

## Quick Start

```python
import macrocast as mc

# Load and transform FRED-MD (latest vintage, cached locally)
md = mc.load_fred_md()
md_t = md.transform()

print(md_t)
# MacroFrame(dataset='FRED-MD', vintage='current', T=790, N=128,
#            period=1959-01-01 to 2024-10-01, status=transformed)

# Subset by variable group
output = md_t.group("output_income")   # INDPRO, RPI, ...
prices = md_t.group("prices")          # CPI, PPI, ...

# Check missing values
report = md.missing_report()
print(report[["n_leading", "n_trailing", "n_intermittent"]].head())

# Method chaining
md_ready = (
    mc.load_fred_md()
    .trim(start="1970-01", end="2023-12")
    .handle_missing("trim_start")
    .transform()
)

# Load a specific vintage
md_2020 = mc.load_fred_md(vintage="2020-01")

# FRED-QD (quarterly)
qd = mc.load_fred_qd()

# FRED-SD (state-level)
sd = mc.load_fred_sd(states=["CA", "TX"], variables=["UR"])
```

---

## Documentation

Full documentation is available at [nanyeonk.github.io/macrocast](https://nanyeonk.github.io/macrocast/).

## R Package Status

`macrocastR` remains source-only and is not CRAN-ready yet.

- `man/` pages and a full roxygen regeneration/review step are still pending.
- The R CI workflow currently runs `R CMD check` in a non-failing mode because documentation artifacts are incomplete.
- Registry publishing and credentialed release work should happen after those packaging gaps are closed.

---

## License

MIT
