Scalar FunctionsSeries Functions
series_periods_detect
Detects periodic patterns in a time series using FFT-based spectral analysis.
Returns the detected period lengths and their confidence scores. Useful for discovering recurring cycles — weekly raid patterns, seasonal trade routes, or tidal navigation schedules.
The series needs enough data points for reliable detection: at least 3-4 full cycles of the pattern you want to detect. For example, detecting a weekly pattern (period=7) requires ~28+ data points.
Syntax
series_periods_detect(series, min_period, max_period, num_periods)Parameters
Prop
Type
Returns: dynamic
Examples
Example 1 — Detect a weekly raid pattern (period=7) in 28 days of data — high activity every 7th day
print (periods, scores) = series_periods_detect(
dynamic([10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10])
)| periods (dynamic) | scores (dynamic) |
|---|---|
| [7.0] | [1.2664603537264012] |
Example 2 — Widen the search range (min=2, max=14) and request the top 2 periods
print (periods, scores) = series_periods_detect(
dynamic([10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10, 10, 5, 5, 5, 5, 5, 10]),
2.0,
14.0,
2
)| periods (dynamic) | scores (dynamic) |
|---|---|
| [7.0,2.0] | [1.2664603537264012,0.2066957036771069] |
Example 3 — Detect a shorter cycle — raids every 3rd day
print (periods, scores) = series_periods_detect(
dynamic([10, 3, 3, 10, 3, 3, 10, 3, 3, 10, 3, 3, 10, 3, 3, 10, 3, 3, 10, 3, 3]),
2.0,
10.0,
2
)| periods (dynamic) | scores (dynamic) |
|---|---|
| [3.0] | [1.425422448468271] |