ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 1.7 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/ |
| Last Crawled | 2026-02-22 01:14:17 (1 month ago) |
| First Indexed | 2023-05-24 19:25:57 (2 years ago) |
| HTTP Status Code | 200 |
| Meta Title | Exponential Smoothing: A Guide to Getting Started | InfluxData |
| Meta Description | In this post, we provided a guide to exponential smoothing, explaining the basics of the method, its types, and more. #influxdb |
| Meta Canonical | null |
| Boilerpipe Text | By
Developer
Feb 03, 2026
Exponential smoothing is a time series forecasting method that uses an exponentially weighted average of past observations to predict future values. In other words, it assigns greater weight to recent observations than to older ones, allowing the forecast to adapt to changing data trends.
In this post, we’ll look at the basics of exponential smoothing, including how it works, its types, and how to implement it in Python.
What is exponential smoothing?
Exponential smoothing forecasts
time series data
by smoothing out fluctuations in the data. The technique was first introduced by Robert Goodell Brown in 1956 and then further developed by Charles Holt in 1957. It has since become one of the most widely used methods for forecasting.
The basic idea behind exponential smoothing is to give more weight to recent observations by assigning weights to each observation that decrease exponentially with age. Weights are then used to calculate a weighted moving average of the data, which is used to forecast the next period.
Exponential smoothing assumes that future values of a time series are a function of its past values. The method works well when the time series has a trend and/or a seasonal component, but it can also be used for stationary data (i.e., without trend or seasonality).
Types of exponential smoothing
There are several types of exponential smoothing methods, each with its own formulae and assumptions. The most commonly used methods include:
1. Simple Exponential Smoothing
Simple exponential smoothing (SES), also known as single exponential smoothing, is its simplest form. It assumes that the time series has no trend or seasonality.
The forecast for the next period is based on the weighted average of the previous observation and the forecast for the current period.
The formula for simple exponential smoothing is:
s
(t)
= αx
(t)
+ (1-α)s
t-1
where
s
(t)
is the smoothed value at time t,
x
(t)
is the observed value at time t,
s
t-1
is the previous smoothed statistic, and
α is the smoothing parameter between 0 and 1.
The smoothing parameter α controls the weight given to the current observation and the previous forecast.
A high value of α gives more weight to the current observation, while a low value of α gives more weight to the previous forecast.
2. Holt’s Linear Exponential Smoothing
Holt’s linear exponential smoothing, also known as double exponential smoothing, is used to forecast time series data that has a linear trend but no seasonal pattern. This method uses two smoothing parameters: α for the level (the intercept) and β for the trend.
The formulas for double exponential smoothing are:
s
t
= αx
t
+ (1 – α)(s
t-1
+ b
t-1
)
β
t
= β(s
t
– s
t-1
) + (1 – β)b
t-1
where
bt is the slope and best estimate of the trend at time t,
α is the smoothing parameter of data (0 < α < 1), and
β is the smoothing parameter for the trend (0 < β < 1).
Holt’s method is more accurate than SES for time series data with a trend, but it doesn’t work well for time series data with a seasonal component.
3. Holt-Winters’ Exponential Smoothing
Holt-Winters’ exponential smoothing, also referred to as triple exponential smoothing, is used to forecast time series data with both a trend and a seasonal component. It uses three smoothing parameters: α for the level (the intercept), β for the trend, and γ for the seasonal component.
The triple exponential smoothing formulas are given by:
where:
s
t
= smoothed statistic; it’s the simple weighted average of current observation Y
t
s
t-1
= previous smoothed statistic
α = smoothing factor of data (0 < α < 1)
t = time period
b
t
= best estimate of a trend at time t
β = trend smoothing factor (0 < β <1)
c
t
= seasonal component at time t
Îł = seasonal smoothing parameter (0 < Îł < 1)
Holt-Winters’ method is the most accurate of the three methods, but it’s also the most complex, requiring more data and computation than the other methods.
When to use exponential smoothing
Exponential smoothing is most useful for time series data that has a consistent trend, seasonality, and random fluctuations.
It’s particularly useful for short to medium-term forecasting of business metrics such as sales, revenue, and customer traffic. It’s also useful for monitoring and predicting seasonal changes in industries such as tourism, agriculture, and energy.
Here are some other common situations where exponential smoothing can be useful:
Time series forecasting
— One of the most common applications of exponential smoothing is in time series forecasting. If you have historical data for a particular variable over time, such as sales or website traffic, you can use exponential smoothing to forecast the future values of that variable.
Inventory management
— Exponential smoothing can be used to forecast demand for products or services, which can be helpful in inventory management. By forecasting demand, businesses can make sure they have enough inventory on hand to meet customer needs without overstocking.
Finance
— It can be used in finance to forecast stock prices, interest rates, and other financial variables. This can be helpful for investors who are trying to make informed decisions about buying and selling stocks or other financial instruments.
Marketing
— It’s also used to forecast the effectiveness of marketing campaigns. By tracking past campaign results and using exponential smoothing to forecast future performance, marketers can optimize their campaigns to achieve the best possible results.
Why is exponential smoothing popular?
Exponential smoothing is among the most widely used
time series forecasting methods
due to its simplicity and effectiveness.
Unlike other methods, exponential smoothing can adapt to changes in data trends. It also provides accurate predictions by assigning different weights to different time periods based on their importance.
Exponential smoothing is computationally efficient, making it ideal for large datasets. Additionally, it’s widely used in business forecasting, providing accurate, reliable forecasts across a range of applications, including demand, sales, and financial forecasting.
How to perform exponential smoothing
Performing exponential smoothing begins with understanding your data’s structure.
First, examine your time series to identify whether it contains trends, seasonality, or neither. This analysis will guide you in selecting the right exponential smoothing method: SES works best for stationary data, Holt’s method handles data with trends, and Holt-Winters’ method addresses both trends and seasonal patterns.
Once you’ve chosen your method, the implementation is straightforward. Modern statistical software and libraries can automatically optimize the smoothing parameters (α, β, and γ) by finding values that minimize forecast errors.
After fitting the model to your historical data, you’ll have a trained forecasting tool ready to generate predictions for future time periods.
Now, let’s put this into practice by implementing exponential smoothing using Python, one of the most popular tools for time series analysis.
Exponential smoothing in Python
Python has several libraries for exponential smoothing, including
Pandas
,
Statsmodels,
and
Prophet
. These libraries provide various functions and methods for implementing different types of exponential smoothing methods.
The Dataset
For this example, we’ll use the AirPassengers dataset, a time series dataset that contains the monthly number of airline passengers from 1949 to 1960. You can download the dataset from
this link
.
Setting Up the Environment
To get started, we need to set up our environment. We’ll be using Python 3, so make sure it’s installed. Alternatively, you can use
Google Colab
and go straight to importing the libraries.
Next, install these libraries using pip:
pip
install
pandas matplotlib statsmodels
Once you’ve installed the necessary libraries, you can import them into your Python script:
import
pandas as pd
import
matplotlib.pyplot as plt
from statsmodels.tsa.api
import
SimpleExpSmoothing
Loading the Data
After setting up the environment, we can load the AirPassengers dataset into a pandas DataFrame using the read_csv function:
data
=
pd.read_csv
(
'airline-passengers.csv'
, parse_dates
=
[
'Month'
]
, index_col
=
'Month'
)
We can then inspect the first few rows of the DataFrame using the head function:
print
(
data.head
(
))
This will output:
Visualizing the Data
Before we apply simple exponential smoothing to the data, let’s visualize it to get a better understanding of its properties. We can use the
plot
function of pandas to create a line plot of the data:
plt.plot
(
data
)
plt.xlabel
(
'Year'
)
plt.ylabel
(
'Number of Passengers'
)
plt.show
(
)
This will produce a plot of the number of passengers over time:
We can see that the number of passengers appears to be increasing, with some seasonality as well.
Performing SES
Now that we’ve loaded and visualized the data, we can perform simple exponential smoothing using the
SimpleExpSmoothing
function from the
statsmodels
library. Then, we’ll create an instance of the
SimpleExpSmoothing
class, passing in the data as an argument, and then fit the model to the data using the
fit
method:
model
=
SimpleExpSmoothing
(
data
)
model_fit
=
model.fit
(
optimized
=
True
)
print
(
model_fit.summary
(
))
This will calculate the smoothing parameters and fit the model to the data. The
optimized=True
parameter allows the model to find the best smoothing parameter (α) for your data.
Making Predictions
Finally, we can use the
forecast
method to predict future values of the time series, where the argument specifies the number of periods to forecast.
forecast
=
model_fit.forecast
(
6
)
print
(
forecast
)
This will produce a forecast for the next six months:
Based on the forecast, we can assume that over the next six months, there will be approximately 432 airline passengers.
Wrapping up
Exponential smoothing is a powerful method for time series forecasting that allows for accurate predictions of future values based on past observations. It’s a simple, efficient method that can be used for a wide range of time series data.
In this post, we provided a beginner’s guide to exponential smoothing, explaining the basics of the method, its types, and how to use it for forecasting. However, there are more advanced techniques and approaches to discover beyond the scope of this post.
If you’re interested in learning more, be sure to check out this
Python time series forecasting tutorial
. It’s a great resource that can help you deepen your understanding of this topic and take your forecasting skills to the next level with
InfluxDB
.
This post was written by Israel Oyetunji.
Israel
is a frontend developer with a knack for creating engaging UI and interactive experiences. He has proven experience developing consumer-focused websites using HTML, CSS, JavaScript, ReactJS, SASS, and relevant technologies. He loves writing about tech and creating how-to tutorials for developers. |
| Markdown | [PRODUCT UPDATE](https://www.influxdata.com/blog/influxdb-3-8/) **InfluxDB 3.8**: Easier than ever to deploy, manage, and run in production.
[WEBINAR](https://www.influxdata.com/resources/building-time-series-pipelines-for-bess/) Building time series pipelines for battery storage systems
[Register](https://www.influxdata.com/resources/building-time-series-pipelines-for-bess/)
[Skip to content](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#content)
[](https://www.influxdata.com/)
[](https://www.influxdata.com/)
[Products]()
[INFLUXDB 3 PRODUCTS](https://www.influxdata.com/products/influxdb-overview/)
Self-Managed
[InfluxDB 3 Enterprise NEW](https://www.influxdata.com/products/influxdb3-enterprise/)
[InfluxDB Core (OSS) NEW](https://www.influxdata.com/products/influxdb/)
Telegraf
[Telegraf Enterprise NEW](https://www.influxdata.com/products/telegraf-enterprise/)
[Telegraf (OSS)](https://www.influxdata.com/time-series-platform/telegraf/)
Fully Managed
[InfluxDB Cloud Serverless](https://www.influxdata.com/products/influxdb-cloud/serverless/)
[InfluxDB Cloud Dedicated](https://www.influxdata.com/products/influxdb-cloud/dedicated/)
[RESOURCES](https://www.influxdata.com/_resources/)
[ Platform Overview](https://www.influxdata.com/products/influxdb-overview/)
[ Client Libraries](https://www.influxdata.com/products/integrations/#tab2)
[ Explore All Integrations](https://www.influxdata.com/products/integrations/)
[Use Cases]()
[USE CASES](https://www.influxdata.com/solutions/)
[Network & Infrastructure Monitoring](https://www.influxdata.com/solutions/network-monitoring/)
[IoT Analytics & Predictive Maintenance](https://www.influxdata.com/solutions/iot-analytics-and-predictive-maintenance/)
[Machine Learning & AI](https://www.influxdata.com/ml-ai-workloads/)
[Modern Data Historian](https://www.influxdata.com/historian-workloads/)
[Explore All](https://www.influxdata.com/solutions/)
[INDUSTRIES](https://www.influxdata.com/_resources/)
[Manufacturing & IIoT](https://www.influxdata.com/solutions/iot-analytics-and-predictive-maintenance/)
[Aerospace](https://www.influxdata.com/solutions/by-industries/aerospace-and-satellites/)
[Energy & Utilities](https://www.influxdata.com/solutions/by-industries/energy-and-utilities/)
[Financial Services](https://www.influxdata.com/solutions/fintech/)
[Telecommunications](https://www.influxdata.com/solutions/by-industries/telecommunications/)
[Explore All](https://www.influxdata.com/solutions/)
 Siemens Energy Scales Global BESS Operations
[See How](https://www.influxdata.com/solutions/battery-energy-storage-systems/#siemens)
[Developers]()
LEARN
[Developer Resources](https://www.influxdata.com/_resources/)
[Blog](https://www.influxdata.com/blog/)
[Webinars](https://www.influxdata.com/_resources/?pg=1&ct=webinar)
[Customers](https://www.influxdata.com/customers/)
[Support](https://support.influxdata.com/s/)
[Partners](https://www.influxdata.com/partners/)
BUILD
[Downloads Hub](https://www.influxdata.com/downloads/)
[Developers](https://www.influxdata.com/developers/)
[Documentation](https://docs.influxdata.com/)
[Integrations](https://www.influxdata.com/products/integrations/)
[AWS](https://www.influxdata.com/influxdb-cloud-on-aws/)
[CONNECT](https://www.influxdata.com/products/influxdb-cloud/)
[InfluxDB University](https://www.influxdata.com/university/)
[Community](https://www.influxdata.com/community/)
[Live Events and Training](https://www.influxdata.com/events/)
LATEST RELEASES
## Get the latest InfluxDB 3 product updates, features
[Learn More](https://www.influxdata.com/products/influxdb3/)
[Pricing](https://www.influxdata.com/influxdb-pricing/)
[Contact Us](https://www.influxdata.com/contact-sales/)
[Sign In]()
[Log in to InfluxDB Cloud 2.0 or Cloud Serverless ](https://cloud2.influxdata.com/login)
[Log in to InfluxDB Enterprise 1.x ](https://portal.influxdata.com/users/sign_in)
[Log in to InfluxDB Cloud 1.x ](https://cloud.influxdata.com/)
[Start Now](https://www.influxdata.com/get-influxdb/)
[Products]()
INFLUXDB 3 PRODUCTS
Self-Managed
[InfluxDB 3 Enterprise NEW](https://www.influxdata.com/products/influxdb3-enterprise/)
[InfluxDB 3 Core (OSS) NEW](https://www.influxdata.com/products/influxdb/)
Fully Managed
[InfluxDB Cloud Serverless](https://www.influxdata.com/products/influxdb-cloud/serverless/)
[InfluxDB Cloud Dedicated](https://www.influxdata.com/products/influxdb-cloud/dedicated/)
Telegraf
[Telegraf Enterprise NEW](https://www.influxdata.com/products/telegraf-enterprise/)
[Telegraf (OSS)](https://www.influxdata.com/time-series-platform/telegraf/)
RESOURCES
[ Platform Overview](https://www.influxdata.com/products/influxdb-overview/)
[ Client Libraries](https://www.influxdata.com/products/integrations/#tab2)
[ Explore All Integrations](https://www.influxdata.com/products/integrations/)
[Use Cases]()
USE CASES
[Network & Infrastructure Monitoring](https://www.influxdata.com/solutions/network-monitoring/)
[IoT Analytics & Predictive Maintenance](https://www.influxdata.com/solutions/iot-analytics-and-predictive-maintenance/)
[Machine Learning & AI](https://www.influxdata.com/ml-ai-workloads/)
[Modern Data Historian](https://www.influxdata.com/historian-workloads/)
INDUSTRIES
[Manufacturing & IIoT](https://www.influxdata.com/solutions/iot-analytics-and-predictive-maintenance/)
[Aerospace](https://www.influxdata.com/solutions/by-industries/aerospace-and-satellites/)
[Energy & Utilities](https://www.influxdata.com/solutions/by-industries/energy-and-utilities/)
[Financial Services](https://www.influxdata.com/solutions/fintech/)
[Telecommunications](https://www.influxdata.com/solutions/by-industries/telecommunications/)
[Explore All](https://www.influxdata.com/solutions/)
Siemens Energy Scales Global BESS Operations
[See How](https://www.influxdata.com/solutions/battery-energy-storage-systems/#siemens)
[Developers]()
LEARN
[Developer Resources](https://www.influxdata.com/_resources/)
[Blog](https://www.influxdata.com/blog/)
[Webinars](https://www.influxdata.com/_resources/?pg=1&ct=webinar)
[Customers](https://www.influxdata.com/customers/)
[Support](https://support.influxdata.com/s/)
[Partners](https://www.influxdata.com/partners/)
BUILD
[Downloads Hub](https://www.influxdata.com/downloads/)
[Developers](https://www.influxdata.com/developers/)
[Documentation](https://docs.influxdata.com/)
[Integrations](https://www.influxdata.com/products/integrations/)
[AWS](https://www.influxdata.com/influxdb-cloud-on-aws/)
CONNECT
[InfluxDB University](https://www.influxdata.com/university/)
[Community](https://www.influxdata.com/community/)
[Live Events and Training](https://www.influxdata.com/events/)
LATEST RELEASES
Get the latest InfluxDB 3 product updates, features
[Learn More](https://www.influxdata.com/products/influxdb3/)
[Pricing](https://www.influxdata.com/influxdb-pricing/)
[Start Now](https://www.influxdata.com/get-influxdb/)
[Sign In]()
[Log in to InfluxDB Cloud 2.0 or Cloud Serverless ](https://cloud2.influxdata.com/login)
[Log in to InfluxDB Enterprise ](https://portal.influxdata.com/users/sign_in)
[Log in to InfluxDB Cloud 1.x ](https://cloud.influxdata.com/)
[Contact Us](https://www.influxdata.com/contact-sales/)
[Back to blog](https://www.influxdata.com/blog)
#### Navigate to:
- [What is exponential smoothing?](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading0)
- [Types of exponential smoothing](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading1)
- [When to use exponential smoothing](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading2)
- [Why is exponential smoothing popular?](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading3)
- [How to perform exponential smoothing](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading4)
- [Exponential smoothing in Python](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading5)
- [Wrapping up](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading6)
#### Stop flying blind
Be the first to get the latest tutorials, trainings, and all things InfluxDB, Telegraf, and more—right in your inbox.
[Get Updates](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#myModal1)
### Get Updates
# Exponential Smoothing: A Guide to Getting Started
### By [Community](https://www.influxdata.com/blog/author/community-influxdata) [Developer](https://www.influxdata.com/blog/category/tech) Feb 03, 2026
#### Navigate to:
- [What is exponential smoothing?](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading0)
- [Types of exponential smoothing](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading1)
- [When to use exponential smoothing](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading2)
- [Why is exponential smoothing popular?](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading3)
- [How to perform exponential smoothing](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading4)
- [Exponential smoothing in Python](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading5)
- [Wrapping up](https://www.influxdata.com/blog/exponential-smoothing-beginners-guide/#heading6)
Exponential smoothing is a time series forecasting method that uses an exponentially weighted average of past observations to predict future values. In other words, it assigns greater weight to recent observations than to older ones, allowing the forecast to adapt to changing data trends.
In this post, we’ll look at the basics of exponential smoothing, including how it works, its types, and how to implement it in Python.
## What is exponential smoothing?
Exponential smoothing forecasts [time series data](https://www.influxdata.com/what-is-time-series-data/) by smoothing out fluctuations in the data. The technique was first introduced by Robert Goodell Brown in 1956 and then further developed by Charles Holt in 1957. It has since become one of the most widely used methods for forecasting.
The basic idea behind exponential smoothing is to give more weight to recent observations by assigning weights to each observation that decrease exponentially with age. Weights are then used to calculate a weighted moving average of the data, which is used to forecast the next period.
Exponential smoothing assumes that future values of a time series are a function of its past values. The method works well when the time series has a trend and/or a seasonal component, but it can also be used for stationary data (i.e., without trend or seasonality).
## Types of exponential smoothing
There are several types of exponential smoothing methods, each with its own formulae and assumptions. The most commonly used methods include:
#### 1\. Simple Exponential Smoothing
Simple exponential smoothing (SES), also known as single exponential smoothing, is its simplest form. It assumes that the time series has no trend or seasonality.
The forecast for the next period is based on the weighted average of the previous observation and the forecast for the current period.
The formula for simple exponential smoothing is:
s(t) = αx(t) + (1-α)st-1
where
- s(t) is the smoothed value at time t,
- x(t) is the observed value at time t,
- st-1 is the previous smoothed statistic, and
- α is the smoothing parameter between 0 and 1.
The smoothing parameter α controls the weight given to the current observation and the previous forecast.
A high value of α gives more weight to the current observation, while a low value of α gives more weight to the previous forecast.
#### 2\. Holt’s Linear Exponential Smoothing
Holt’s linear exponential smoothing, also known as double exponential smoothing, is used to forecast time series data that has a linear trend but no seasonal pattern. This method uses two smoothing parameters: α for the level (the intercept) and β for the trend.
The formulas for double exponential smoothing are:
st = αxt + (1 – α)(st-1 + bt-1)
βt = β(st – st-1) + (1 – β)bt-1
where
- bt is the slope and best estimate of the trend at time t,
- α is the smoothing parameter of data (0 \< α \< 1), and
- β is the smoothing parameter for the trend (0 \< β \< 1).
Holt’s method is more accurate than SES for time series data with a trend, but it doesn’t work well for time series data with a seasonal component.
#### 3\. Holt-Winters’ Exponential Smoothing
Holt-Winters’ exponential smoothing, also referred to as triple exponential smoothing, is used to forecast time series data with both a trend and a seasonal component. It uses three smoothing parameters: α for the level (the intercept), β for the trend, and γ for the seasonal component.
The triple exponential smoothing formulas are given by:

where:
- st = smoothed statistic; it’s the simple weighted average of current observation Yt
- st-1 = previous smoothed statistic
- α = smoothing factor of data (0 \< α \< 1)
- t = time period
- bt = best estimate of a trend at time t
- β = trend smoothing factor (0 \< β \<1)
- ct = seasonal component at time t
- Îł = seasonal smoothing parameter (0 \< Îł \< 1)
Holt-Winters’ method is the most accurate of the three methods, but it’s also the most complex, requiring more data and computation than the other methods.
## When to use exponential smoothing
Exponential smoothing is most useful for time series data that has a consistent trend, seasonality, and random fluctuations.
It’s particularly useful for short to medium-term forecasting of business metrics such as sales, revenue, and customer traffic. It’s also useful for monitoring and predicting seasonal changes in industries such as tourism, agriculture, and energy.
Here are some other common situations where exponential smoothing can be useful:
- **Time series forecasting** — One of the most common applications of exponential smoothing is in time series forecasting. If you have historical data for a particular variable over time, such as sales or website traffic, you can use exponential smoothing to forecast the future values of that variable.
- **Inventory management** — Exponential smoothing can be used to forecast demand for products or services, which can be helpful in inventory management. By forecasting demand, businesses can make sure they have enough inventory on hand to meet customer needs without overstocking.
- **Finance** — It can be used in finance to forecast stock prices, interest rates, and other financial variables. This can be helpful for investors who are trying to make informed decisions about buying and selling stocks or other financial instruments.
- **Marketing** — It’s also used to forecast the effectiveness of marketing campaigns. By tracking past campaign results and using exponential smoothing to forecast future performance, marketers can optimize their campaigns to achieve the best possible results.
## Why is exponential smoothing popular?
Exponential smoothing is among the most widely used [time series forecasting methods](https://www.influxdata.com/time-series-forecasting-methods/) due to its simplicity and effectiveness.
Unlike other methods, exponential smoothing can adapt to changes in data trends. It also provides accurate predictions by assigning different weights to different time periods based on their importance.
Exponential smoothing is computationally efficient, making it ideal for large datasets. Additionally, it’s widely used in business forecasting, providing accurate, reliable forecasts across a range of applications, including demand, sales, and financial forecasting.
## How to perform exponential smoothing
Performing exponential smoothing begins with understanding your data’s structure.
First, examine your time series to identify whether it contains trends, seasonality, or neither. This analysis will guide you in selecting the right exponential smoothing method: SES works best for stationary data, Holt’s method handles data with trends, and Holt-Winters’ method addresses both trends and seasonal patterns.
Once you’ve chosen your method, the implementation is straightforward. Modern statistical software and libraries can automatically optimize the smoothing parameters (α, β, and γ) by finding values that minimize forecast errors.
After fitting the model to your historical data, you’ll have a trained forecasting tool ready to generate predictions for future time periods.
Now, let’s put this into practice by implementing exponential smoothing using Python, one of the most popular tools for time series analysis.
## Exponential smoothing in Python
Python has several libraries for exponential smoothing, including [Pandas](https://pandas.pydata.org/), [Statsmodels,](https://www.statsmodels.org/) and [Prophet](http://facebook.github.io/prophet/docs/quick_start.html). These libraries provide various functions and methods for implementing different types of exponential smoothing methods.
#### The Dataset
For this example, we’ll use the AirPassengers dataset, a time series dataset that contains the monthly number of airline passengers from 1949 to 1960. You can download the dataset from [this link](https://raw.githubusercontent.com/jbrownlee/Datasets/master/airline-passengers.csv).
#### Setting Up the Environment
To get started, we need to set up our environment. We’ll be using Python 3, so make sure it’s installed. Alternatively, you can use [Google Colab](https://colab.research.google.com/) and go straight to importing the libraries.
Next, install these libraries using pip:
```
pip install pandas matplotlib statsmodelsCopy
```
Once you’ve installed the necessary libraries, you can import them into your Python script:
```
Copy
```
#### Loading the Data
After setting up the environment, we can load the AirPassengers dataset into a pandas DataFrame using the read\_csv function:
```
data = pd.read_csv('airline-passengers.csv', parse_dates=['Month'], index_col='Month')Copy
```
We can then inspect the first few rows of the DataFrame using the head function:
```
print(data.head())Copy
```
This will output:

#### Visualizing the Data
Before we apply simple exponential smoothing to the data, let’s visualize it to get a better understanding of its properties. We can use the **plot** function of pandas to create a line plot of the data:
```
Copy
```
This will produce a plot of the number of passengers over time:

We can see that the number of passengers appears to be increasing, with some seasonality as well.
#### Performing SES
Now that we’ve loaded and visualized the data, we can perform simple exponential smoothing using the **SimpleExpSmoothing** function from the **statsmodels** library. Then, we’ll create an instance of the **SimpleExpSmoothing** class, passing in the data as an argument, and then fit the model to the data using the **fit** method:
```
Copy
```
This will calculate the smoothing parameters and fit the model to the data. The `optimized=True` parameter allows the model to find the best smoothing parameter (α) for your data.
#### Making Predictions
Finally, we can use the **forecast** method to predict future values of the time series, where the argument specifies the number of periods to forecast.
```
Copy
```
This will produce a forecast for the next six months:

Based on the forecast, we can assume that over the next six months, there will be approximately 432 airline passengers.
## Wrapping up
Exponential smoothing is a powerful method for time series forecasting that allows for accurate predictions of future values based on past observations. It’s a simple, efficient method that can be used for a wide range of time series data.
In this post, we provided a beginner’s guide to exponential smoothing, explaining the basics of the method, its types, and how to use it for forecasting. However, there are more advanced techniques and approaches to discover beyond the scope of this post.
If you’re interested in learning more, be sure to check out this [Python time series forecasting tutorial](https://www.influxdata.com/blog/python-time-series-forecasting-tutorial/). It’s a great resource that can help you deepen your understanding of this topic and take your forecasting skills to the next level with [InfluxDB](https://www.influxdata.com/get-influxdb/).
*This post was written by Israel Oyetunji. [Israel](https://twitter.com/israelmitolu) is a frontend developer with a knack for creating engaging UI and interactive experiences. He has proven experience developing consumer-focused websites using HTML, CSS, JavaScript, ReactJS, SASS, and relevant technologies. He loves writing about tech and creating how-to tutorials for developers.*
### Ready to get started?
With 1B+ downloads and counting, developers choose InfluxDB as the leading time series database.
[Get Open Source Updates](https://www.influxdata.com/products/influxdb3-public-alpha/) [Find the right product](https://www.influxdata.com/get-influxdb/)
## More in Developer
## [Node-RED Dashboard Tutorial](https://www.influxdata.com/blog/node-red-dashboard-tutorial)
[Learn more](https://www.influxdata.com/blog/node-red-dashboard-tutorial)
## [From Legacy Data Historians to a Modern, Open Industrial Data Stack](https://www.influxdata.com/blog/modern-industrial-stack-influxdb)
[Learn more](https://www.influxdata.com/blog/modern-industrial-stack-influxdb)
## [How to Use Pandas Time Index: A Tutorial with Examples](https://www.influxdata.com/blog/pandas-time-index-tutorial)
[Learn more](https://www.influxdata.com/blog/pandas-time-index-tutorial)
## [How Network Operations Teams Use InfluxDB to Solve Network Monitoring Gaps](https://www.influxdata.com/blog/solve-mns-gaps-influxdb)
[Learn more](https://www.influxdata.com/blog/solve-mns-gaps-influxdb)
## [Building with the InfluxDB 3 MCP Server & Claude](https://www.influxdata.com/blog/influxdb-3-mcp-server-claude)
[Learn more](https://www.influxdata.com/blog/influxdb-3-mcp-server-claude)
## [Getting Started with InfluxDB and Pandas: A Beginner's Guide](https://www.influxdata.com/blog/getting-started-with-influxdb-and-pandas)
[Learn more](https://www.influxdata.com/blog/getting-started-with-influxdb-and-pandas)
[InfluxDB 3 Core & Enterprise GA: The Next Generation Time Series Platform for Developers is Here Read Blog](https://www.influxdata.com/blog/influxdb-3-oss-ga/)
[Data Lakes and Warehouses Learn More](https://www.influxdata.com/features/open-data-access/)
[InfluxDB for Industrial IoT: A Live Demonstration Watch Demo](https://www.influxdata.com/resources/influxdb-for-iot-live-demonstration/)
[Time Series Databases Explained Learn More](https://www.influxdata.com/time-series-database/)
[Network Monitoring See Solutions](https://www.influxdata.com/solutions/network-monitoring/)
[Time Series Data Analysis: Definitions and Best Techniques in 2025 Read Tech Paper](https://www.influxdata.com/what-is-time-series-data/)

##### Product & Solutions
- [InfluxDB](https://www.influxdata.com/get-influxdb/)
- [InfluxDB 3 Enterprise](https://www.influxdata.com/products/influxdb3-enterprise/)
- [InfluxDB Cloud Serverless](https://www.influxdata.com/products/influxdb-cloud/serverless/)
- [InfluxDB Cloud Dedicated](https://www.influxdata.com/products/influxdb-cloud/dedicated/)
- [Telegraf Enterprise](https://www.influxdata.com/products/telegraf-enterprise/)
- [Integrations](https://www.influxdata.com/products/integrations/)
- [Data Lake / Warehouse](https://www.influxdata.com/glossary/data-warehouse/)
- [Data Collector](https://www.influxdata.com/time-series-platform/telegraf/)
- [Pricing](https://www.influxdata.com/influxdb-pricing/)
- [Use Cases](https://www.influxdata.com/solutions/)
- [Time Series Data](https://www.influxdata.com/what-is-time-series-data/)
- [Time Series Database](https://www.influxdata.com/time-series-database/)
- [Time Series Forecasting](https://www.influxdata.com/time-series-forecasting-methods/)
- [Data Warehousing](https://www.influxdata.com/glossary/data-warehouse/)
- [Network Monitoring](https://www.influxdata.com/solutions/network-monitoring/)
##### Developers
- [Guides](https://www.influxdata.com/_resources/)
- [Blog](https://www.influxdata.com/blog/)
- [Customers](https://www.influxdata.com/customers/)
- [Support](https://support.influxdata.com/)
- [Webinars](https://www.influxdata.com/_resources/)
- [Documentation](https://docs.influxdata.com/)
- [Events & Live Training](https://www.influxdata.com/events/)
- [InfluxDB University](https://university.influxdata.com/)
- [Community Forum](https://community.influxdata.com/)
- [InfluxDB 3 Core (OSS)](https://www.influxdata.com/products/influxdb/)
- [Telegraf](https://www.influxdata.com/time-series-platform/telegraf/)
- [AWS](https://www.influxdata.com/influxdb-cloud-on-aws/)
- [Product Integrations](https://www.influxdata.com/products/integrations/)
- [Telegraf Inputs](https://www.influxdata.com/time-series-platform/telegraf/telegraf-input-plugin/)
- [Telegraf Outputs](https://www.influxdata.com/time-series-platform/telegraf/telegraf-output-plugin/)
- [Glossary](https://www.influxdata.com/glossary/)
##### Company
- [About](https://www.influxdata.com/about/)
- [Careers](https://www.influxdata.com/careers/)
- [Partners](https://www.influxdata.com/partners/)
- [Newsroom](https://www.influxdata.com/newsroom/)
- [Contact Us](https://www.influxdata.com/general-inquiries/)
- [Customers](https://www.influxdata.com/customers/)
548 Market St, PMB 77953
San Francisco, California 94104
##### Follow Us
[](https://twitter.com/influxdb)
© 2026 InfluxData Inc. All Rights Reserved.
[Legal](https://www.influxdata.com/legal/%20) [Security](https://www.influxdata.com/security/%20) [Cookie Policy](https://www.influxdata.com/legal/cookie-policy/) [Comparison](https://www.influxdata.com/comparison/) |
| Readable Markdown | ### By [Developer](https://www.influxdata.com/blog/category/tech) Feb 03, 2026
Exponential smoothing is a time series forecasting method that uses an exponentially weighted average of past observations to predict future values. In other words, it assigns greater weight to recent observations than to older ones, allowing the forecast to adapt to changing data trends.
In this post, we’ll look at the basics of exponential smoothing, including how it works, its types, and how to implement it in Python.
## What is exponential smoothing?
Exponential smoothing forecasts [time series data](https://www.influxdata.com/what-is-time-series-data/) by smoothing out fluctuations in the data. The technique was first introduced by Robert Goodell Brown in 1956 and then further developed by Charles Holt in 1957. It has since become one of the most widely used methods for forecasting.
The basic idea behind exponential smoothing is to give more weight to recent observations by assigning weights to each observation that decrease exponentially with age. Weights are then used to calculate a weighted moving average of the data, which is used to forecast the next period.
Exponential smoothing assumes that future values of a time series are a function of its past values. The method works well when the time series has a trend and/or a seasonal component, but it can also be used for stationary data (i.e., without trend or seasonality).
## Types of exponential smoothing
There are several types of exponential smoothing methods, each with its own formulae and assumptions. The most commonly used methods include:
#### 1\. Simple Exponential Smoothing
Simple exponential smoothing (SES), also known as single exponential smoothing, is its simplest form. It assumes that the time series has no trend or seasonality.
The forecast for the next period is based on the weighted average of the previous observation and the forecast for the current period.
The formula for simple exponential smoothing is:
s(t) = αx(t) + (1-α)st-1
where
- s(t) is the smoothed value at time t,
- x(t) is the observed value at time t,
- st-1 is the previous smoothed statistic, and
- α is the smoothing parameter between 0 and 1.
The smoothing parameter α controls the weight given to the current observation and the previous forecast.
A high value of α gives more weight to the current observation, while a low value of α gives more weight to the previous forecast.
#### 2\. Holt’s Linear Exponential Smoothing
Holt’s linear exponential smoothing, also known as double exponential smoothing, is used to forecast time series data that has a linear trend but no seasonal pattern. This method uses two smoothing parameters: α for the level (the intercept) and β for the trend.
The formulas for double exponential smoothing are:
st = αxt + (1 – α)(st-1 + bt-1)
βt = β(st – st-1) + (1 – β)bt-1
where
- bt is the slope and best estimate of the trend at time t,
- α is the smoothing parameter of data (0 \< α \< 1), and
- β is the smoothing parameter for the trend (0 \< β \< 1).
Holt’s method is more accurate than SES for time series data with a trend, but it doesn’t work well for time series data with a seasonal component.
#### 3\. Holt-Winters’ Exponential Smoothing
Holt-Winters’ exponential smoothing, also referred to as triple exponential smoothing, is used to forecast time series data with both a trend and a seasonal component. It uses three smoothing parameters: α for the level (the intercept), β for the trend, and γ for the seasonal component.
The triple exponential smoothing formulas are given by:

where:
- st = smoothed statistic; it’s the simple weighted average of current observation Yt
- st-1 = previous smoothed statistic
- α = smoothing factor of data (0 \< α \< 1)
- t = time period
- bt = best estimate of a trend at time t
- β = trend smoothing factor (0 \< β \<1)
- ct = seasonal component at time t
- Îł = seasonal smoothing parameter (0 \< Îł \< 1)
Holt-Winters’ method is the most accurate of the three methods, but it’s also the most complex, requiring more data and computation than the other methods.
## When to use exponential smoothing
Exponential smoothing is most useful for time series data that has a consistent trend, seasonality, and random fluctuations.
It’s particularly useful for short to medium-term forecasting of business metrics such as sales, revenue, and customer traffic. It’s also useful for monitoring and predicting seasonal changes in industries such as tourism, agriculture, and energy.
Here are some other common situations where exponential smoothing can be useful:
- **Time series forecasting** — One of the most common applications of exponential smoothing is in time series forecasting. If you have historical data for a particular variable over time, such as sales or website traffic, you can use exponential smoothing to forecast the future values of that variable.
- **Inventory management** — Exponential smoothing can be used to forecast demand for products or services, which can be helpful in inventory management. By forecasting demand, businesses can make sure they have enough inventory on hand to meet customer needs without overstocking.
- **Finance** — It can be used in finance to forecast stock prices, interest rates, and other financial variables. This can be helpful for investors who are trying to make informed decisions about buying and selling stocks or other financial instruments.
- **Marketing** — It’s also used to forecast the effectiveness of marketing campaigns. By tracking past campaign results and using exponential smoothing to forecast future performance, marketers can optimize their campaigns to achieve the best possible results.
## Why is exponential smoothing popular?
Exponential smoothing is among the most widely used [time series forecasting methods](https://www.influxdata.com/time-series-forecasting-methods/) due to its simplicity and effectiveness.
Unlike other methods, exponential smoothing can adapt to changes in data trends. It also provides accurate predictions by assigning different weights to different time periods based on their importance.
Exponential smoothing is computationally efficient, making it ideal for large datasets. Additionally, it’s widely used in business forecasting, providing accurate, reliable forecasts across a range of applications, including demand, sales, and financial forecasting.
## How to perform exponential smoothing
Performing exponential smoothing begins with understanding your data’s structure.
First, examine your time series to identify whether it contains trends, seasonality, or neither. This analysis will guide you in selecting the right exponential smoothing method: SES works best for stationary data, Holt’s method handles data with trends, and Holt-Winters’ method addresses both trends and seasonal patterns.
Once you’ve chosen your method, the implementation is straightforward. Modern statistical software and libraries can automatically optimize the smoothing parameters (α, β, and γ) by finding values that minimize forecast errors.
After fitting the model to your historical data, you’ll have a trained forecasting tool ready to generate predictions for future time periods.
Now, let’s put this into practice by implementing exponential smoothing using Python, one of the most popular tools for time series analysis.
## Exponential smoothing in Python
Python has several libraries for exponential smoothing, including [Pandas](https://pandas.pydata.org/), [Statsmodels,](https://www.statsmodels.org/) and [Prophet](http://facebook.github.io/prophet/docs/quick_start.html). These libraries provide various functions and methods for implementing different types of exponential smoothing methods.
#### The Dataset
For this example, we’ll use the AirPassengers dataset, a time series dataset that contains the monthly number of airline passengers from 1949 to 1960. You can download the dataset from [this link](https://raw.githubusercontent.com/jbrownlee/Datasets/master/airline-passengers.csv).
#### Setting Up the Environment
To get started, we need to set up our environment. We’ll be using Python 3, so make sure it’s installed. Alternatively, you can use [Google Colab](https://colab.research.google.com/) and go straight to importing the libraries.
Next, install these libraries using pip:
```
pip install pandas matplotlib statsmodels
```
Once you’ve installed the necessary libraries, you can import them into your Python script:
```
import pandas as pd
import matplotlib.pyplot as plt
from statsmodels.tsa.api import SimpleExpSmoothing
```
#### Loading the Data
After setting up the environment, we can load the AirPassengers dataset into a pandas DataFrame using the read\_csv function:
```
data = pd.read_csv('airline-passengers.csv', parse_dates=['Month'], index_col='Month')
```
We can then inspect the first few rows of the DataFrame using the head function:
```
print(data.head())
```
This will output:

#### Visualizing the Data
Before we apply simple exponential smoothing to the data, let’s visualize it to get a better understanding of its properties. We can use the **plot** function of pandas to create a line plot of the data:
```
plt.plot(data)
plt.xlabel('Year')
plt.ylabel('Number of Passengers')
plt.show()
```
This will produce a plot of the number of passengers over time:

We can see that the number of passengers appears to be increasing, with some seasonality as well.
#### Performing SES
Now that we’ve loaded and visualized the data, we can perform simple exponential smoothing using the **SimpleExpSmoothing** function from the **statsmodels** library. Then, we’ll create an instance of the **SimpleExpSmoothing** class, passing in the data as an argument, and then fit the model to the data using the **fit** method:
```
model = SimpleExpSmoothing(data)
model_fit = model.fit(optimized=True)
print(model_fit.summary())
```
This will calculate the smoothing parameters and fit the model to the data. The `optimized=True` parameter allows the model to find the best smoothing parameter (α) for your data.
#### Making Predictions
Finally, we can use the **forecast** method to predict future values of the time series, where the argument specifies the number of periods to forecast.
```
forecast = model_fit.forecast(6)
print(forecast)
```
This will produce a forecast for the next six months:

Based on the forecast, we can assume that over the next six months, there will be approximately 432 airline passengers.
## Wrapping up
Exponential smoothing is a powerful method for time series forecasting that allows for accurate predictions of future values based on past observations. It’s a simple, efficient method that can be used for a wide range of time series data.
In this post, we provided a beginner’s guide to exponential smoothing, explaining the basics of the method, its types, and how to use it for forecasting. However, there are more advanced techniques and approaches to discover beyond the scope of this post.
If you’re interested in learning more, be sure to check out this [Python time series forecasting tutorial](https://www.influxdata.com/blog/python-time-series-forecasting-tutorial/). It’s a great resource that can help you deepen your understanding of this topic and take your forecasting skills to the next level with [InfluxDB](https://www.influxdata.com/get-influxdb/).
*This post was written by Israel Oyetunji. [Israel](https://twitter.com/israelmitolu) is a frontend developer with a knack for creating engaging UI and interactive experiences. He has proven experience developing consumer-focused websites using HTML, CSS, JavaScript, ReactJS, SASS, and relevant technologies. He loves writing about tech and creating how-to tutorials for developers.* |
| Shard | 165 (laksa) |
| Root Hash | 7011655284375445565 |
| Unparsed URL | com,influxdata!www,/blog/exponential-smoothing-beginners-guide/ s443 |