Show code
if(!'devtools' %in% installed.packages()) install.packages('devtools')
devtools::install_github("SPRFMO/jjmR")
if(!'kableExtra' %in% installed.packages()) install.packages('kableExtra')April 8, 2026
This document was originally compiled in RMarkdown then converted into Quarto (a different flavor of markdown). It shows the incremental results of the Chilean Jack Mackerel (Trachurus murphyi) stock assessment update in 2026. The files associated with this document can be found on Github.
The code to create the input files for this assessment and to run these models can be found in jjm/assessment/R/SC13_Bridging.R. Should you choose to run the models, please ensure that you have:
jjm/src/jjms.tpl
jjm/src folder in your Terminal, and using the make commandjjmR package
R using the command remotes::install_github("SPRFMO/jjmR")library(jjmR)
library(tidyverse)
library(kableExtra)
library(patchwork)
theme_set(theme_jjm(base_size = 15))
pwd <- getwd()
fn_seldata <- function(x, i) {
x$data$Index[,i] %>%
bind_rows() %>%
pivot_longer(everything(), names_to = "year") %>%
drop_na() %>%
mutate(
year = as.numeric(year),
assessment_year = ifelse(
i==7,
max(year)+1,
max(year)
)
)
}
fn_plotind <- function(mods2compare, indname) {
mods <- compareModels(geth(mods2compare, "h1"))
i <- grep(indname,mods[[1]]$data$Inames)
dat2use <- list()
for(m in 1:length(mods)) {
dat2use[[m]] <- fn_seldata(mods[[m]],i)
}
p <- map_dfr(dat2use, ~as_tibble(.)) %>%
mutate(assessment_year=as.factor(assessment_year)) %>%
ggplot() +
geom_line(aes(x=year,y=value,colour=assessment_year)) +
scale_x_continuous(breaks= scales::pretty_breaks())
print(p)
}
finmodname <- "1.14"
yr_prev <- as.numeric(format(Sys.time(), "%Y"))-1
yr_curr <- as.numeric(format(Sys.time(), "%Y"))File naming conventions have been changed to reflect the stock structure hypotheses associated with each run. The h1 denotes the single-stock hypothesis, while h2 denotes the two-stock one.
| Model | Description |
|---|---|
| Models 0.x | Data introductions |
| 0.00 | Exact 2024 (single stock `h1` and two-stock `h2`) model and data set (model 1.07) from SC12. |
| 0.01 | As 0.00 but with revised catches through 2024 (currently still estimates) |
| 0.02 | As 0.01 but with updated 2024 fishery age composition data for N_Chile, SC_Chile, and Offshore_Trawl, and updated 2024 fishery length composition data for FarNorth |
| 0.03 | As 0.02 but with updated 2024 weight at age data for all fisheries and their associated CPUE indices |
| 0.04 | As 0.03 but replaced offshore CPUE up to 2024 |
| 0.05 | As 0.04 but with 2025 catch projections |
| 0.06 | As 0.05 but with updated 2025 fishery age composition data for N_Chile, SC_Chile, and Offshore_Trawl, and updated 2025 fishery length composition data for FarNorth |
| 0.07 | As 0.06 but with updated 2025 weight at age data for N_Chile, SC_Chile, and FarNorth fleets, and for their associated CPUE indices |
| 0.08 | As 0.07 but replaced SC_Chile_CPUE index (traditional absolute scaled CPUE by trip) |
| 0.09 | As 0.08 but replaced Peru_CPUE index |
| 0.1 | As 0.09 but updated 2025 AcousN index, with associated age composition and weight at age |
| Models 1.x | Updated Model and Sensitivities |
| 1.00 | As 0.10 but with updated model (selectivity changes, recruitment) to 2025; 0.10 data file |
| **Leave one in analysis** | NA |
| 1.01 | As 1.00 but with downweighted Chile AcousN, Offshore CPUE, and Peru CPUE |
| 1.02 | As 1.00 but with downweighted Chile AcousN, Chile CPUE, and Peru CPUE |
| 1.03 | As 1.00 but with downweighted Chile CPUE, Offshore CPUE, and Chile AcousN |
| 1.04 | As 1.00 but with downweighted Chile CPUE, Offshore CPUE, and Peru CPUE |
| 1.05 | As 1.00 but with downweighted Chile CPUE, Offshore CPUE, Peru CPUE, and pre-2000 AcousN |
| **Leave one out analysis** | NA |
| 1.06 | As 1.00 but with downweighted Chile CPUE |
| 1.07 | As 1.00 but with downweighted Offshore CPUE |
| 1.08 | As 1.00 but with downweighted Peru CPUE |
| 1.09 | As 1.00 but with downweighted Chile AcousN |
| **Regularly scheduled sensitivities** | NA |
| 1.10 | As 1.00 but with selectivity change implemented for 2025 Offshore fishery |
| 1.11 | As 1.10 but with selectivity change implemented for 2025 SC Chile fishery |
| 1.12 | As 1.11 but with increased weight for 2025 age compositions in the offshore and SC Chile fishery |
| 1.13 | As 1.12 but with downweighted early years (pre-2000) of AcousN |
| 1.14 | As 1.13 but with updates to historical weight at age for the FarNorth fleet |
| Models 1.xx.yy | Base Model Projections |
| 1.xx.ls | As 1.xx but low steepness and short recruitment time series (2001-2015) |
You’ll need to be in the jjm/assessment directory in order for the code here to run.
Re-running the 2025 model and comparing the results with that year’s SC meeting.
The most updated table of model runs can be found on Github.
The data updated to 2025, includes catch estimates, age and length compositions, and indices of abundance.
The data updated to 2026 include projected catch estimates, age and length compositions, and indices of abundance.
Note that this time series ends in 2025.
This shows the final data update, using the exact same model (i.e., with the same control files).
These results are from updating the model to include selectivity changes in the most recent year, and to extend the recruitment regime shift time series. This is the same procedure that was applied in previous years.
Only indices with recent data are considered: CPUE indices for Chile, Peru and offshore, and Chile Acoustic N. Age composition data were left in.
Worth noting that both indices from the north (Acoustic N and Peru CPUE) have a positive impact on biomass, whereas the “southern” indices have a negative impact on biomass.
| Model | Leaves In |
|---|---|
| 1.01 | Chile CPUE |
| 1.02 | Offshore CPUE |
| 1.03 | Peru CPUE |
| 1.04 | Acoustic N Chile |
| 1.05 | Only recent years (>2000) of Acoustic N Chile |
Only indices with recent data are considered: CPUE indices for Chile, Peru and offshore, and Chile Acoustic N. Age composition data were left in.
| Model | Leaves Out |
|---|---|
| 1.06 | Chile CPUE |
| 1.07 | Offshore CPUE |
| 1.08 | Peru CPUE |
| 1.09 | Acoustic N Chile |
The model showed a very poor fit to recent data, particularly for the SC Chile and the offshore fleets. Efforts were made to improve the fit, namely by 1) allowing for additional flexibility in selectivity patterns for those fleets in 2025, and 2) increasing the weight of the age composition data in 2025.
Within-year fishery data are typically downweighted by a factor of 0.1. For example:
| Data Source | Years | Sample Size |
|---|---|---|
| SC Chile | < 2025 | 64.3 |
| SC Chile | 2025 | 6.43 |
| Offshore | < 2025 | 12.6 |
| Offshore | 2025 | 1.26 |
Proposed Changes:
| Data Source | Years | Sample Size |
|---|---|---|
| SC Chile | < 2025 | 64.3 |
| SC Chile | 2025 | 32.1 |
| Offshore | < 2025 | 12.6 |
| Offshore | 2025 | 6.29 |
These years were very long ago (pre-2000) and the data still have an impact on the assessment. We don’t like them and want them to go away.
The historical weight at age in the assessment were not updated even though the data had been provided. Also, the mean weight at age for the older fish used a short-term historical mean. We instead would like to use the mean over the entire time series for these older fish (age 9-12) instead.
Model 1.14 was selected as the final model for 2026. This model incorporates data updated to 2025, flexibility in selectivity patterns for the SC Chile and Offshore fleets in 2025, and increased confidence (decreased CV) for the 2025 age composition data from the same fleets. The early years of Chile acoustic north survey data were downweighted, and the changes in Peruvian weight at age for older fish were corrected.
The \(B_{MSY}\) for this year (an average of the most recent ten years) will be 9.101 million tons.
The \(B_{MSY}\) for this year (an average of the most recent ten years) will be 7.527 million tons for the south stock and 0.172 million tons for the north stock.
| h1_1.14 | h2_1.14 | |
|---|---|---|
| catch_like | 0.87 | 1.24 |
| age_like_fsh | 262.92 | 244.38 |
| length_like_fsh | 471.47 | 473.21 |
| sel_like_fsh | 331.28 | 197.50 |
| ind_like | 187.77 | 192.97 |
| age_like_ind | 61.53 | 66.56 |
| length_like_ind | 0.00 | 0.00 |
| sel_like_ind | 10.70 | 10.84 |
| rec_like | -2.99 | 6.96 |
| fpen | 0.01 | 0.06 |
| post_priors_indq | 0.20 | 0.16 |
| post_priors | 0.00 | 0.00 |
| residual | 0.05 | 0.20 |
| total | 1323.82 | 1194.09 |