nmfs-ost / ss3-source-code

The source code for Stock Synthesis (SS3).
https://nmfs-ost.github.io/ss3-website/
Creative Commons Zero v1.0 Universal
38 stars 16 forks source link

[Feature]: add control for the denominator (anchor) for control rule #627

Open Rick-Methot-NOAA opened 1 month ago

Rick-Methot-NOAA commented 1 month ago

Describe the solution you would like.

With time-varying biology, it is ambiguous whether the harvest control rule inflection should be relative to the virgin SSB or the unfished, benchmark SSB. So, add a new control for this choice. Call it HCR_anchor.

Implement with:

3 # Control rule method (0: none; 1: ramp does catch=f(SSB), buffer on F; 2: ramp does F=f(SSB), buffer on F; 3: ramp does catch=f(SSB), buffer on catch; 4: ramp does F=f(SSB), buffer on catch) 
# values for top, bottom and buffer exist, but not used when Policy=0
0.4 # Control rule inflection for constant F (as frac of Bzero, e.g. 0.40); must be > control rule cutoff, or set to -1 to use Bmsy/SSB_unf 
# Also see HCR_anchor below
0.1 # Control rule cutoff for no F (as frac of Bzero, e.g. 0.10) 
0.75 # Buffer:  enter Control rule target as fraction of Flimit (e.g. 0.75), negative value invokes list of [year, scalar] with filling from year to YrMax 
#
3 #_N forecast loops (1=OFL only; 2=ABC; 3=get F from forecast ABC catch with allocations applied)
3 # First forecast loop with stochastic recruitment
1 # Forecast base recruitment:  0= spawn_recr; 1=mult*spawn_recr_fxn; 2=mult*VirginRecr; 3=deprecated; 4=mult*mean_over_yr_range
# for option 4, set phase for fore_recr_devs to -1 in control to get constant mean in MCMC, else devs will be applied
1 # multiplier on base recruitment 
2 # HCR_anchor: 0 or 1 uses unfished benchmark SSB (old hardwired approach), 2 = virgin SSB
#

Describe alternatives you have considered

continue with ambiguous and sometimes wrong approach

Statistical validity, if applicable

NA

Describe if this is needed for a management application

definitely yes

Additional context

No response