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
37 stars 17 forks source link

smarter rules for when Bratio isn't available in derived quantities (e.g. prior to first catch year)? #107

Open iantaylor-NOAA opened 3 years ago

iantaylor-NOAA commented 3 years ago

This line of code seem to limit the Bratio values reported to DERIVED_QUANTITES to start after the first year with catch: https://github.com/nmfs-stock-synthesis/stock-synthesis/blob/main/SS_readdata_330.tpl#L3550-L3551 Thus, in the "Simple" model, where the start year is 1971 and the first year with catch is 1972, the first Bratio value is Bratio_1973.

I'm assuming that ADMB can't handle sdreport variables that have no uncertainty.

However, as noted in the comment on that code, models which have recdevs prior to the start of fishing, as is common practice at NWFSC) will have uncertainty in Bratio in the start year, regardless of when catch starts. Models with initial equilibrium catch and estimated initial F parameters presumably also have uncertainty Bratio in the start year.

Would it be possible to make the rules for which years have Bratio smarter such that they check for other conditions which could lead to uncertainty in the Bratio values for the start year? This obviously isn't a high priority, but I've been in discussion recently about including uncertainty in Kobe plots and having those initial points would be helpful for that as well as for time series plots of relative spawning output.

Rick-Methot-NOAA commented 3 years ago

I will take a look at this. The linkage to catch is more for the calculation of Fratio, not Bratio. So solution might require separate specification of year range for each entity.

iantaylor-NOAA commented 3 years ago

Thank you. I note that for "Simple", the first year-specific values for the all the derived quantities are SSB_1971, F_1972, SPRratio_1972, and Bratio_1973. Since Bratio represents the Jan 1 values, it makes sense that the uncertain impact of catch on those quantities won't appear until after the first year with F and SPR available.

iantaylor-NOAA commented 1 year ago

The option to use Dynamic B0 as a depletion denominator was added as discussed in #69. If that option is chosen then the initial ratio of SSB/SSB_no_fishing will always have variance zero even if there are recdevs prior to the start year to estimate the initial age structure creating uncertainty in the depletion relative to static-B0. This would make a fix for this issue slightly more complex.

This issue was already low priority and we've gotten by this long without uncertainty in the first year Bratio, so I think we can apply a "wont-fix" label and close this.

Rick-Methot-NOAA commented 1 year ago

We should test this, but I believe that the use of first_catch_year gives SS3 the capability to adjust for this issue.