Demonstration of Interaction of Growth and Seasonality in SS3

Author

Rick Methot

IN PROGRESS

Introduction

In late 2025 it was noticed that the Gompertz growth model was misbehaving when using seasons-as-years with time-varying growth. This prompted renewed priority in completing a comprehensive review of growth. The resolution of the discrepancies is found in pull request #747 from March 2026. This document demonstrates the correctness of the SS3 growth x seasonality interaction as developed in SS3.30.24.3, in comparison to the previous model version 3.30.24.1.

Test setup

The testbed for this demonstration started with the simple model setup which uses von Bertallanffy growth, single annual season, and growth parameters were not time-varying. From that base model, 42 model setups were created to cover all combinations of the following features:

Growth Options 1, 2, 3, 4, 5, 8
Seasonality annual, seasonal with two 6-month seasons, seasons-as-years with 6 month seasons
Model 3.30.24.1 and new

Growth option 2 (Richards) was configured such that the additional parameter had nil effect so that the resultant growth curve should match growth option 1 (von Bertallanffy). Growth options 3, 4, 5 for age-specific K were configured to allow for K at ages 2, 3 and 4 to have a multiplier, but all multipliers were fixed at 1.0 such that the resultant growth curve should match growth option 1. Growth options 2 (Gompertz - same as Richards but with parameter set to 0.001) and 8 (cessation) were included in the demonstration, but there is no parameter configuration that allows exact match to growth option 1.

An additional design configuration set the AFIX2 value to 19 years old for the annual and two-season models, and to 39 seasons in the seasons-as-years model. With this configuration and the same K for all models, the relationship between the seasons-as-years result and the other two seasonality configurations should be apparent.

All models were run with Amin = 0.0 such that the Lmin growth parameter set the size at age 0.0 post-settlement. A secondary test used a range of Amin values to demonstrate the transition from linear growth below Amin to growth according to the curve.

The Linf parameter was set to be time-varying with a block beginning in 1980. This triggers SS3 to update the growth calculations in that year and all subsequent years.

All models were run with no estimation (-nohess -stopph 0) so will produce output directly from the input parameter values.

Results

The following results are based on the Report.sso output table labelled MEAN_SIZE_TIMESERIES. Output for all years of each model configuration were output to a single csv file, with each row starting with identifiers for growth model, seasonality, and model version. This allowed for easy filtering results to enable visual and numerical comparisons. While conducting this test which included time-varying growth, we added an additional output of mean size by cohort.

The tables below display mean length-at-age for females (Sex = 1), Season 1, Subseason 1, Yr = 1985 and selected ages for brevity.

At the beginning of season 1, subseason 1, in 1985 (which is after the time-varying growth begins), the existing model and the updated model (test) all produce the same mean length-at-age for both the annual (oneseas) and the two season model.

Growth Season Model Morph Yr Seas SubSeas X0 X1 X2 X3 X4 X39 X40
growth1 oneseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth1 oneseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth1 twoseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth1 twoseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth2_gompertz oneseas 3.30.24.1 1 1985 1 1 21.6597 25.80560 30.01660 34.1995 38.2756 77.3328 77.5306
growth2_gompertz oneseas test 1 1985 1 1 21.6597 25.80560 30.01660 34.1995 38.2756 77.3328 77.5306
growth2_gompertz twoseas 3.30.24.1 1 1985 1 1 21.6597 25.80560 30.01660 34.1995 38.2756 77.3328 77.4108
growth2_gompertz twoseas test 1 1985 1 1 21.6597 25.80560 30.01660 34.1995 38.2756 77.3328 77.4108
growth2_richards oneseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth2_richards oneseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth2_richards twoseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth2_richards twoseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth3 oneseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth3 oneseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth3 twoseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth3 twoseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth4 oneseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth4 oneseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth4 twoseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth4 twoseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth5 oneseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth5 oneseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 75.0285
growth5 twoseas 3.30.24.1 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth5 twoseas test 1 1985 1 1 21.6597 28.99900 35.33350 40.8008 45.5196 74.9218 74.9639
growth8 oneseas 3.30.24.1 1 1985 1 1 0.0000 4.54678 8.95711 13.2004 17.2431 71.0377 71.0381
growth8 oneseas test 1 1985 1 1 0.0000 4.54678 8.95711 13.2004 17.2431 71.0377 71.0381
growth8 twoseas 3.30.24.1 1 1985 1 1 0.0000 4.54678 8.95711 13.2004 17.2431 71.0377 71.0403
growth8 twoseas test 1 1985 1 1 0.0000 4.54678 8.95711 13.2004 17.2431 71.0377 71.0403

Mean length-at-age for the one season and two season models comparing the current SS3 executable and the updated ‘test’ executable for all growth options

However, the seasons-as-years configuration shows differences between the model versions. These differences are consistent across all the growth options.

Growth Season Model Morph Yr Seas SubSeas X0 X1 X2 X3 X4 X39 X40
growth1 seas_as_years 3.30.24.1 1 1985 1 1 21.6597 25.46440 28.9990 30.67110 32.28280 71.3379 73.2246
growth1 seas_as_years test 1 1985 1 1 21.6597 25.46440 28.9990 32.28280 35.33350 71.9986 73.5683
growth2_gompertz seas_as_years 3.30.24.1 1 1985 1 1 21.6597 23.71820 25.8056 26.85610 27.90910 71.0693 74.3853
growth2_gompertz seas_as_years test 1 1985 1 1 21.6597 23.71820 25.8056 27.90910 30.01660 72.1648 74.9544
growth2_richards seas_as_years 3.30.24.1 1 1985 1 1 21.6597 25.46440 28.9990 30.67110 32.28280 71.3379 73.2246
growth2_richards seas_as_years test 1 1985 1 1 21.6597 25.46440 28.9990 32.28280 35.33350 71.9986 73.5683
growth3 seas_as_years 3.30.24.1 1 1985 1 1 21.6597 25.46440 28.9990 30.67110 32.28280 71.3379 73.2246
growth3 seas_as_years test 1 1985 1 1 21.6597 25.46440 28.9990 32.28280 35.33350 71.9986 73.5683
growth4 seas_as_years 3.30.24.1 1 1985 1 1 21.6597 25.46440 28.9990 30.67110 32.28280 71.3379 73.2246
growth4 seas_as_years test 1 1985 1 1 21.6597 25.46440 28.9990 32.28280 35.33350 71.9986 73.5683
growth5 seas_as_years 3.30.24.1 1 1985 1 1 21.6597 25.46440 28.9990 30.67110 32.28280 71.3379 73.2246
growth5 seas_as_years test 1 1985 1 1 21.6597 25.46440 28.9990 32.28280 35.33350 71.9986 73.5683
growth8 seas_as_years 3.30.24.1 1 1985 1 1 0.0000 1.25091 2.4984 3.74142 4.97864 48.8648 48.8637
growth8 seas_as_years test 1 1985 1 1 0.0000 2.50183 4.9968 7.48285 9.95728 71.0227 71.0207

Mean length-at-age for the seasons-as-years models comparing the current SS3 executable and the updated ‘test’ executable for all growth options