ONLYOFFICE is a powerful, open-source, and free-of-charge alternative to Microsoft Office, offering a comprehensive suite of similar functionalities. One of the key characteristics of ONLYOFFICE is its seamless integration with Microsoft file formats, as it was designed from the outset to ensure perfect compatibility with Microsoft Office. The ONLYOFFICE counterpart to Microsoft Excel is called Spreadsheet. In this article, we will take a look into the future by examining data from the past. I will explain how to use the different related Forecast formulas in the Spreadsheet application: FORECAST, FORECAST.ETS, FORECAST.ETS.CONFINT, FORECAST.ETS.SEASONALITY, FORECAST.ETS.STAT and FORECAST.LINEAR.
Content
- Introduction
- FORECAST.LINEAR or FORECAST
- FORECAST.ETS
- FORECAST.ETS.SEASONALITY
- FORECAST.ETS.CONFINT
- FORECAST.ETS.STAT
- Final words
Note: This article is part of a series aimed at clarifying various functions and formulas in ONLYOFFICE. Many people, both personal and professional users of office applications, are unaware that Microsoft Office isn’t the only reputable office software provider. With this series, I want to demonstrate that alternatives like ONLYOFFICE are available, offering at least the same level of functionality, and are provided free of charge.
Introduction
Forecasting is one of the many functions available in ONLYOFFICE that can help you in your thinking process and make better, more supported decisions based on your past data. Whether you are working in domains as business, finance, or research, being able to estimate future values with a bit of confidence can make a big difference in how you plan and operate.
ONLYOFFICE Spreadsheet includes several forecasting functions that work similarly to those in Microsoft Excel. So if you’re switching over or just exploring new tools, I think you will feel right at home. In this article, I will guide you through the different forecasting formulas available in ONLYOFFICE and explain how to use them based on some clear use cases.
In ONLYOFFICE, we can find the following forecasting functions:
- FORECAST.LINEAR or FORECAST: can be used if you already know there is no seasonality pattern in your data.
- FORECAST.ETS: can be used to understand and predict specific patterns if there is seasonality in your data.
- FORECAST.ETS.SEASONALITY: can be used to understand and predict specific patterns if there is seasonality in your data.
- FORECAST.ETS.CONFINT: is to get the confidence interval to see how confident the forecast is.
- FORECAST.ETS.STAT: is to evaluate the accuracy of your predictions.
With these different forecasting functions, it is possible to:
- Make predictions based on historical data
- Spot trends and seasonal patterns
- Measure uncertainty using statistical tools
- Add forward-looking insights to your reports and dashboards
These powerful features in ONLYOFFICE are especially useful if you’re dealing with budgets, managing stock levels, building scientific models, or analyzing performance data. Let’s dive in and see how forecasting in ONLYOFFICE can support your work.
FORECAST and FORECAST.LINEAR
Let’s start with the two most basic functions: FORECAST and FORECAST.LINEAR. These are the simplest functions, from the perspective of use, usability, data requirements, and results. Based on existing data, both functions try to predict future values following a linear trend based on your existing dataset. These two formulas are doing the same, but FORECAST.LINEAR is a newer formula with improved compatibility. So, from here we focus on FORECAST.LINEAR.
Formula syntax:
These functions look like below:
FORECAST(x, known_y’s, known_x’s)
FORECAST.LINEAR(x, known_y’s, known_x’s)
- x: This is the data point for which you want to predict a future value. For example, the next month.
- known_y’s: This range represents the dependent values that you want to use for your prediction, for example, the sales data for the past 5 months.
- known_x’s: This range represents the independent values, for example, the previous months.
Assignment:
Suppose you’re a baker and have registered your monthly baguette sales data. Based on this data, you would like to estimate future sales for the next month.
Assignment: Determine the expected Sales for month 8.
| A | B | C | |
| 1 | Year | Month | Sales |
| 2 | 2025 | 1 | 86 |
| 3 | 2025 | 2 | 112 |
| 4 | 2025 | 3 | 96 |
| 5 | 2025 | 4 | 114 |
| 6 | 2025 | 5 | 121 |
| 7 | 2025 | 6 | 118 |
| 8 | 2025 | 7 | 129 |
| 9 | 2025 | 8 | ? |
Approach:
To predict the baguette sales for Month 8, we use the following formula in cell C9:
=FORECAST(B9,C2:C8,B2:B8)
Result:
The result of =FORECAST(B9,C2:C8,B2:B8) is 134.571 or 135 rounded off.
| A | B | C | Formula | |
| 1 | Year | Month | Sales | |
| 2 | 2025 | 1 | 86 | |
| 3 | 2025 | 2 | 112 | |
| 4 | 2025 | 3 | 96 | |
| 5 | 2025 | 4 | 114 | |
| 6 | 2025 | 5 | 121 | |
| 7 | 2025 | 6 | 118 | |
| 8 | 2025 | 7 | 129 | |
| 9 | 2025 | 8 | 135 | =FORECAST(B9,C2:C8,B2:B8) |
Timeline extension:
In the above example, you see that I used month 8 to predict the future sales. In B9, you can change the month to another value, like 9, 10, etc, and the predicted sales change accordingly.
You can also extend the months for the whole year and predict the sales for each month. But keep in mind that there are two ways to do this, and one of them has, in my opinion, some risks and should not be used.
Approach 1:
In this approach, we always keep using only the initial real sales data as a basis for the predictions, because these are the factual data. So, we only use the sales data from months 1 through 7 to predict the sales data for months 8 through 12.
| A | B | C | Formula | |
| 1 | Year | Month | Sales | |
| 2 | 2025 | 1 | 86 | |
| 3 | 2025 | 2 | 112 | |
| 4 | 2025 | 3 | 96 | |
| 5 | 2025 | 4 | 114 | |
| 6 | 2025 | 5 | 121 | |
| 7 | 2025 | 6 | 118 | |
| 8 | 2025 | 7 | 129 | |
| 9 | 2025 | 8 | 135 | =FORECAST(B9,C2:C8,B2:B8) |
| 10 | 2025 | 9 | 141 | =FORECAST(B10,C2:C8,B2:B8) |
| 11 | 2025 | 10 | 146 | =FORECAST(B11,C2:C8,B2:B8) |
| 12 | 2025 | 11 | 152 | =FORECAST(B12,C2:C8,B2:B8) |
| 13 | 2025 | 12 | 158 | =FORECAST(B13,C2:C8,B2:B8) |

