Skip to main content

Package Python PyPI Conda PyPI Downloads Downloads Skforecast Docs Maintenance Project Status: Active
AI assistant Skforecast AI PyPI GitHub
App Skforecast Studio
Meta License DOI llms.txt
Testing Build status codecov
Donation paypal buymeacoffee GitHub Sponsors Open Collective
Community !linkedin !discord Forecasting Python
Affiliation NumFOCUS Affiliated GC.OS Affiliated

Table of Contents

About The Project

Skforecast is a Python library for time series forecasting using scikit-learn compatible models, statistical methods, and foundation models. It works with any estimator compatible with the scikit-learn API, including popular options like LightGBM, XGBoost, CatBoost, Keras, and many others.

Why use skforecast?

Skforecast simplifies time series forecasting with machine learning by providing:

  • :jigsaw: Seamless integration with any scikit-learn compatible estimator (e.g., LightGBM, XGBoost, CatBoost, etc.).
  • :repeat: Flexible workflows that allow for both single and multi-series forecasting.
  • :hammer_and_wrench: Comprehensive tools for feature engineering, model selection, hyperparameter tuning, and more.
  • :building_construction: Production-ready models with interpretability and validation methods for backtesting and realistic performance evaluation.

Whether you're building quick prototypes or deploying models in production, skforecast ensures a fast, reliable, and scalable experience.

[!TIP] :sparkles: Try skforecast-ai, an AI forecasting assistant that pairs a deterministic engine, powered by skforecast, with an LLM reasoning layer.

[!TIP] :computer: Try Skforecast Studio, an interactive, no-code application to build time series forecasting models visually, while automatically generating production-ready Python code using skforecast.

Quick Example

import pandas as pd
from lightgbm import LGBMRegressor
from skforecast.recursive import ForecasterRecursive
from skforecast.datasets import load_demo_dataset

# Download demo dataset
y = load_demo_dataset()

# Create and fit the forecaster using the last 15 observations as features
forecaster = ForecasterRecursive(
                 estimator = LGBMRegressor(random_state=123, verbose=-1),
                 lags      = 15
             )
forecaster.fit(y=y)

# Predict the next 12 months
predictions = forecaster.predict(steps=12)
predictions.head()
# 2008-07-01    0.976355
# 2008-08-01    1.038296
# 2008-09-01    1.108676
# 2008-10-01    1.163778
# 2008-11-01    1.169646
# Freq: MS, Name: pred, dtype: float64

Get Involved

We value your input! Here are a few ways you can participate:

  • Report bugs and suggest new features on our GitHub Issues page.
  • Contribute to the project by submitting code, adding new features, or improving the documentation.
  • Share your feedback on LinkedIn to help spread the word about skforecast!

Together, we can make time series forecasting accessible to everyone.

Documentation

Explore the full capabilities of skforecast with our comprehensive documentation:

:books: https://skforecast.org

Documentation
:book: Introduction to forecasting Basics of forecasting concepts and methodologies
:rocket: Quick start Get started quickly with skforecast
:hammer_and_wrench: User guides Detailed guides on skforecast features and functionalities
:mortar_board: Examples and tutorials Learn through practical examples and tutorials to master skforecast
:question: FAQ and tips Find answers and tips about forecasting
:books: API Reference Comprehensive reference for skforecast functions and classes
:memo: Releases Keep track of major updates and changes
:mag: More Discover more about skforecast and its creators
:sparkles: Skforecast AI Create reproducible forecasts with an AI-assisted workflow
:computer: Skforecast Studio Build forecasting models visually with no code

Installation & Dependencies

To install the basic version of skforecast with core dependencies, run the following:

pip install skforecast

For more installation options, including dependencies and additional features, check out our Installation Guide.

What is new in skforecast?

All significant changes to this project are documented in the release file.

Forecasters

In the skforecast library, a Forecaster object is a comprehensive container that provides the essential functionality and methods necessary to train a forecasting model and generate predictions for future time periods.

There are several types of forecasters, each suited to a different combination of data and modeling strategy. These include single or multiple time series, direct or recursive strategies, and statistical models (ARIMA and ETS) as well as deep learning (RNN/LSTM) and foundation models. All forecaster types share a unified API for training, prediction, and validation, and they support probabilistic forecasting.

