This document was compiled in RMarkdown, and shows the incremental results of the Chilean Jack Mackerel (Trachurus murphyi) stock assessment update in 2021. The files associated with this document can be found on Github.

Annoted data files can be found in the Excel spreadsheet JM Data files for SC09.xlsx on jjm/assessment/data.

The code to create the input files for this assessment and to run these models can be found in jjm/assessment/R/SC09_Bridging.R. Should you choose to run the models, please ensure that you have:

  • Compiled the latest jjm/src/jjms.tpl
    • This can be done by navigating to the jjm/src folder in your Terminal, and using the make command
    • You will need to have ADMB installed to do this.
    • This does not need to be done if you’re only re-compiling the R Markdown document.
  • Updated the jjmR package
    • This can be done in R using the command remotes::install_github("SPRFMO/jjmR")

1 Model Naming Convention

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 2020 (single stock h1 and two-stock h2) model and data set through 2020 (mod1.0 from SC08)
0.01 As 0.00 but with revised catches through 2020 (currently still estimates)
0.02 As 0.01 but with updated 2020 fishery age composition data for N_Chile, SC_Chile, and Offshore_Trawl, and updated 2020 fishery length composition data for FarNorth
0.03 As 0.02 but with updated 2020 weight at age data for all fisheries and their associated CPUE indices
0.04 As 0.03 but replaced offshore CPUE up to 2020
0.05 As 0.04 but with 2021 catch projections
0.06 As 0.05 but with updated 2021 fishery age composition data for N_Chile, SC_Chile, and Offshore_Trawl, and updated 2020 fishery length composition data for FarNorth
0.07 As 0.06 but but with updated 2021 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.10 As 0.09 but with updated AcousN 2021 index, with associated age composition and weight at age
———– ————–
Models 1.x Updated Model and Sensitivities
1.00 Update model (selectivity changes, recruitment) to 2021; 0.10 data file
1.01 As 1.00 but use revised data series “antiguo” of age composition and weight at age data for both Chilean fisheries and both Chilean acoustic surveys (assessment/NewAgeData/AgeDataInAssessment.csv)
1.02 As 1.01 but incorporate revised (validated) age data for surveys and fleets with M and maturity updated (M=0.35) (NOT RUN)
1.03 As 1.02 but M=0.45 (NOT RUN)
1.04 As 1.01 but with increased uncertainty (CV=0.4) for final year CPUE indices
1.05 As 1.04 but replacing 2020/2021 weight at age with 2019 revised “antiguo” data for N_Chile
if(!'devtools' %in% installed.packages()) install.packages('devtools')
devtools::install_github("SPRFMO/jjmR")

if(!'kableExtra' %in% installed.packages()) install.packages('kableExtra')

You’ll need to be in the jjm/assessment directory in order for the code here to run.

library(jjmR)
library(tidyverse)
library(kableExtra)

# MP note: normally I never use setwd in rmarkdown because it has unexpected behaviour. 
# I thought you would always end up in the jjm rootdirectory if you start up the markdown file?
# I cannot change the working directory by using setwd() ??
# LQ It might depend on the programme you use to open the file? Would be great if someone could test if this runs.

pwd <- getwd()
# if (!grepl(basename(pwd), "assessment", ignore.case = TRUE)) {
#   stop(paste("Set working directory to jjm/assessment"))
# }

geth <- function(mod,h=hyp) paste0(h,"_", mod)

fn.plotind <- function(mods2compare, indname) {
  fn.seldata <- function(x) {
  x$data$Index[,i] %>%
    bind_rows() %>%
    pivot_longer(everything(), names_to="year") %>%
    drop_na() %>%
    mutate(year=as.numeric(year),
            assessment_year=max(year))
  }

  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]])
  }

  p <- map_dfr(dat2use, ~as_tibble(.)) %>%
        mutate(assessment_year=as.factor(assessment_year)) %>%
        ggplot(aes(x=year,y=value,colour=assessment_year)) +
        geom_line() +
        theme_minimal() + 
        scale_x_continuous(breaks= scales::pretty_breaks())
  print(p)
}