Approach 2:
In this approach, we use the initial real sales data as a basis for the prediction of the following month, but we extend the data range with the previous predictions to predict the results for the following months. So for month 8, we use the factual data from months 1 through 7, for month 9, we use the factual data from months 1 through 7 plus the predicted data of month 8, and so on. The problem here is that you are using predicted data for new predictions, which makes the reliability doubtful at least.
| A | B | C | Formula | |
| 1 | Year | Month | Sales | |
| 2 | 2025 | 1 | 86 | |
| 3 | 2025 | 2 | 112 | |
| 4 | 2025 | 3 | 96 | |
| 5 | 2025 | 4 | 114 | |
| 6 | 2025 | 5 | 121 | |
| 7 | 2025 | 6 | 118 | |
| 8 | 2025 | 7 | 129 | |
| 9 | 2025 | 8 | 135 | =FORECAST(B9,C2:C8,B2:B8) |
| 10 | 2025 | 9 | 137 | =FORECAST(B10,C2:C9,B2:B9) |
| 11 | 2025 | 10 | 146 | =FORECAST(B11,C2:C10,B2:B10) |
| 12 | 2025 | 11 | 149 | =FORECAST(B12,C2:C11,B2:B11) |
| 13 | 2025 | 12 | 155 | =FORECAST(B13,C2:C12,B2:B12) |
FORECAST.ETS
Now we’re getting into a bit more fancy territory. FORECAST.ETS is based on Exponential Triple Smoothing (ETS), which is suitable for data characterized by seasonality, i.e., data patterns that repeat over time. Think about quarterly sales for your bakery that has a yearly peak in the fourth quarter because of events like Christmas and New Year. This function can automatically detect seasonality, or you can specify it yourself.
Formula syntax:
This function looks like this:
FORECAST.ETS(target_date, values, timeline, [seasonality], [data_completion], [aggregation])
- target_date: This is the data point for which you want to predict a future value. For example, the next quarter.
- values: This range represents the dependent historical values that you want to use for your prediction. For example, the sales data for the past 8 quarters.
- timeline: This range represents the time indicators corresponding to these values. For example, the previous 8 quarters.
The following components are optional, but can help to fine-tune your analysis:
- [seasonality]: This defines the length of the seasonal cycle in your data.
- empty or 1: the seasonality is detected automatically.
- 0: no seasonality, so the assumption is linear.
- 2 or more: used for the length of the seasonal pattern.
- [data_completion]: This helps to process missing data points in the timeline data range.
- empty or 1: missing points are calculated as the average of the neighbouring points.
- 0: Missing points are treated as zero values.
- [aggregation]: Here we have the following options:
- 1 or empty = AVERAGE, 2 = COUNT, 3 = COUNTA, 4 = MAX, 5 = MEDIAN, 6 = MIN, 7 = SUM
Assignment:
Suppose you’re a baker and have registered your quarterly Red Velvet cake sales data. Based on this data, you would like to estimate future sales for the next 4 quarters. It should take into account past seasonality patterns, like the clear extra sales in the fourth quarter of every past year.
Assignment: Determine the expected Sales per quarter for 2026.
| A | B | |
| 1 | Quarter | Sales |
| 2 | March-24 | 253 |
| 3 | June-24 | 267 |
| 4 | September-24 | 274 |
| 5 | December-24 | 367 |
| 6 | March-25 | 266 |
| 7 | June-25 | 265 |
| 8 | September-25 | 277 |
| 9 | December-25 | 388 |
| 10 | March-26 | ? |
| 11 | June-26 | ? |
| 12 | September-26 | ? |
| 13 | December-26 | ? |
Approach:
Like in the section on FORECAST and FORECAST.LINEAR, we have two approaches: use only the real historical data, or also use the predicted data as input for follow-up predictions. Here, I use the approach based on only the factual data of 2024 and 2025.
To predict the quarterly Red Velvet cake sales for all quarters in 2026, we use the following formulas:
| A | B | Formula | |
| 1 | Quarter | Sales | |
| 2 | March-24 | 253 | |
| 3 | June-24 | 267 | |
| 4 | September-24 | 274 | |
| 5 | December-24 | 367 | |
| 6 | March-25 | 266 | |
| 7 | June-25 | 265 | |
| 8 | September-25 | 277 | |
| 9 | December-25 | 388 | |
| 10 | March-26 | 275 | =FORECAST.ETS(A10,B2:B9,A2:A9) |
| 11 | June-26 | 285 | =FORECAST.ETS(A11,B2:B9,A2:A9) |
| 12 | September-26 | 292 | =FORECAST.ETS(A12,B2:B9,A2:A9) |
| 13 | December-26 | 385 | =FORECAST.ETS(A13,B2:B9,A2:A9) |

