---
title: "Use DOUBLE_EXPONENTIAL_SMOOTHING for Double Exponential Smoothed Value"
slug: "double-exponential-smoothing-function"
description: "Learn to use DOUBLE_EXPONENTIAL_SMOOTHING to compute double exponentially smoothed values across a ranking Dimension in Pigment."
updated: 2025-05-28T10:26:32Z
published: 2025-08-22T12:00:18Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://kb.pigment.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DOUBLE_EXPONENTIAL_SMOOTHING function

## Description

Computes a double exponentially smoothed version of the input Block over the ranking Dimension.

## Syntax

`DOUBLE_EXPONENTIAL_SMOOTHING(Input Block [, Ranking Dimension [, alpha, beta])`

## Arguments

| Argument | Type | Dimensions | Description |
| --- | --- | --- | --- |
| *Input Block* (required) | Number | Any Dimensions | This is the data source which will be smoothed. The Metric must be defined at least on the `Ranking Dimension` Dimension. |
| *Ranking Dimension* (optional) | Dimension | NA | This is a Dimension applied to the time series taken in the `Input Block`. This is optional if it’s a datetime Dimension from the calendar. If this is not the case, then this is mandatory. It’s also mandatory if the Metric is defined on several time Dimensions. |
| *alpha* (optional) | Number | no Dimension | Data smoothing factor, with a value between 0 and 1. The default value is 0.25 . |
| *beta* (optional) | Number | no Dimension | Trend smoothing factor, with a value between 0 and 1. The default value is 0.1 . |

## Returns

| Type | Dimensions |
| --- | --- |
| Number | Dimensions of *Input Block* |

- Before the first non-blank value of the input Block, the function returns blank.
- Between the first and the last non-blank value of the input Block, the function returns the value of the F series computed with the following process:

![](https://cdn.document360.io/e47cfe35-dc28-40c7-a083-6cf003073d8e/Images/Documentation/22e54b65-8bb6-424c-9f04-6a4e2fe9e12c.png)

- After the last non-blank value of the input Block, the function returns the linear function result using the last slope and intercept computed.

![](https://cdn.document360.io/e47cfe35-dc28-40c7-a083-6cf003073d8e/Images/Documentation/b2343e29-8a4f-431b-adfc-1833eb34b403.png)

> Blank observations (in the input Block) between the first non-blank value and the last non-blank values are considered as 0.

## Examples

| Formula | Description |
| --- | --- |
| `DOUBLE_EXPONENTIAL_SMOOTHING(Actuals)` | Returned values are explained in the Returns section above. |
| `DOUBLE_EXPONENTIAL_SMOOTHING(Actuals, Month, 0.2, 0.2)` |

Example:

![](https://cdn.document360.io/e47cfe35-dc28-40c7-a083-6cf003073d8e/Images/Documentation/a4d35453-6a87-444d-8a1b-990b3d17c2a8.png)

## Using Exponential Smoothing as Forecasting Function

A common use case for using the DOUBLE_EXPONENTIAL_SMOOTHING function is to prepare a forecast. It’s a good method when your observation series shows a trend****and no specific seasonality.

In that case the last smoothed value of the series is a good estimation of the next forecasted value. To do so you just need to offset the result by 1 period with this syntax:

`DOUBLE_EXPONENTIAL_SMOOTHING(Observations)[SELECT: Month -1]`

![](https://cdn.document360.io/e47cfe35-dc28-40c7-a083-6cf003073d8e/Images/Documentation/55f92640-de9a-468f-960b-4ac619c2b002.png)

## See also

Excel: no equivalent

Related articles: [SIMPLE_EXPONENTIAL_SMOOTHING](/v1/docs/simple-exponential-smoothing-function)

References: [Wikipedia Exponential Smoothing](https://en.wikipedia.org/wiki/Exponential_smoothing)

<style> p[data-block-id] {font-size:1rem;} ul li p[data-block-id] {margin-bottom: 0;} ul[data-type="taskList"] li div p[data-block-id] {margin-bottom: 0;} ol li p[data-block-id] {margin-bottom: 0;} table tbody th p[data-block-id] { margin-bottom: 0;} blockquote p[data-block-id] {margin-bottom: 0 !important;} &nbsp;p[data-block-id]:empty::after {content: "\00A0";} </style>
