Contact

FORECAST.ETS.SEASONALITY in Collabora Office: Detect a Seasonal Period

Statistical Advanced Collabora Office Calc

Detect a seasonal sample count with reproducible source-derived expectations of 4 and 3, scoped to pinned Collabora source.

Verification status: See the evidence and test scope described in this guide. How formula examples are checked

Quick answer: FORECAST.ETS.SEASONALITY lets you estimate the number of observations in a repeating cycle. It returns a sample count, not a forecast and not a calendar month number. A visible pattern is a reason to investigate a cycle, not proof of the function’s detected result.

Syntax and intended use

=FORECAST.ETS.SEASONALITY(values; timeline; [data_completion]; [aggregation])

Formulas here use English worksheet names and semicolon separators. Square brackets describe optional arguments and are not typed. There is no target, statistic selector or period_length argument. The third position is data_completion; putting 4 there does not request a four-sample season.

Prepare paired observations before detection

Use two numeric columns with one value per timestamp, equal-sized ranges, and headers outside those ranges. Sort the two columns together if you sort them yourself. Collabora documents internal timeline sorting, but sorting only one column changes which observation belongs to each time. Use a consistent positive timeline step; any intended gaps must be whole multiples of that step. A measured zero belongs in the values column. An absent timestamp is a different data problem.

The fixtures below use simple integer time indexes to avoid locale-dependent dates. For monthly records, enter real dates such as =DATE(2025;1;1), not ambiguous text such as 01/2025. The pinned implementation recognizes same-day-of-month dates and converts them to month units. This special handling does not license arbitrary irregular timestamps. Month-end transitions, time fractions and monthly gaps need separate target-build checks.

For functions with period_length, use an integer: 0 explicitly selects nonseasonal double exponential smoothing (EDS); 1 requests automatic detection; 2 or more requests that many samples per seasonal cycle. The omitted default is 1. A value of 1 does not mean a literal one-observation season. Some Help example descriptions say “one sample per period,” but that conflicts with the formal parameter description. A four-quarter cycle means 4 samples; a twelve-month cycle means 12, provided the input cadence actually matches.

All seven functions expose data_completion and aggregation. Completion defaults to 1 (TRUE); 0 (FALSE) requests zero filling. The documented duplicate-timestamp choices are 1 AVERAGE (default), 2 COUNT, 3 COUNTA, 4 MAX, 5 MEDIAN, 6 MIN and 7 SUM. Use these integer codes, not function names in that argument. Numeric COUNT/COUNTA semantics do not establish acceptance of text observations. These examples deliberately contain no gaps or duplicates, so changing their cleanup options should not change the input dataset.

Important preprocessing discrepancies

Do not quietly rely on default AVERAGE to repair duplicate timestamps. In the pinned Collabora implementation, case 1 removes later equal-timestamp rows without computing their mean. The Help describes AVERAGE instead. For duplicate observations 90 and 150, the arithmetic mean is 120 and sum is 240; neither calculation establishes which observation the affected default branch retains after sorting. Resolve duplicates deliberately upstream, or verify the intended aggregation against the exact build before trusting a forecast.

Help calls completion by 1 interpolation. The saved source calculates a single mean of the endpoints for each missing block. With values 60 at time 3 and 90 at time 6, linear interpolation would insert 70 and 80 at times 4 and 5; that source instead constructs 75 and 75. These are independent preprocessing arithmetic controls, not native observations. Help’s “up to 30%” description also leaves the denominator unclear: the source divides inserted missing points by the original supplied count after duplicate handling. Two missing points and fourteen supplied points give 2/14, not 2/16. Avoid threshold claims without a target test.

Range-shape, numeric-content and option errors are also documentation-versus-runtime questions. Help describes particular spreadsheet error labels, but the source sometimes raises a different internal error category, including the unequal-range path. No exact native error display is verified here. Fix the paired data and integer options first; do not use this guide as an error-code compatibility table. Fractional options, blank-cell coercion, array-entry gestures and automatic spill behavior remain unverified.

Original fixture: four complete cycles

Enter this table in A1:B17. A1 and B1 are headers, and the numeric ranges are A2:A17 and B2:B17. The values are synthetic teaching inputs, not measurements or vendor sample data.

Timeline (A) Values (B)
1 88
2 104
3 120
4 96
5 100
6 116
7 132
8 108
9 112
10 128
11 144
12 120
13 124
14 140
15 156
16 132

Independent input arithmetic: the successive four-row means are 102, 114, 126 and 138. Each block’s maximum minus minimum is 32. These describe the fixture’s stable absolute swing; they are not forecasts, fitted coefficients or model errors.

Ask for a detected period

=FORECAST.ETS.SEASONALITY(B2:B17;A2:A17)
=FORECAST.ETS.SEASONALITY(B2:B17;A2:A17;1;1)
=FORECAST.ETS.STAT.ADD(B2:B17;A2:A17;9;1;1;1)
=FORECAST.ETS.STAT.MULT(B2:B17;A2:A17;9;1;1;1)

