Metadata-Version: 2.4
Name: faro-core
Version: 1.0.0
Summary: Enterprise-grade multi-SKU time-series forecasting engine
Author: Angel Zeledon
Author-email: Angel Zeledon <angel.zeledon.fernandez@gmail.com>
License: MIT
Project-URL: Homepage, https://github.com/Angel-Zeledon/faro-lib
Project-URL: Repository, https://github.com/Angel-Zeledon/faro-lib
Keywords: forecasting,time-series,machine-learning,demand-planning,lightgbm,prophet
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: pandas>=1.5
Requires-Dist: numpy>=1.23
Requires-Dist: scikit-learn>=1.1
Requires-Dist: lightgbm>=3.3
Requires-Dist: xgboost>=1.7
Requires-Dist: prophet>=1.1
Requires-Dist: statsmodels>=0.13
Requires-Dist: scipy>=1.9
Requires-Dist: holidays>=0.20
Provides-Extra: api
Requires-Dist: fastapi>=0.100; extra == "api"
Requires-Dist: uvicorn[standard]>=0.22; extra == "api"
Requires-Dist: python-multipart; extra == "api"
Provides-Extra: dl
Requires-Dist: tensorflow>=2.11; extra == "dl"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: black; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Dynamic: author
Dynamic: requires-python

# faro-core

Enterprise-grade multi-SKU time-series forecasting engine. Train and compare multiple models (LightGBM, XGBoost, Prophet, ARIMA, ETS, SARIMAX) per SKU/group with automatic feature engineering and walk-forward validation.

## Installation

```bash
pip install faro-core
```

## Quick Start

```python
from forecasting_core import ForecastEngine

engine = (
    ForecastEngine()
    .load_data("sales.csv")
    .choose_columns(target="sales", date="date", sku="item_id")
    .configure_features(lags=[1, 7, 14], rolling=[7, 14, 28], calendar=True)
    .configure_training(walk_forward=True, wfv_splits=3)
    .configure_forecast(horizon=14)
    .select_models(["lightgbm", "prophet", "ets"])
    .train()
)

print(engine.get_metrics())
forecast = engine.predict(horizon=14)
```

## From Config File

```python
engine = ForecastEngine.from_config("session_config.json")
engine.train()
report = engine.generate_report()
```

## Features

- Multi-model training per SKU: LightGBM, XGBoost, Prophet, ARIMA, ETS, SARIMAX
- Walk-forward validation with configurable splits
- Automatic feature engineering: lags, rolling stats, EWM, calendar features
- Colombia-specific holiday distances (Easter, Christmas)
- Model registry and ensemble support
- Inventory optimization: service level, safety stock
- Data drift monitoring
- Hyperparameter tuning

## License

MIT