Here, you see clearly that the previous data, including seasonality, was taken into account for the predictions.
FORECAST.ETS.SEASONALITY
In the previous section, we tried to predict the future, including seasonal patterns. In this section, we will find out the length of the repetitive pattern.
Formula syntax:
This function looks like this:
FORECAST.ETS.SEASONALITY(values, timeline, [data_completion], [aggregation])
- values: This range represents the dependent historical values that you want to use for your prediction. For example, the sales data for the past 8 quarters.
- timeline: This range represents the time indicators corresponding to these values. For example, the previous 8 quarters.
The following components are optional, but can help to fine-tune your analysis:
- [data_completion]: This helps to process missing data points in the timeline data range.
- empty or 1: missing points are calculated as the average of the neighbouring points.
- 0: Missing points are treated as zero values.
- [aggregation]: Here we have the following options:
- 1 or empty = AVERAGE, 2 = COUNT, 3 = COUNTA, 4 = MAX, 5 = MEDIAN, 6 = MIN, 7 = SUM
Assignment:
Suppose you’re a baker and have registered your quarterly Red Velvet cake sales data. Based on this data, you already determined in the previous section with the help of the formula FORECAST.ETS, the estimated future sales for the next 4 quarters. Now you want to know what the actual seasonality is.
Approach:
To determine the seasonality based on the actual data, we use the following formula:
| A | B | Formula | |
| 1 | Quarter | Sales | |
| 2 | March-24 | 253 | |
| 3 | June-24 | 267 | |
| 4 | September-24 | 274 | |
| 5 | December-24 | 367 | |
| 6 | March-25 | 266 | |
| 7 | June-25 | 265 | |
| 8 | September-25 | 277 | |
| 9 | December-25 | 388 | |
| Seasonality | 4 | =FORECAST.ETS.SEASONALITY(B2:B9,A2:A9) |
The result is 4, which means in the context of our case that seasonality repeats itself every 4th quarter.
FORECAST.ETS.CONFINT
Now that we were able to make predictions and determine actual seasonality, we can also determine how confident ONLYOFFICE is about the forecast. This confidence outcome provides insights into the likelihood of your outcome.
For example, if your predicted value is 2760, and the confidence interval is 120, based on FORECAST.ETS.CONFINT with a confidence level of 0.95, the actual value is somewhere between 2640 and 2880 with 95% confidence.
Note: In my current setup, this FORECAST.ETS.CONFINT is not working. I opened an ONLYOFFICE Desktop Editors issue on the ONLYOFFICE GitHub page (https://github.com/ONLYOFFICE/DesktopEditors/issues/2103) to have it investigated. I tested the same in MS Excel, in which it worked as expected.
Formula syntax:
This function looks like below:
FORECAST.ETS.CONFINT(target_date, values, timeline, [confidence_level], [seasonality], [data_completion], [aggregation])
- target_date: This is the data point for which you want to predict a future value. For example, the next quarter.
- values: This range represents the dependent historical values that you want to use for your prediction. For example, the sales data for the past 8 quarters.
- timeline: This range represents the time indicators corresponding to these values. For example, the previous 8 quarters.
The following components are optional, but can help to fine-tune your analysis:
- [confidence_level]: This is your preferred level of confidence that you want to implement in the determination. The default is .95.
- [seasonality]: This defines the length of the seasonal cycle in your data.
- empty or 1: the seasonality is detected automatically.
- 0: no seasonality, so the assumption is linear.
- 2 or more: used for the length of the seasonal pattern.
- [data_completion]: This helps to process missing data points in the timeline data range.
- empty or 1: missing points are calculated as the average of the neighbouring points.
- 0: Missing points are treated as zero values.
- [aggregation]: Here we have the following options:
- 1 or empty = AVERAGE, 2 = COUNT, 3 = COUNTA, 4 = MAX, 5 = MEDIAN, 6 = MIN, 7 = SUM
Note: In my current setup, this FORECAST.ETS.CONFINT is not working. I opened an ONLYOFFICE Desktop Editors issue on the ONLYOFFICE GitHub page (https://github.com/ONLYOFFICE/DesktopEditors/issues/2103) to have it investigated. I tested the same in MS Excel, in which it worked as expected. I will work out an example when I have more clarity on what is wrong. I tried the same in the Snap, Flatpak, and DEB versions of ONLYOFFICE Docs as well as in the online version, but all gave the same unexpected behavior, with the result always equal to 0.00.
FORECAST.ETS.STAT
With the FORECAST.ETS.STAT formula, we can get some statistical insight into our prediction model based on 8 types of statistical approaches.
Formula syntax:
This function looks like this:
FORECAST.ETS.STAT(values, timeline, statistic_type, [seasonality], [data_completion], [aggregation])
- values: This range represents the dependent historical values that you want to use for your prediction. For example, the sales data for the past 8 quarters.
- timeline: This range represents the time indicators corresponding to these values. For example, the previous 8 quarters.
- statistic_type: This is a numeric value between 1 and 8 that specifies which type of statistic will be returned. The possible values are:
- 1: Alpha – This is the base value parameter that controls how much weight is given to recent data when calculating the baseline of the forecast. If your data changes quickly, a higher alpha gives more importance to recent values.
- 2: Beta – This is the trend value parameter. It determines how much the forecast accounts for trends over time. It is useful when your data shows a clear upward or downward trend.
- 3: Gamma – This is the seasonality value parameter. It measures how much seasonal patterns (like monthly or yearly cycles) affect the forecast. It is perfect for data with repeating patterns, like sales peaking in a certain month every year.
- 4: MASE – This stands for mean absolute scaled error. It is a measure of the accuracy of the forecast. It helps to evaluate how well the forecast performs compared to a simple average.
- 5: SMAPE stands for symmetric mean absolute percentage error. This is a metric to measure the accuracy based on percentage errors.
- 6: MAE stands for mean absolute error. It measures the accuracy of forecasts.
- 7: RMSE means root mean squared error. It is a measure of the differences between predicted and observed values. It is good for detecting large deviations in forecasts.
- 8: Step size. It is the interval between data points in the timeline (e.g., daily, monthly), which helps to understand the frequency of the data.
The following components are optional, but can help to fine-tune your analysis:
- [seasonality]: This defines the length of the seasonal cycle in your data.
- empty or 1: the seasonality is detected automatically.
- 0: no seasonality, so the assumption is linear.
- 2 or more: used for the length of the seasonal pattern.
- [data_completion]: This helps to process missing data points in the timeline data range.
- empty or 1: missing points are calculated as the average of the neighbouring points.
- 0: Missing points are treated as zero values.
- [aggregation]: Here we have the following options:
- 1 or empty = AVERAGE, 2 = COUNT, 3 = COUNTA, 4 = MAX, 5 = MEDIAN, 6 = MIN, 7 = SUM
Assignment:
In one of the examples earlier in this article, we looked at our bakery for which we had registered our quarterly Red Velvet cake sales data. Based on this data, we have estimated future sales for the next 4 quarters, taking into account past seasonality patterns. The results can be seen below, with the predictions in bold:
| A | B | |
| 1 | Quarter | Sales |
| 2 | March-24 | 253 |
| 3 | June-24 | 267 |
| 4 | September-24 | 274 |
| 5 | December-24 | 367 |
| 6 | March-25 | 266 |
| 7 | June-25 | 265 |
| 8 | September-25 | 277 |
| 9 | December-25 | 388 |
| 10 | March-26 | 275 |
| 11 | June-26 | 285 |
| 12 | September-26 | 292 |
| 13 | December-26 | 385 |
Now, let’s use all 8 of the statistical types on this data to have a better understanding of our data and predictions. Keep in mind that you only use the actual sales figures of 2024 and 2025, thus not the predicted sales figures for the year 2026.
Approach:
We have 8 types of statistics available, so let’s make them part of our overview.
| A | B | C | D | Formula | |
| 1 | Quarter | Sales | Statistic_type | Result | |
| 2 | March-24 | 253 | 1: Alpha | 0 | =FORECAST.ETS.STAT(B2:B9,A2:A9,1) |
| 3 | June-24 | 267 | 2: Beta | 0 | =FORECAST.ETS.STAT(B2:B9,A2:A9,2) |
| 4 | September-24 | 274 | 3: Gamma | 0 | =FORECAST.ETS.STAT(B2:B9,A2:A9,3) |
| 5 | December-24 | 367 | 4: MASE | 0.075824176 | =FORECAST.ETS.STAT(B2:B9,A2:A9,4) |
| 6 | March-25 | 266 | 5: SMAPE | 0.013197577 | =FORECAST.ETS.STAT(B2:B9,A2:A9,5) |
| 7 | June-25 | 265 | 6: MAE | 4.107142857 | =FORECAST.ETS.STAT(B2:B9,A2:A9,6) |
| 8 | September-25 | 277 | 7: RMSE | 6.532200461 | =FORECAST.ETS.STAT(B2:B9,A2:A9,7) |
| 9 | December-25 | 388 | 8: Step size | 3 | =FORECAST.ETS.STAT(B2:B9,A2:A9,8) |
So, what do these results mean relative to the actual historical data and the predictions based on it?
- 1: Alpha = 0 indicates that the more recent data in your data set had no weight compared to the weight of the older data when calculating the baseline of the forecast. A higher value means more weight for the more recent data points.
- 2: Beta = 0 indicates how much the forecast accounts for trends over time, in this case, none. It is useful when your data shows a clear upward or downward trend. A higher value means more weight for the more recent trend
- 3: Gamma = 0 indicates how seasonal patterns affected the forecast. A higher value means more weight for the more recent seasonal period.
- 4: MASE = 0.075824176 gives insight into the accuracy of the forecast. Lower MASE values (closer to 0) indicate higher accuracy.
- 5: SMAPE = 0.013197577 is a measure that shows the accuracy based on percentage errors. Lower SMAPE values (closer to 0) indicate higher accuracy.
- 6: MAE = 4.107142857 is a measure of the accuracy of the forecast. A lower MAE is a better forecast performance. In this case, our forecasted sales are off by €4.11 on average.
- 7: RMSE = 6.532200461 is a measure of the differences between predicted and observed values. This means our forecasted values deviate from actual values by €6.53 on average.
- 8: Step size = 3 is the interval between data points in the historical timeline; in our case, each step represents 3 months.
Final Thoughts
Forecasting in ONLYOFFICE Spreadsheet isn’t just for data experts—it’s for anyone who wants to plan and predict more smartly. Whether you’re organizing your household budget, tracking business trends, or reviewing past results, these functions help you look forward with confidence. With just a small but powerful set of related formulas, you can turn your historical data into useful predictions. ONLYOFFICE’s forecasting tools give you a clear view of what’s likely to happen in the future, so you can make better data-driven decisions today.
Transitioning from Microsoft Excel to ONLYOFFICE
This article is part of a growing series on ONLYOFFICE. With this website, I try to help and inspire people who are already using Linux and related applications, but also those who are switching from other platforms to Linux. As a switcher from Windows 10 to Linux, you are also looking into alternatives for applications that you were familiar with when running Windows.
One of these application types is an office suite, which at least includes support for sheets, text documents, and presentations. Many former Windows users have probably also used Microsoft’s Office suite. Many are also used to Microsoft Office in their daily work environment. However, Microsoft Office applications do not run natively under Linux, so novice Linux users often ask what comparable office alternatives are available for Linux. But many advanced Linux users also prefer office applications that feel familiar and also support perfect file exchange. An Office suite that comes very close is ONLYOFFICE.
Sources:
- Microsoft Support – FORECAST.ETS.STAT function
- Exceljet – FORECAST.ETS.STAT function
- ExcelMojo – FORECAST.ETS.STAT Excel Function
Have a look at my latest book on Linux, in Paperback or Kindle format.
For more info on my book click here.
When you want to buy the book click on the image below.




