Thanks Dan for the good questions and thanks Kelli for a good response. Let me recap here, from the perspective of the current code which we intend to release soon as 3.30.17.
The first line, for benchmark (aka reference points), does not consider recruitment deviations because these are equilibrium quantities. The quantities beg_recr_dist, end_recr_dist, on that line refer to the distribution of recruitment among biological entities, seasons, and areas.
The second line for forecast has seen some development recently, as well as some additional warnings to help users avoid incompatible combinations. Here the concepts of recruitment deviations and recruitment_distribution both apply. There has been augmentation of the controls for both of these.
This new control, shown below from forecast.ss, controls the mean recruitment in the forecast. Older versions of SS3 only had option 0:
1 #_Forecast recruitment: 0= spawn_recr; 1=value*spawn_recr_fxn; 2=value*VirginRecr; 3=recent mean from yr range above (need to set phase to -1 in control to get constant recruitment in MCMC).
With this new option 3, the year range comes from the 2nd line that you originally referred to using the values for: beg_mean recruits, end_recruits
The annual deviations around that mean remain under control of the control file input for the phase of the forecast recruitment deviations.
Recently we realized that the control of the distribution of each forecast recruitment needed to align with the control of the mean forecast recruitment.
So now if you select option 3 to get mean forecast recruitment from the mean of a range of years of historical recruitment, SS3 will also get the mean distribution of those recruitments among bio entities and areas from the same range of years. Here is where we have added some more warnings if incompatible conditions are detected.
I hope this helps. Keep the questions coming. Kelli already included a link into our github repo. Check it out.
Rick