saved_run <- params$saved_run
plot_alternative <- 2L
worms_per_plot <- 15LGreenland turbot 2026 projections
A fully worked example
This fully worked example audits the current input files and, when explicitly selected, reads a completed projection attempt. Rendering never compiles or runs ADMB. Conditional projections describe the supplied inputs and assumptions; they are not adopted catch recommendations.
Run controls
From this directory, render the current input audit with:
quarto render greenland_turbot.qmdThe default selects no saved attempt, so this command works in a fresh source checkout and produces the audit without projection figures.
To include results, set saved_run in the YAML above or pass the actual attempt directory explicitly. This example path is illustrative; the report never selects the newest directory automatically:
quarto render greenland_turbot.qmd -P saved_run:spmR_runs/attempt-001Start a new projection manually
Run this chunk yourself in R after reviewing the input audit. It is excluded from rendering. Keep run_new_projections = FALSE until the histories are complete. Supply verified population weights, units and ages, or explicitly choose the diagnostic assumptions with use_diagnostic_weights = TRUE. Diagnostic mode cannot repair missing history values. Work from examples/gt_2026 in R.
source("run.R")
run_new_projections <- FALSE
use_diagnostic_weights <- FALSE
population_weights <- NULL
units <- NULL
ages <- NULL
if (run_new_projections) {
projection <- run_gt2026_projection(
diagnostic = use_diagnostic_weights,
population_weights = population_weights,
units = units,
ages = ages
)
projection$run_dir
}After a successful run, use the returned directory as saved_run and render again. Each new run receives a separate attempt directory. Re-rendering reads saved outputs and preserves the attempt contents.
Current status
Saved conditional projection loaded. No new projection was run.
Current recruitment and SSB lengths agree. Their calendar pairing and scientific declarations still require review.
Diagnostic population weights are fleet-weighted catch-weight proxies, not verified population body weights. SS3 export definitions, units, age order, plus group, initial abundance timing and spawning-weight/maturity definitions remain scientific review items. The audit below refers to current files; saved-run assumptions are displayed separately in the provenance section.
Input audit
The current controls request 1000 simulations across 7 alternatives for 15 years, beginning in 2026.
| Input | Status | Finding |
|---|---|---|
| Native metadata | info | A separate spm_input_v2.dat is optional; the runner embeds validated declarations in the staged species file. |
| R metadata | info | A separate spm_metadata.json is optional. Existing files are archived; staged declarations come from explicit arguments or diagnostic defaults. |
| Recruitment rows | repair | 2 copies of a 47 value series across 2 lines; retain one complete series. A second copy would be read as SSB. |
| Recruitment basis | ok | Source explicitly declares per_sex recruitment. |
| Spawning weights | repair | 4 zeros in effective spawning weights; stage them as 1e-12 for the current positive-weight contract. |
| Population weights | missing | Population body weights require explicit runner arguments and SS3 verification. Diagnostic defaults use Fratio-weighted catch-weight proxies, with fleet fractions 0.96, 0.04 |
| Units and ages | review | Thousand fish, kg, tonnes and ages 1:30/30+ are working assumptions requiring SS3 export verification. |
| SSB history | review | 47 positions; source label: # SSB 1978-2026 . Calendar pairing remains unresolved; restrict to Tier 3, Rec_Gen=1. The final two SSB values repeat the preceding pair; confirm this with the source export. |
| Maturity fields | info | All-one maturity retains effective spawning weights. Ntot and SexRatio describe all fish and the all-fish female fraction. Confirm the SS3 spawning-weight definition. |
| Controls | ok | 2026-2040; 7 alternatives; 1000 simulations. Adapter requires Tier 3, Rec_Gen=1, TAC_ABC=1, beginning year 2026 and ForProjections.dat. |
| TAC parameters | info | tacpar.dat is archived when supplied and unused with TAC_ABC=1. |
Projection figures
The three figures show Alternative 2: spawning biomass, catch and fishing mortality. Thin blue lines trace the same 15 simulations, selected by their sorted simulation IDs. The black line is the median across all simulations; the salmon ribbon spans their 5th–95th percentiles, a 90% projection interval. These are conditional results under the saved run’s assumptions.
Spawning biomass and catch use logarithmic y-axes. Dashed lines on the spawning-biomass figure mark B40 (22,484.6 t) and B35 (19,674 t), read directly from the saved output.
Simulation IDs shown: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
Fishing mortality uses a linear y-axis. Its dashed lines mark F40 (0.170193 per year) and F35 (0.199079 per year). These values come from the saved summary, whose SPR targets are verified as 0.40 and 0.35.
Provenance and checks
The report requires a successful native exit and verifies recorded input, output and archived-source hashes before displaying a saved run. It checks result dimensions, alternative/year/simulation keys and finite nonnegative quantities. Current-source differences are labelled rather than overwritten. Historical-recruitment simulation fits no parameters: maximum-gradient and positive-definite-Hessian diagnostics are not applicable in this mode.
| Provenance | Recorded value |
|---|---|
| Selected directory | spmR_runs/attempt-001 |
| Run ID | 20261028T002324.463680-run-1525f5710750b |
| Completed UTC | 2026-10-28 00:23:26 UTC |
| spmR version at execution | 0.4.3 |
| Executable SHA-256 | c4ef7d1d00712f0ae7a497c8aca97ba3de6f251084ab8b2285e815e3b43bd559 |
| Population weights | Fratio-weighted fishery proxies |
| Scientific status | Conditional computational projection; SS3 export review remains open |
| Archived source | Matches current source |
|---|---|
| spm.dat | TRUE |
| ForProjections.dat | TRUE |
| tacpar.dat | TRUE |
Current input fingerprints and rendering environment
spm.dat
"304be0910ad4b499f23213d4033c6c92fdd9ba15f822efe177440aa7e64d3466"
ForProjections.dat
"c59206cacc7485c43f2be7553ab764e5da871863fac0cb370c2e9310c4322506"
R version 4.6.1 (2026-06-24)
Platform: aarch64-apple-darwin23
Running under: macOS Golden Gate 27.0.1
Matrix products: default
BLAS: /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.6/Resources/lib/libRlapack.dylib; LAPACK version 3.12.1
locale:
[1] C.UTF-8/C.UTF-8/C.UTF-8/C/C.UTF-8/C.UTF-8
time zone: America/Los_Angeles
tzcode source: internal
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] bit_4.6.0 gtable_0.3.6 jsonlite_2.0.0 crayon_1.5.3
[5] dplyr_1.2.1 compiler_4.6.1 tidyselect_1.2.1 xml2_1.6.0
[9] stringr_1.6.0 parallel_4.6.1 tidyr_1.3.2 scales_1.4.0
[13] yaml_2.3.12 fastmap_1.2.0 ggplot2_4.0.3 readr_2.2.0
[17] R6_2.6.1 labeling_0.4.3 generics_0.1.4 patchwork_1.3.2
[21] knitr_1.51 htmlwidgets_1.6.4 tibble_3.3.1 tzdb_0.5.0
[25] pillar_1.11.1 RColorBrewer_1.1-3 ggthemes_5.2.0 rlang_1.3.0
[29] stringi_1.8.7 xfun_0.60 sass_0.4.10 fs_2.1.0
[33] S7_0.2.2 bit64_4.8.2 otel_0.2.0 cli_3.6.6
[37] withr_3.0.3 magrittr_2.0.5 digest_0.6.39 grid_4.6.1
[41] vroom_1.7.1 hms_1.1.4 lifecycle_1.0.5 vctrs_0.7.3
[45] evaluate_1.0.5 glue_1.8.1 farver_2.1.2 gt_1.3.0
[49] spmR_0.4.3 rmarkdown_2.31 purrr_1.2.2 tools_4.6.1
[53] pkgconfig_2.0.3 htmltools_0.5.9