fixed_bmsy <- function(mod,refpt=5500){
  old_rat <- (mod[[1]]$output[[1]]$msy_mt[,13])
  new_rat <- (mod[[1]]$output[[1]]$msy_mt[,12]/ refpt)
  mod[[1]]$output[[1]]$msy_mt[,13] <- new_rat
  mod[[1]]$output[[1]]$msy_mt[,10] <- refpt
  return(mod)
}

FinModName <- "1.05"

2 Re-running Last Year’s Model (a sanity check)

Re-running the 2020 model and comparing the results with that year’s SC meeting.

2.1 Single-stock hypothesis

2.1.1 Biomass

Plot comparing biomass estimated by last year's model (h1_1.00) with a re-run of the model this year (h1_0.00).

Plot comparing biomass estimated by last year’s model (h1_1.00) with a re-run of the model this year (h1_0.00).

2.1.2 Recruitment

Plot comparing recruitment estimated by last year's model (h1_1.00) with a re-run of the model this year (h1_0.00).

Plot comparing recruitment estimated by last year’s model (h1_1.00) with a re-run of the model this year (h1_0.00).

2.1.3 Fishing Mortality

Plot comparing fishing mortality estimated by last year's model (h1_1.00) with a re-run of the model this year (h1_0.00).

Plot comparing fishing mortality estimated by last year’s model (h1_1.00) with a re-run of the model this year (h1_0.00).

2.2 Two-stock hypothesis

2.2.1 Biomass

Plot comparing biomass estimated by last year's model (h2_1.00) with a re-run of the model this year (h2_0.00).

Plot comparing biomass estimated by last year’s model (h2_1.00) with a re-run of the model this year (h2_0.00).

2.2.2 Recruitment

Plot comparing recruitment estimated by last year's model (h2_1.00) with a re-run of the model this year (h2_0.00).

Plot comparing recruitment estimated by last year’s model (h2_1.00) with a re-run of the model this year (h2_0.00).

2.2.3 Fishing Mortality

Plot comparing fishing mortality estimated by last year's model (h2_1.00) with a re-run of the model this year (h2_0.00).

Plot comparing fishing mortality estimated by last year’s model (h2_1.00) with a re-run of the model this year (h2_0.00).

3 Incremental Data Updates

The most updated table of model runs can be found on Github.

3.1 Updating last year’s data

The data updated to 2020 include catch estimates, age and length compositions, and indices of abundance.

3.1.1 Single-stock hypothesis

3.1.1.1 Biomass

Plot comparing biomass estimated by last year's model (h1_0.00) with data updated to 2020.

Plot comparing biomass estimated by last year’s model (h1_0.00) with data updated to 2020.

3.1.1.2 Recruitment

Plot comparing recruitment estimated by last year's model (h1_0.00) with data updated to 2020.

Plot comparing recruitment estimated by last year’s model (h1_0.00) with data updated to 2020.

3.1.1.3 Fishing Mortality

Plot comparing fishing mortality estimated by last year's model (h1_0.00) with data updated to 2020.

Plot comparing fishing mortality estimated by last year’s model (h1_0.00) with data updated to 2020.

3.1.2 Two-stock hypothesis

3.1.2.1 Biomass

Plot comparing biomass estimated by last year's model (h2_0.00) with data updated to 2020.

Plot comparing biomass estimated by last year’s model (h2_0.00) with data updated to 2020.

3.1.2.2 Recruitment

Plot comparing recruitment estimated by last year's model (h2_0.00) with data updated to 2020.

Plot comparing recruitment estimated by last year’s model (h2_0.00) with data updated to 2020.

3.1.2.3 Fishing Mortality

Plot comparing fishing mortality estimated by last year's model (h2_0.00) with data updated to 2020.

Plot comparing fishing mortality estimated by last year’s model (h2_0.00) with data updated to 2020.

3.2 Updating this year’s data

The data updated to 2021 include projected catch estimates, age and length compositions, and indices of abundance.

3.2.1 Single-stock hypothesis

3.2.1.1 Biomass

Plot comparing biomass estimated with last year's data using the same model (h1_0.04) but with data updated to 2021.

