Skip to main content

Seasonality Ontology

Time Series Statistics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
FULL EXECUTABLE FLOW ALGEBRA — SEASONALITY ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/time-series-statistics/seasonality-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Time Series Statistics"
ONTOLOGY := "Seasonality Ontology"
PRIMARY_ENTITY := Seasonality
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"

BEGIN_FLOW

Seasonality := TimeSeriesComponent ∧ RepeatingTemporalPattern ∧ PeriodicStructure ∧ CalendarOrCycleLinkedVariation
TimeSeries := {Y_t:t∈T}
TimeIndex := t
ObservedValue := y_t
SeasonalComponent := S_t
SeasonalPeriod := s
SeasonalFrequency := 1/s
SeasonalityDefinition := PatternRepeatingAtApproximatelyRegularKnownOrDetectableIntervals
AdditiveSeasonality := Y_t=T_t+S_t+R_t
MultiplicativeSeasonality := Y_t=T_t×S_t×R_t
AdditiveSeasonalConstraint := SeasonalAmplitudeApproximatelyConstantAcrossLevel
MultiplicativeSeasonalConstraint := SeasonalAmplitudeChangesProportionallyWithSeriesLevel
SeasonalCycle := {S_1,...,S_s}
SeasonalPosition := PositionWithinSeasonalCycle
SeasonalIndex := TypicalEffectAssociatedWithSeasonalPosition
AdditiveNormalisation := Σ_{j=1}^sS_j=0
MultiplicativeNormalisation := Mean(SeasonalIndices)=1
SeasonalPeriodExamples := {HourOfDay,DayOfWeek,WeekOfYear,MonthOfYear,QuarterOfYear,AnnualCycle}
DailySeasonality := PatternRepeatingEveryDay
WeeklySeasonality := PatternRepeatingEverySevenDaysUnderDailyObservations
MonthlySeasonality := PatternAssociatedWithMonthOfYear
QuarterlySeasonality := PatternRepeatingEveryFourQuarters
AnnualSeasonality := PatternRepeatingAcrossYears
MultipleSeasonality := MoreThanOneSeasonalPeriodPresentInSameSeries
NestedSeasonality := SeasonalCyclesEmbeddedWithinLongerCycles
CalendarSeasonality := PatternLinkedToCalendarStructure
TradingDayEffect := VariationDueToNumberOrCompositionOfWeekdaysWithinPeriod
DayOfWeekEffect := SystematicDifferenceAcrossWeekdays
HolidayEffect := SystematicEffectAssociatedWithMovableOrFixedHolidays
MonthLengthEffect := VariationDueToDifferentNumbersOfDaysPerMonth
LeapYearEffect := CalendarVariationAssociatedWithLeapDay
SeasonalityVsTrend := SeasonalityRepeats whereas TrendRepresentsLongTermDirectionalMovement
SeasonalityVsCycle := SeasonalityHasRelativelyStablePeriod whereas CycleNeedNotHaveFixedPeriod
SeasonalLag := k×s
SeasonalAutocorrelation := Corr(Y_t,Y_(t-s))
SeasonalACFPattern := PeaksAtSeasonalLags→EvidenceOfRepeatingTemporalStructure
SeasonalPACF := PartialAutocorrelationAtSeasonalLags
SeasonalDifference := Δ_sY_t=Y_t-Y_(t-s)
SeasonalDifferenceOperator := (1-L^s)
SeasonalDifferencingOrder := D
RepeatedSeasonalDifference := (1-L^s)^DY_t
SeasonalDifferencingPurpose := RemoveOrReducePersistentSeasonalPattern
OverSeasonalDifferencing := ExcessiveSeasonalDifferencing→IncreasedNoiseAndDistortedDynamics
UnderSeasonalDifferencing := RemainingPersistentSeasonalStructure
SeasonalUnitRoot := UnitRootAtSeasonalFrequency
SeasonalMean := E[Y_t|SeasonalPosition=j]
SeasonalVariance := Var(Y_t|SeasonalPosition=j)
SeasonalDummy := IndicatorForSeasonalPosition
SeasonalDummyRegression := Y_t=TrendTerms+SeasonalIndicators+ε_t
ReferenceSeason := BaselineSeasonalPositionForDummyCoding
SeasonalContrast := DifferenceBetweenSeasonalPositions
FourierSeasonality := SeasonalPatternRepresentedBySineAndCosineTerms
FourierPair := sin(2πkt/s),cos(2πkt/s)
Harmonic := IntegerMultipleOfFundamentalSeasonalFrequency
FourierSeasonalModel := Y_t=Trend_t+Σ_k[a_k sin(2πkt/s)+b_k cos(2πkt/s)]+ε_t
HarmonicOrder := NumberOfFourierPairsUsed
FourierBenefit := CompactRepresentationOfSmoothSeasonalPatterns
Periodogram := FrequencyDomainEstimateOfSpectralPower
SeasonalSpectralPeak := HighPowerNearSeasonalFrequencyOrHarmonic
SpectralSeasonalityDetection := Periodogram→IdentifyDominantFrequencies→CandidateSeasonalPeriods
Aliasing := SamplingFrequencyInsufficient→SeasonalFrequencyMisrepresentation
NyquistConstraint := SeasonalFrequencyMustBeRepresentableUnderSamplingRate
ClassicalDecomposition := EstimateTrend→RemoveTrend→EstimateSeasonalIndices→ComputeRemainder
STL := SeasonalTrendDecompositionUsingLoess
STLComponents := {Trend,Seasonal,Remainder}
RobustSTL := DownweightOutliers→MoreRobustTrendAndSeasonalComponents
SeasonalAdjustment := RemoveEstimatedSeasonalComponent
AdditiveSeasonalAdjustment := Y_t-S_hat_t
MultiplicativeSeasonalAdjustment := Y_t/S_hat_t
DeseasonalisedSeries := SeriesAfterSeasonalAdjustment
SeasonalAdjustmentPurpose := RevealUnderlyingTrendCycleAndNonseasonalMovement
SeasonalRevision := EstimatedHistoricalSeasonalFactorsChangeWhenNewObservationsArrive
StableSeasonality := SeasonalPatternApproximatelyConstantAcrossCycles
EvolvingSeasonality := SeasonalPatternChangesGraduallyAcrossTime
ChangingSeasonalAmplitude := SeasonalEffectMagnitudeVariesAcrossTime
SeasonalBreak := AbruptChangeInSeasonalPattern
SeasonalDrift := GradualChangeInSeasonalTimingOrMagnitude
SeasonalPhase := TemporalPositionOfSeasonalPeakOrPattern
PhaseShift := SeasonalPatternOccursEarlierOrLaterOverTime
SeasonalPeak := SeasonalPositionWithMaximumExpectedEffect
SeasonalTrough := SeasonalPositionWithMinimumExpectedEffect
SeasonalAmplitude := PeakSeasonalEffect-TroughSeasonalEffect
RelativeSeasonalAmplitude := SeasonalAmplitude/RelevantLevelScale
SeasonalStrength := RelativeContributionOfSeasonalComponentComparedWithRemainder
SeasonalStrengthMetric := 1-Var(Remainder)/Var(Seasonal+Remainder) under selected convention
SeasonalForecast := ForecastUsingRepeatedSeasonalPattern
SeasonalNaiveForecast := MostRecentMatchingSeasonObservation
HoltWintersAdditive := Level∧Trend∧AdditiveSeasonality
HoltWintersMultiplicative := Level∧Trend∧MultiplicativeSeasonality
SeasonalExponentialSmoothing := RecursiveUpdatesForLevelTrendAndSeasonalStates
SARIMA := ARIMA(p,d,q)×(P,D,Q)_s
SeasonalAR := Φ(L^s)
SeasonalMA := Θ(L^s)
SeasonalARIMAStructure := φ(L)Φ(L^s)(1-L)^d(1-L^s)^DY_t=θ(L)Θ(L^s)ε_t
DynamicHarmonicRegression := RegressionWithFourierSeasonalTerms∧TimeSeriesErrors
MultipleSeasonalModel := MultipleFourierPeriods∨MultipleSeasonalStateComponents
SeasonalityDetection := TimeSeries→ResolveSamplingFrequency→VisualiseRepeatedCycles→InspectSeasonalSubseries→ComputeSeasonalACF→InspectSpectrum→EstimateSeasonalComponent→ValidateRepeatedPattern
SeasonalSubseriesPlot := GroupObservationsBySeasonalPosition→CompareAcrossCycles
SeasonalPlot := OverlayOrSequenceSeasonalCycles→VisualisePatternStability
BoxPlotBySeason := DistributionOfValuesBySeasonalPosition
SeasonalityTest := StatisticalAssessmentOfSeasonalDifferencesOrPeriodicDependence
SeasonalANOVA := CompareSeasonalPositionMeansUnderCompatibleAssumptions
KruskalWallisSeasonalTest := RankBasedComparisonAcrossSeasonalPositions
SeasonalTestConstraint := TemporalDependenceCanInvalidateNaiveIndependentGroupTests
IrregularSamplingSeasonality := UnequalObservationIntervals→StandardSeasonalLagMethodsMayRequireAdaptation
MissingSeasonalObservations := MissingValuesAtExpectedSeasonalPositions
InterpolationSeasonalityRisk := InterpolationMayCreateOrSuppressSeasonalPattern
OutlierSeasonalityRisk := ExtremeValuesMayDistortSeasonalIndicesAndSpectralPower
CalendarAlignment := MapTimestampToCorrectSeasonalPosition
TimeZoneSeasonality := TimeZoneAndDaylightSavingRulesMayAffectSeasonalAlignment
AggregationEffect := TemporalAggregationMayWeakenRemoveOrAlterSeasonality
LogTransformationRelation := MultiplicativeSeasonalityMayBecomeApproximatelyAdditiveAfterLogTransformation
SeasonalityDoesNotImplyCausation := RepeatingTemporalPattern↛CausalMechanism
SeasonalConfounding := SeasonalExternalFactorsMayGenerateObservedRepeatingAssociation