Forecaster Estimator Series Strategy Exog Window features Differentiation
ForecasterRecursive scikit-learn regressor single recursive
ForecasterDirect scikit-learn regressor single direct
ForecasterRecursiveMultiSeries scikit-learn regressor multiple recursive
ForecasterDirectMultiVariate scikit-learn regressor multiple direct
ForecasterFoundation pre-trained, zero-shot single or multiple multi-output
ForecasterStats Arima, Sarimax, Ets, Arar single recursive
ForecasterRnn Keras model (RNN/LSTM) single or multiple multi-output
ForecasterRecursiveClassifier scikit-learn classifier single recursive
ForecasterEquivalentDate Rule-based (baseline) single recursive

Examples and tutorials

Explore our extensive list of examples and tutorials (English and Spanish) to get you started with skforecast. You can find them here.

AI-assisted forecasting

Skforecast includes machine-readable context files so AI assistants (ChatGPT, Claude, Copilot, and others) can generate accurate code. Paste https://skforecast.org/latest/llms-full.txt into any LLM, or let your IDE pick up context automatically. Learn more in AI-assisted forecasting.

For an end-to-end workflow, try skforecast-ai, an AI forecasting assistant that pairs a deterministic engine, powered by skforecast, with an LLM reasoning layer. The source code is available on GitHub.

How to contribute

Primarily, skforecast development consists of adding and creating new Forecasters, new validation strategies, or improving the performance of the current code. However, there are many other ways to contribute:

  • Submit a bug report or feature request on GitHub Issues.
  • Contribute a Jupyter notebook to our examples.
  • Write unit or integration tests for our project.
  • Answer questions on our issues, Stack Overflow, and elsewhere.
  • Translate our documentation into another language.
  • Write a blog post, tweet, or share our project with others.

For more information on how to contribute to skforecast, see our Contribution Guide.

Visit our About section to meet the people behind skforecast.

Citation

If you use skforecast for a scientific publication, we would appreciate citations to the published software.

Zenodo

Amat Rodrigo, Joaquin, & Escobar Ortiz, Javier. (2026). skforecast (v0.25.0). Zenodo. https://doi.org/10.5281/zenodo.8382787

APA:

Amat Rodrigo, J., & Escobar Ortiz, J. (2026). skforecast (Version 0.25.0) [Computer software]. https://doi.org/10.5281/zenodo.8382787

BibTeX:

@software{skforecast,
  author  = {Amat Rodrigo, Joaquin and Escobar Ortiz, Javier},
  title   = {skforecast},
  version = {0.25.0},
  month   = {9},
  year    = {2026},
  license = {BSD-3-Clause},
  url     = {https://skforecast.org/},
  doi     = {10.5281/zenodo.8382787}
}

View the citation file.

Donating

If you found skforecast useful, you can support us with a donation. Your contribution will help us continue developing, maintaining, and improving this project. Every contribution, no matter the size, makes a difference. Thank you for your support!


Sponsor on Open Collective
Buy me a coffee skforecast
Become a GitHub Sponsor
Become a GitHub Sponsor

paypal

License

Skforecast software: BSD-3-Clause License

Skforecast documentation: CC BY-NC-SA 4.0

Trademark: The trademark skforecast is registered with the European Union Intellectual Property Office (EUIPO) under the application number 019109684. Unauthorized use of this trademark, its logo, or any associated visual identity elements is strictly prohibited without the express consent of the owner.

Release files for skforecast 0.25.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for skforecast 0.25.0
File Size Uploaded
skforecast-0.25.0.tar.gz 505.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for skforecast 0.25.0
File Interpreter ABI Platform
skforecast-0.25.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / skforecast-0.25.0.tar.gz

Download URL skforecast-0.25.0.tar.gz
Size 505.6 kB
Tags Source
SHA-256 checksum
How to use checksums
e39abebe9c9cd9e5430b79b1a911b0963a621c3f864f36ff081051ded006313c
BLAKE2b-256 checksum
How to use checksums
1cf541163be254b0dec1bdf5f251ca678fe287547a8f97dc7678115925825e60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release files / skforecast-0.25.0-py3-none-any.whl

Download URL skforecast-0.25.0-py3-none-any.whl
Size 529.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1bf3d3a01aaab8e8bea8def22edd7d2cad2d8a671499681426bab71a10432574
BLAKE2b-256 checksum
How to use checksums
51eefc38e1924f4e226b4f3817486e524372f3bef3c862b3f37c72e01b5591a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

0.25.0 This release

2 release files

0.24.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.1

2 release files

0.19.1

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.15.1

2 release files

0.15.0

2 release files

0.14.0

2 release files

0.12.1

2 release files

0.11.0

2 release files

0.10.1

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

1 release file

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.9

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page