Plot comparing biomass estimated with last year’s data using the same model (h1_0.04) but with data updated to 2021.

3.2.1.2 Recruitment

Plot comparing recruitment estimated with last year's data using the same model (h1_0.04) but with data updated to 2021.

Plot comparing recruitment estimated with last year’s data using the same model (h1_0.04) but with data updated to 2021.

3.2.1.3 Fishing Mortality

Plot comparing fishing mortality estimated with last year's data using the same model (h1_0.04) but with data updated to 2021.

Plot comparing fishing mortality estimated with last year’s data using the same model (h1_0.04) but with data updated to 2021.

3.2.2 Two-stock hypothesis

3.2.2.1 Biomass

Plot comparing biomass estimated with last year's data using the same model (h2_0.04) but with data updated to 2021.

Plot comparing biomass estimated with last year’s data using the same model (h2_0.04) but with data updated to 2021.

3.2.2.2 Recruitment

Plot comparing recruitment estimated with last year's data using the same model (h2_0.04) but with data updated to 2021.

Plot comparing recruitment estimated with last year’s data using the same model (h2_0.04) but with data updated to 2021.

3.2.2.3 Fishing Mortality

Plot comparing fishing mortality estimated with last year's data using the same model (h2_0.04) but with data updated to 2021.

Plot comparing fishing mortality estimated with last year’s data using the same model (h2_0.04) but with data updated to 2021.

3.3 Stepping through the CPUE replacements

3.3.1 SC Chile CPUE

3.3.1.1 Single-stock hypothesis

3.3.1.1.1 Biomass

3.3.1.1.2 Recruitment

3.3.1.1.3 Fishing Mortality

3.3.1.2 Two-stock hypothesis

3.3.1.2.1 Biomass

3.3.1.2.2 Recruitment

3.3.1.2.3 Fishing Mortality

3.3.2 Peru CPUE

3.3.2.1 Single-stock hypothesis

3.3.2.1.1 Biomass

3.3.2.1.2 Recruitment

3.3.2.1.3 Fishing Mortality

3.3.2.2 Two-stock hypothesis

3.3.2.2.1 Biomass

3.3.2.2.2 Recruitment

3.3.2.2.3 Fishing Mortality

3.3.3 Offshore CPUE

3.3.3.1 Single-stock hypothesis

3.3.3.1.1 Biomass

3.3.3.1.2 Recruitment

3.3.3.1.3 Fishing Mortality

3.3.3.2 Two-stock hypothesis

3.3.3.2.1 Biomass

3.3.3.2.2 Recruitment

3.3.3.2.3 Fishing Mortality

4 Final Data Update

This just shows the final data update, using the exact same model (i.e., with the same control files).

4.1 Single-stock hypothesis

4.1.1 Biomass

Plot comparing biomass estimated by last year's model (h1_0.00) with data updated to 2021 (h1_0.10).

Plot comparing biomass estimated by last year’s model (h1_0.00) with data updated to 2021 (h1_0.10).

4.1.2 Recruitment

Plot comparing recruitment estimated by last year's model (h1_0.00) with data updated to 2021 (h1_0.10).

Plot comparing recruitment estimated by last year’s model (h1_0.00) with data updated to 2021 (h1_0.10).

4.1.3 Fishing Mortality

Plot comparing fishing mortality estimated by last year's model (h1_0.00) with data updated to 2021 (h1_0.10).

Plot comparing fishing mortality estimated by last year’s model (h1_0.00) with data updated to 2021 (h1_0.10).

4.2 Two-stock hypothesis

4.2.1 Biomass

Plot comparing fishing mortality estimated by last year's model (h2_0.00) with data updated to 2021 (h2_0.10).

Plot comparing fishing mortality estimated by last year’s model (h2_0.00) with data updated to 2021 (h2_0.10).

4.2.2 Recruitment

Plot comparing recruitment estimated by last year's model (h2_0.00) with data updated to 2021 (h2_0.10).

Plot comparing recruitment estimated by last year’s model (h2_0.00) with data updated to 2021 (h2_0.10).

4.2.3 Fishing Mortality