SeasonalityConstraint := ConstraintOn(TimeSeries,TimeIndex,SamplingFrequency,SeasonalPeriod,CalendarAlignment,TrendHandling,DependenceStructure,MissingDataMethod,DecompositionMethod)
SeasonalityConsistency := Series∧Frequency∧SeasonalPeriod∧CalendarMapping∧Decomposition∧DynamicModel jointly_compatible
InvalidSeasonalityAnalysis := UndefinedSamplingFrequency∨InvalidSeasonalPeriod∨CalendarMisalignment∨AliasingUnresolved∨TrendConfoundingUnresolved∨IgnoredTemporalDependence∨FutureLeakage
SeasonalityValidation := ResolveSeriesAndTimeIndex→ResolveSamplingFrequency→ResolveCandidateSeasonalPeriods→ValidateCalendarAlignment→VisualiseSeasonalCycles→InspectSeasonalACFAndSpectrum→EstimateSeasonalComponent→QuantifySeasonalStrengthAndAmplitude→DiagnoseSeasonalStability→ResolveSeasonalAdjustment→ValidateResidualSeasonality→ValidateInterpretation→ValidateResult
SeasonalityState := {TimeSeries,TimeIndex,SamplingFrequency,SeasonalPeriod,SeasonalFrequency,SeasonalPositions,SeasonalIndices,SeasonalComponent,SeasonalAmplitude,SeasonalStrength,SeasonalPhase,CalendarEffects,TrendHandling,DecompositionMethod,SeasonalAdjustmentMethod,SeasonalDifferenceOrder,StabilityStatus,BreakStatus,MissingDataMethod,Evidence,Confidence,Provenance}
SEMANTIC_EQUIVALENCE(SeasonalityA,SeasonalityB) := same(SeriesSemantics)∧same(TimeIndexSemantics)∧same(SamplingFrequency)∧same(SeasonalPeriod)∧same(CalendarAlignment)∧same(AdditiveOrMultiplicativeScale)∧same(SeasonalComponentTarget)

