FORECAST.ETS.STAT in ONLYOFFICE Spreadsheet Editor
Read exponential-smoothing diagnostics with explicit statistic codes, a traceable clean-series control, error-metric units and source compatibility limitations.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: For timeline 1..8 and values 10,12,…,24, =FORECAST.ETS.STAT(B1:B8,A1:A8,8,0,1,1) has source-derived expectation 1, the timeline step. Error metrics for this exact nonseasonal control are 0.
Availability and evidence scope
- Introduced: Original introduction release is not established by the checked sources.
- Available: Listed in current unversioned ONLYOFFICE help, checked October 18, 2026.
- Implementation inspected: Official SDKJS v10.0.0.169, commit
3679e0375a758d7dc59d31337a45461be3525ed8. The snapshot does not prove identical behavior in every installed editor. - Retired or deprecated: These sources do not establish retirement or formal deprecation.
- Testing: Numerical examples are independent mathematical expectations, and implementation discrepancies are labeled source predictions. No ONLYOFFICE application or calculation-engine execution was performed.
The examples use English function names and commas. Use your locale’s argument separator if different. Retain full precision in formulas; round only the displayed result. The examples use clean, unique, equally spaced timeline columns. They establish only the stated mathematical and source-trace cases, not general forecast accuracy, application execution or cross-product numerical equivalence.
Syntax and statistic selectors
=FORECAST.ETS.STAT(values, timeline, statistic_type, [seasonality], [data_completion], [aggregation])
Three to six arguments are registered. values and timeline are paired historical observations. statistic_type selects one diagnostic. Seasonality defaults to 1 for automatic detection, 0 selects nonseasonal smoothing, and an integer at least 2 specifies a cycle length in samples. Completion and aggregation both default to 1.
| Code | Documented diagnostic | Interpretation |
|---|---|---|
| 1 | Level smoothing parameter | Weight controlling level updates |
| 2 | Trend smoothing parameter | Weight controlling trend updates |
| 3 | Seasonal smoothing parameter | Weight controlling seasonal updates |
| 4 | MASE | Scaled absolute error |
| 5 | SMAPE | Symmetric absolute proportional error |
| 6 | MAE | Mean absolute error in response units |
| 7 | RMSE | Root mean squared error in response units |
| 8 | Timeline step | Spacing in timeline coordinates |
The source internally calls the trend weight gamma and the seasonal weight beta, whereas help uses beta and gamma for those roles respectively. The semantic selector order is still level, trend, seasonal. Label a report by role as well as by code instead of copying a variable name without checking its meaning.
Step-by-step: an independently traceable diagnostic table
- Put timeline 1 through 8 in A1:A8.
- Put responses 10,12,14,16,18,20,22,24 in B1:B8.
- Put selector codes 1 through 8 in D1:D8.
- Enter
=FORECAST.ETS.STAT($B$1:$B$8,$A$1:$A$8,D1,0,1,1)beside the first code and copy down. - The source-derived expectation is 0 for codes 1 through 7, and 1 for code 8.
The nonseasonal initialization sets level 10 and trend 2. Each one-step prediction exactly matches the next response, independent of the candidate smoothing weights. The source’s equal-error tie branches select zero for the optimized level and trend weights; the unused seasonal weight is zero in this path. This is why the coefficient expectations can be traced for this special dataset without running a numerical engine.
MAE, RMSE and SMAPE are zero because all seven one-step residuals are zero. MASE is also zero here because its scaling denominator is positive: the six later observed changes each have magnitude 2. A constant series would instead have a zero scaling denominator and should not be assumed to share this valid MASE result.
What the error metrics actually measure
The inspected implementation computes errors for observations after the initial point. If e_i is forecast minus actual, MAE is the average of |e_i| and RMSE is the square root of the average of e_i² over those Nā1 positions. The sign convention does not affect these two measures.
SMAPE is twice the average of |e_i|/(|forecast_i|+|actual_i|). It is a ratio; percentage formatting multiplies the display by 100. If both denominator terms are zero, an individual contribution is undefined, so do not assume a numeric zero result for every zero-valued series.
The source’s MASE scaling uses the sum of observed absolute changes from the third observation onward, divided by Nā2, then scales the average forecast absolute error by that quantity. This exact indexing matters when comparing with another implementation or a textbook baseline that includes a different set of first differences. The synthetic linear control has the same change everywhere, avoiding a misleading discrepancy in its expected zero result.
Advanced application: compare models on a consistent sample
Create separate diagnostic columns for a fixed nonseasonal setting and a justified explicit seasonal length, using the same complete historical range. Record the preprocessing rules next to the metrics. A lower training RMSE can reflect additional flexibility and does not alone establish better future forecasts. Evaluate held-out periods separately rather than using fitted residual metrics as proof of predictive accuracy.
The coefficient values describe fitted update weights, not probabilities that the model is correct or percentages of causal influence. The clean control’s zero weights arise from a tie rule and exact fit. They do not imply that every real series should use zero smoothing.
Code 8 is useful for checking the processed timeline scale. Numeric period indices 1..8 have step 1. The source can convert same-day-of-month dates into month indices, so a returned step need not be a fixed day count. Interpret it alongside the actual timeline and date handling.
Preprocessing, errors and compatibility
The family shares material preprocessing discrepancies: default aggregation code 1 discards duplicate observations without averaging; median aggregation does not sort its values and uses a fractional middle index for odd run sizes; the gap path replaces an entry while increasing the recorded count. Use unique, complete, evenly spaced numeric columns and perform any aggregation or imputation explicitly. The help’s missing-data allowance does not establish reliable handling of every such case in this snapshot.
Completion other than exactly 0 or 1, or aggregation outside 1..7, predicts internal not_numeric (#NUM!). Use documented integer selector codes 1ā8. The source also contains an undocumented selector 9 and lacks a rejecting switch default; neither fact establishes a supported portable interface for other codes or their native error displays.
Smoothing selection and error metrics can differ from those in other editors; source comments acknowledge cross-product differences. Exact fits, zero denominators, short series, singular seasonal initialization and dirty timelines deserve separate examination. The numeric control here is an independent source trace, not application execution, and no general confidence interval or forecast-quality guarantee follows from it.
Compatibility and related functions
Recalculate representative formulas when moving a workbook between editors. Matching names do not guarantee identical argument coercion, array behavior, numerical precision or error handling. These source-derived examples do not establish automatic spill behavior or a general import/export guarantee.
Official references
- ONLYOFFICE FORECAST.ETS.STAT help, checked October 18, 2026.
- Official SDKJS implementation, 3683ā4100, tag v10.0.0.169 and exact commit above.