Plot comparing fishing mortality estimated by last year's model (h2_0.00) with data updated to 2021 (h2_0.10).

Plot comparing fishing mortality estimated by last year’s model (h2_0.00) with data updated to 2021 (h2_0.10).

5 Model Update

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 was the same procedure that was applied to the previous year.

5.1 Single-stock hypothesis

5.1.1 Biomass

Plot comparing biomass estimates from last year's model (h1_0.00) to this year's (h1_1.00).

Plot comparing biomass estimates from last year’s model (h1_0.00) to this year’s (h1_1.00).

5.1.2 Recruitment

Plot comparing recruitment estimates from last year's model (h1_0.00) to this year's (h1_1.00).

Plot comparing recruitment estimates from last year’s model (h1_0.00) to this year’s (h1_1.00).

5.1.3 Fishing Mortality

Plot comparing fishing mortality estimates from last year's model (h1_0.00) to this year's (h1_1.00).

Plot comparing fishing mortality estimates from last year’s model (h1_0.00) to this year’s (h1_1.00).

5.2 Two-stock hypothesis

5.2.1 Biomass

Plot comparing biomass estimated by last year's model (h2_0.00) to this year's (h2_1.00).

Plot comparing biomass estimated by last year’s model (h2_0.00) to this year’s (h2_1.00).

5.2.2 Recruitment

Plot comparing recruitment estimated by last year's model (h2_0.00) to this year's (h2_1.00).

Plot comparing recruitment estimated by last year’s model (h2_0.00) to this year’s (h2_1.00).

5.2.3 Fishing Mortality

Plot comparing fishing mortality estimated by last year's model  (h2_0.00) to this year's (h2_1.00).

Plot comparing fishing mortality estimated by last year’s model (h2_0.00) to this year’s (h2_1.00).

6 Sensitivity Analyses

6.1 Chile’s Revised Age Data (“Antiguo”)

  • Updated age composition and weight at age for Chile_SC and Chile_N fleets, and also for AcousCS and AcousN surveys
  • Sample sizes remained the same
  • Current year is downweighted, as usual
  • 2021 data in 1.00 are already from the “antiguo” method
  • The data for Chile_AcousCS include 2010, 2011, 2012, 2017, and 2020. But this index hasn’t been updated in the assessment since 2009, due to changes in sampling design. These data are thus ignored for the time being.
  • **The data for Chile_AcousN are missing updated information for 2008, 2010, 2011, and 2012.
  • In the antiguo dataset, summing up the capt_ton by year leads to numbers greater than historical total catch (~7 mil tons in 1995). Is there something we’re missing?

6.1.1 Single-stock hypothesis

6.1.1.1 Biomass

6.1.1.2 Recruitment

6.1.1.3 Fishing Mortality

6.1.2 Two-stock hypothesis

6.1.2.1 Biomass

6.1.2.2 Recruitment

6.1.2.3 Fishing Mortality

6.2 Addressing CPUE Uncertainty

The final year of each CPUE index was downweighted, doubling the CV from 0.2 to 0.4.

6.2.1 Single-stock hypothesis

6.2.1.1 Biomass

6.2.1.2 Recruitment

6.2.1.3 Fishing Mortality

6.2.2 Two-stock hypothesis

6.2.2.1 Biomass

6.2.2.2 Recruitment

6.2.2.3 Fishing Mortality

6.3 Northern Chile Weight at Age

The final two years of weight at age for the northern Chilean fleet appeared to be out of the ordinary. They are now fixed to the weight at age from 2019.

6.3.1 Single-stock hypothesis

6.3.1.1 Biomass

6.3.1.2 Recruitment

6.3.1.3 Fishing Mortality

6.3.2 Two-stock hypothesis

6.3.2.1 Biomass

6.3.2.2 Recruitment

6.3.2.3 Fishing Mortality

7 Final Model

Model 1.05 was selected as the final model for 2021. This model incorporates:

  • revised “antiguo” Chilean age data,
  • increased uncertainty for final year CPUE data points, and
  • 2019 revised “antiguo” age data for the 2020 and 2021 N_Chile fishery.

7.1 Single-Stock Hypothesis