For the first two formulas, the source-derived expected result is 4, not a result observed in installed Collabora. Both calls use the same detector and initialization path on this complete, unique timeline; the explicit cleanup defaults do not change these inputs. The count means four observations per cycle. If each row represents a quarter, that is a year; if each row represents a month, it is four months.

The STAT formulas illustrate the documented selector-9 comparison. The pinned source selects the same period, but STAT also fits a model before returning its statistic. This detector calculation does not verify successful end-to-end STAT execution or fitted outputs. Keep those comparison results separate from the independently calculated SEASONALITY expectations.

Why the expected period is 4

The pinned detector compares successive changes separated by a candidate lag. For n observations and lag p, let q be the integer part of n/p. Using zero-based observation indexes, it starts at i = n − q×p + 1, sums |(y[i] − y[i−1]) − (y[i+p] − y[i+p−1])| through i = n−p−1, and divides by (q−1)×p−1. This tail alignment uses complete cycles from the end of the data. It tests lags from floor(n/2) down to 1, including 1 despite a source comment mentioning 2. A score equal to the best score replaces the earlier candidate, so the smaller tied lag wins for these finite inputs.

Candidate lag Exact score for the 16-row fixture
8 0
7 74/3
6 144/5
5 200/9
4 0
3 228/11
2 352/13
1 20

Both 8 and 4 score zero. Lag 4 replaces lag 8; every smaller lag scores above zero. Thus 4 follows from the detector and its tie rule, not merely from the visual pattern. These integer differences and sums are exact; the positive fractional scores cannot defeat a zero score.

Trend, ties, noise, short history and cleanup can affect selection. Automatic detection is not proof of real-world seasonality. Check the proposed cycle against the business calendar and out-of-sample forecasting performance rather than treating the detected count as a guarantee.

A second cadence control

On a separate sheet, enter Timeline and Values in A1:B1 and the following pairs in A2:B19:

Timeline Values
1 70
2 100
3 85
4 75
5 105
6 90
7 80
8 110
9 95
10 85
11 115
12 100
13 90
14 120
15 105
16 95
17 125
18 110

The six consecutive three-row block means are 85, 90, 95, 100, 105 and 110; each block range is 30. Use =FORECAST.ETS.SEASONALITY(B2:B19;A2:A19;1;1). The source-derived expected result is 3, not an observed installed-application result. In descending lag order 9, 8, 7, 6, 5, 4, 3, 2, 1, the exact scores are 0, 185/7, 30, 0, 30, 355/11, 0, 30, 495/16. The zero-score candidates are 9, 6 and 3; tie replacement finishes at 3. Compare this three-observation cycle with your business calendar before using it as a manual period in a forecasting function.

Initialization also matters

The SEASONALITY source path preprocesses the paired ranges and initializes its internal arrays before returning the detected count. It does not fit smoothing parameters or call the model-fitting initialization routine. Checking only the winning lag would miss possible initialization failures.

For these fixtures, at least two complete detected periods are available. The first-two-period trend calculation gives 3 per observation for the four-cycle fixture and 5/3 for the three-position fixture. All complete-period means and all trend-adjusted divisors used by the multiplicative initialization branch are positive. The initial seasonal indices are finite and their first index is nonzero, so the initial base division is finite too. Exact rational checks cover each divisor and index in the supporting calculation record. The integer timelines are consecutive, unique and already ordered; sorting, duplicate removal, gap filling and month conversion do not alter these examples. These checks establish the source-model prerequisites for the expected sample counts; they do not establish spreadsheet parsing, UI behavior or installed-build availability.

Verification scope

This guide uses Collabora’s own English Help archived on October 17, 2026, and Collabora co-26.04 source pinned at c1013fad0d38683630b48c01b6d5208b8d81181e, retrieved on October 19. The Help snapshot identifies itself as Collabora Office 26.04. Its latest URLs are mutable; these statements are scoped to that saved snapshot and pinned source. Desktop, Online and mobile editions may differ. First introduction and last functioning build are not established.

All example inputs are original, explicitly printed and checked by ordinary arithmetic. The expected periods 4 and 3 were calculated from the pinned detector using exact rational arithmetic and independently cross-checked using successive-difference vectors and tail-aligned lag pairs. Finite initialization was also checked. These are source-derived expected results, not results observed in an installed Collabora build. No ETS model was fitted, no application was launched and no screenshot or observed result is supplied. Fitted outputs, native errors, parsing and UI behavior are outside this verification scope. Source reading supports bounded implementation statements, not a claim that a particular installed product behaved that way.

Related functions include FORECAST.ETS.ADD and FORECAST.ETS.MULT for forecasts, FORECAST.ETS.PI.ADD and FORECAST.ETS.PI.MULT for prediction intervals, and FORECAST.ETS.STAT.ADD and FORECAST.ETS.STAT.MULT for model statistics.