Repository navigation
Rceattle 5.20.0
Second release of the 5.x line (5.9.0 through 5.20.0, merged in #119).
Full detail in NEWS.md.
Results change — refit before carrying a model forward
| Change | Effect |
|---|---|
A fishery's index is predicted from year-averaged numbers N̄ via Baranov rather than a snapshot at Month, matching catch, caal, and comps (5.9.0). |
Moves trend as well as scale, so q cannot absorb it. Refit any fishery carrying index_data |
A fishery carrying index_data now gets an estimable catchability; a survey with no index rows no longer does (5.9.0) |
Set Catchability = "Fixed" to keep the old behaviour |
| Reference points ignored an estimated stock-recruit curve unless the projection also used it (5.13.0) | Inflated perceived depletion under HCR 5 and 6. Refit any Beverton-Holt / Ricker model run under those rules |
M1_re = 3 and 6 estimated 42 deviations where 882 were meant (5.9.0) |
Refit any model estimating age-by-year M deviations |
| The 2D-AR1 correlations acted on the wrong dimensions (5.9.0) | Most fits do not move, but warm starts across the boundary do — refit from inits = NULL |
A scalar cap in run_mse() was tested against the assessment-interval total, not the annual one (5.13.0) |
Any stored MSE result using a scalar cap changes, at every assessment_period and whether or not the cap ever bound |
run_mse() observation draws moved at 5.9.0, 5.13.0 and 5.18.0 |
Every seeded run_mse(simulate_data = TRUE) result changes. simulate_data = FALSE is unchanged to the bit |
remove_F() zeroed fitted hindcast F when suit_endyr < endyr |
Refit any model setting suit_endyr short of endyr |
Composition draws use Comp_weights as the density does (5.9.0) |
Any model with a weight other than 1 gives a different self-test |
The mode-5 selectivity penalty fix; parameter bounds previously applied to the wrong parameters; the srr_prior and init_dev recruitment fixes; random_q = TRUE fits (5.14.0) |
Refit |
Three predation figures renumbered (5.10.0); plot_indexresidual() changed sign (5.9.0) |
Regenerate figures. Earlier index residual plots are mirrored about zero |
Breaking changes
Every renamed argument and column keeps its old spelling through R/0-deprecate.R
or the schema aliases field, scheduled for removal in 6.0.0. No exported
function was removed.
summary()on a fit returns a summary object, not the fit (5.16.0). It wasprint(object).Time_varying_sel = "AR1"andTime_varying_q = "AR1"are removed (5.16.0). Neither was ever an AR1 — both were scored as"IID". Use"IID"for the same fit, orlinkage_spec(~ ar1(1 | Year))for a real one.Catchability = "AR1"(QAR1) is an error (5.12.0). The deviates were never estimated, so q came back constant.- Beverton-Holt / Ricker under
msmMode > 0is refused (5.12.0). SPR is not defined under predation. growth_re,growth_indicesandlog_growth_par_devsare removed (5.9.0). Nothing consumed them; every fit is bit-identical. Usebuild_growth(linkages =).maturityandsex_ratioage coverage is validated per species (5.19.0). A gap inside a species' own ages leaves SSB or SPR0NA; on a two-sex species it reached only SPR, so the model fitted cleanly and failed later atnlminb's "NA/NaN gradient evaluation".write_data()writesfleet_controlin schema order (5.12.0). Values round-trip identically; only column order moves.sim_mod(simulate = TRUE)no longer works on an averaged model (5.9.0).
New
- The column schema is the source of truth for switch values, defaults and column order (5.12.0), and
save_config()/load_config()project from it. - Every observation type is simulated inside the TMB model, beside the density that scores it —
sim_mod(process =), and aTruncatedNormalindex family whose likelihood and simulator are the same distribution (5.9.0). run_mse(assessment_period =)takes a schedule of years andcatch_multaYear/Species/multdata frame, so a missed assessment and a buffer held while advice is stale are expressible (5.17.0).- Two MSE schedules on the same
seedare on common random numbers (5.18.0). Contamination in a year whose advice is identical by construction falls from 2.1% to 0.003%. This costs about 9% on a Bering Sea multispecies MSE projecting to 2040. random_qestimates the catchability deviation sd (5.14.0); multispecies unfished SSB and depletion are carried on the fitted object (5.15.0).- One display contract for the diagnostics: convergence, OSA, retrospective, jitter, self-test and likelihood profile all print an overall status in the same four-level vocabulary, a one-line verdict, then a compact table (5.16.0, completed in 5.20.0).
Known limitation
R CMD check on windows-latest died once with 0xC0000005, a Windows access
violation, inside test-selectivity-catchability.R. That is memory corruption,
not a bad optimum. What ships is the scaffolding to catch it —
RCEATTLE_SAFEBOUNDS=true plus tools/verify/verify-safebounds.R, and a nightly
deep-checks workflow — not a cure. A green Windows run is not evidence: the
guard usually skips the file that crashes.