7.1.1 Fits to Data

7.1.1.1 Fishery Age Composition

7.1.1.2 Fishery Length Composition

7.1.1.3 Survey Age Composition

7.1.1.4 Index Data

7.1.2 Projections

7.1.2.1 SSB

7.1.2.2 Catch

7.1.3 Risk Table

Multiplier of \(F_{2021}\) \(B_{2023}\) P(\(B_{2023}\) > \(B_{MSY}\)) % \(B_{2027}\) P(\(B_{2027}\) > \(B_{MSY}\)) % \(B_{2031}\) P(\(B_{2031}\) > \(B_{MSY}\)) % Catch 2022 (kt) Catch 2023 (kt)
0 12675 100 15884 100 15594 100 0 0
FMSY 10191 100 7669 96 5925 63 1654 1911
0.75 11502 100 11282 100 9654 99 748 941
1 11145 100 10156 100 8404 95 987 1214
1.25 10805 100 9184 99 7390 87 1220 1469

7.1.4 Kobe Plot

Note that BMSY is set to the interim level of 5.5 kt in this scenario.

7.1.5 Summary Plot

7.1.6 Retrospective

7.1.6.1 Model Retrospective

7.1.6.1.1 SSB

7.1.6.1.2 Recruitment

7.1.6.2 Historical Retrospective

7.1.6.2.1 Derived Quantities

7.1.6.2.2 Reference Points

7.2 Two-Stock Hypothesis

7.2.1 Fits to Data

7.2.1.1 Fishery Age Composition

7.2.1.2 Fishery Length Composition

7.2.1.3 Survey Age Composition

7.2.1.4 Index Data

7.2.2 Projections

7.2.2.1 SSB

7.2.2.2 Catch

7.2.3 Risk Table

7.2.3.1 Stock_1

Multiplier of \(F_{2021}\) \(B_{2023}\) P(\(B_{2023}\) > \(B_{MSY}\)) % \(B_{2027}\) P(\(B_{2027}\) > \(B_{MSY}\)) % \(B_{2031}\) P(\(B_{2031}\) > \(B_{MSY}\)) % Catch 2022 (kt) Catch 2023 (kt)
0 10702 100 13425 100 13267 100 0 0
FMSY 8722 100 6977 100 5418 100 1264 1404
0.75 9674 100 9533 100 8106 100 631 763
1 9367 100 8610 100 7072 100 830 978
1.25 9075 100 7823 100 6247 100 1023 1175

7.2.3.2 Stock_2

Multiplier of \(F_{2021}\) \(B_{2023}\) P(\(B_{2023}\) > \(B_{MSY}\)) % \(B_{2027}\) P(\(B_{2027}\) > \(B_{MSY}\)) % \(B_{2031}\) P(\(B_{2031}\) > \(B_{MSY}\)) % Catch 2022 (kt) Catch 2023 (kt)
0 3101 99 2746 98 2371 91 0 0
FMSY 2798 98 1806 69 1108 2 202 164
0.75 3014 99 2441 94 1949 76 53 55
1 2987 98 2353 92 1830 68 70 70
1.25 2962 98 2271 90 1719 59 87 85

7.2.4 Kobe Plot

7.2.4.1 Stock_1

7.2.4.2 Stock_2

7.2.5 Summary Plot

7.2.6 Retrospective

7.2.6.1 Model Retrospective

7.2.6.1.1 SSB

7.2.6.1.2 Recruitment

7.3 Likelihood Table

h1_1.05 h2_1.05
catch_like 1.08 1.37
age_like_fsh 377.38 344.94
length_like_fsh 463.43 507.26
sel_like_fsh 270.95 140.88
ind_like 265.32 207.14
age_like_ind 109.41 96.40
length_like_ind 0.00 0.00
sel_like_ind 15.83 15.59
rec_like 0.36 4.67
fpen 0.01 0.02
post_priors_indq 0.23 0.21
post_priors 0.00 0.00
residual 0.01 0.10
total 1504.01 1318.58

8 Other Business

8.1 General

8.2 Other models to run

  • Sensitivities to new age data as discussed in the data workshop
  • Run retrospective