SeasonalityOntology := Classes∧Relations∧Constraints∧Axioms∧InferenceRules
CoreClasses := {Seasonality,SeasonalComponent,SeasonalPeriod,SeasonalFrequency,SeasonalPosition,SeasonalIndex,SeasonalLag,SeasonalDifference,SeasonalAutocorrelation,CalendarSeasonality,TradingDayEffect,HolidayEffect,FourierSeasonality,Harmonic,SeasonalAdjustment,DeseasonalisedSeries,SeasonalStrength,SeasonalAmplitude,SeasonalPhase,SeasonalBreak,SeasonalForecast,SeasonalNaiveForecast,SeasonalARIMA}
CoreRelations := {seasonalComponentOf,hasPeriod,hasFrequency,hasPosition,hasIndex,hasLag,hasAutocorrelation,differencedBy,representedBy,adjustedBy,hasAmplitude,hasStrength,hasPhase,affectedBy,forecastBy,constrainedBy,equivalentTo,tracesTo}
TypedRelations := Seasonality--seasonalComponentOf-->TimeSeries ∧ Seasonality--hasPeriod-->SeasonalPeriod ∧ Seasonality--hasFrequency-->SeasonalFrequency ∧ SeasonalCycle--hasPosition-->SeasonalPosition ∧ SeasonalPosition--hasIndex-->SeasonalIndex ∧ Seasonality--hasLag-->SeasonalLag ∧ Seasonality--hasAutocorrelation-->SeasonalAutocorrelation ∧ TimeSeries--differencedBy-->SeasonalDifference ∧ Seasonality--representedBy-->FourierSeasonality ∧ TimeSeries--adjustedBy-->SeasonalAdjustment ∧ Seasonality--hasAmplitude-->SeasonalAmplitude ∧ Seasonality--hasStrength-->SeasonalStrength ∧ Seasonality--hasPhase-->SeasonalPhase ∧ Seasonality--forecastBy-->SeasonalForecast ∧ Seasonality--tracesTo-->Provenance
InferenceRules := {RepeatedPatternAtStablePeriod⇒CandidateSeasonality,ACFPeaksAtMultiplesOfS⇒EvidenceForSeasonalPeriodS,SpectralPeakAtFrequencyF⇒CandidateSeasonalPeriod=1/F,SeasonalAmplitudeProportionalToLevel⇒ConsiderMultiplicativeSeasonality,ResidualSeasonalityAfterAdjustment⇒FlagIncompleteSeasonalAdjustment,CalendarMisalignment⇒FlagSeasonalityInterpretationRisk,SeasonalPattern↛CausalMechanism}
CanonicalSeasonalityRepresentation := ParseSeasonalityRequest→ResolveTimeSeriesAndTimeIndex→ResolveSamplingFrequency→IdentifyCandidateSeasonalPeriods→ResolveCalendarMapping→InspectSeasonalPlotsACFAndSpectrum→SelectAdditiveMultiplicativeOrHarmonicRepresentation→EstimateSeasonalComponent→ComputeSeasonalIndicesAmplitudeStrengthAndPhase→DetectSeasonalBreaksOrDrift→ApplySeasonalAdjustmentIfRequired→DiagnoseResidualSeasonality→ValidateSeasonality
SeasonalityGraph := G=(V,E)
V := {Seasonalities,SeasonalComponents,SeasonalPeriods,SeasonalFrequencies,SeasonalPositions,SeasonalIndices,SeasonalLags,SeasonalDifferences,SeasonalAutocorrelations,CalendarSeasonalities,TradingDayEffects,HolidayEffects,FourierSeasonalities,Harmonics,SeasonalAdjustments,DeseasonalisedSeriesNodes,SeasonalStrengths,SeasonalAmplitudes,SeasonalPhases,SeasonalBreaks,SeasonalForecasts,SeasonalNaiveForecasts,SeasonalARIMAModels,TimeSeriesNodes,Evidence,ProvenanceNodes}
E := {seasonalComponentOf,hasPeriod,hasFrequency,hasPosition,hasIndex,hasLag,hasAutocorrelation,differencedBy,representedBy,adjustedBy,hasAmplitude,hasStrength,hasPhase,affectedBy,forecastBy,constrainedBy,equivalentTo,tracesTo}
CONFIDENCE(SeasonalityResolution) := weighted_mean(TimeSeriesResolution,TimeIndexValidity,SamplingFrequencyValidity,SeasonalPeriodResolution,CalendarAlignmentValidity,SeasonalPatternEvidence,DecompositionValidity,SeasonalStabilityAssessment,ResidualSeasonalityAssessment,ProvenanceQuality)
AI_QUERY_INTERPRETATION := Query→DetectSeasonalityIntent→IdentifySeriesTimeIndexFrequencyAndCandidatePeriod→ResolveDetectionDecompositionAdjustmentForecastOrCalendarIntent→IdentifyRequestedSeasonalIndexAmplitudeStrengthPhaseOrDifference→ResolveTrendMissingnessAndDependenceContext
AI_REASONING_FLOW := Query→ParseSeasonalityProblem→ResolveTimeSeriesAndTimeIndex→ResolveSamplingFrequency→IdentifyCandidateSeasonalPeriods→ValidateCalendarAlignment→VisualiseSeasonalCycles→ComputeSeasonalACF→InspectSpectralPower→SelectSeasonalRepresentation→EstimateSeasonalComponent→ComputeIndicesAmplitudeStrengthAndPhase→DetectSeasonalBreaksAndDrift→ApplySeasonalAdjustmentIfRequested→DiagnoseResidualSeasonality→UpdateConfidence→PreserveProvenance→GenerateExplanation
AI_CONSUMPTION := {ParseSeasonalityEntities,ParseTypedRelations,ResolveTimeSeries,ResolveTimeIndices,ResolveSamplingFrequencies,ResolveSeasonalPeriods,ResolveCalendarPositions,ComputeSeasonalAutocorrelations,ComputeSeasonalDifferences,ConstructSeasonalSubseries,ComputeSeasonalIndices,FitAdditiveSeasonality,FitMultiplicativeSeasonality,FitFourierSeasonality,ComputePeriodograms,DetectSpectralPeaks,ExecuteClassicalDecomposition,ExecuteSTL,ComputeSeasonalStrength,ComputeSeasonalAmplitude,ComputeSeasonalPhase,DetectSeasonalBreaks,DetectSeasonalDrift,ApplySeasonalAdjustment,FitSeasonalNaiveForecasts,FitHoltWintersModels,FitSeasonalARIMA,DiagnoseResidualSeasonality,ValidateSeasonalitySemantics,CompareSemanticEquivalence,UpdateConfidence,PreserveProvenance,GenerateFormalExplanation}
UPDATE_MODEL := NewObservationFrequencyCalendarOrEvidence→ValidateInput→IdentifyAffectedSeasonalityClaims→UpdateSeasonalityState→RecomputeCandidateSeasonalPeriods→RevalidateCalendarAlignment→ReestimateSeasonalComponent→RecomputeIndicesAmplitudeStrengthAndPhase→RedetectSeasonalBreaksAndDrift→RecomputeSeasonalAdjustmentAndForecastsIfRequired→RecomputeConfidence→PreserveProvenance→VersionModel
DataUpdate := NewOrChangedObservation⇒recompute(SeasonalIndices,SeasonalComponent,SeasonalAmplitude,SeasonalStrength,StabilityStatus)
FrequencyUpdate := ChangedSamplingFrequency⇒reevaluate(SeasonalPeriod,SeasonalFrequency,SeasonalLag,SpectralInterpretation)
CalendarUpdate := ChangedCalendarMapping⇒recompute(SeasonalPositions,CalendarEffects,SeasonalIndices)
FLOW_HASH_INPUT := canonical(ONTOLOGY,CoreClasses,CoreRelations,InferenceRules,Seasonality,SeasonalityValidation,SeasonalityConstraint,SEMANTIC_EQUIVALENCE,AI_REASONING_FLOW)
FLOW_HASH := HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {SeasonalityEntityResolution,TimeSeries,TimeIndex,SamplingFrequency,SeasonalPeriod,SeasonalFrequency,SeasonalPositions,SeasonalIndices,SeasonalComponent,SeasonalAmplitude,SeasonalStrength,SeasonalPhase,CalendarEffects,TrendHandling,DecompositionMethod,SeasonalAdjustmentMethod,SeasonalDifferenceOrder,StabilityStatus,BreakStatus,MissingDataMethod,ValidationStatus,Confidence,Provenance,Explanation}

END_FLOW

END OF FULL EXECUTABLE FLOW ALGEBRA
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