Skip to contents

A simple control rule that allows fishing when the operational control point (OCP) is above some threshold. By default, this function sets the TAC at F = 100% FMSY when spawning depletion > 0.1.


  reps = 1,
  OCP_type = "SSB_SSB0",
  OCP_threshold = 0.2,
  Ftarget_type = "FMSY",
  relF_max = 1,



An object of class Assessment with estimates of FMSY or UMSY and vulnerable biomass in terminal year.


The number of stochastic samples of the TAC recommendation.


The type of operational control points (OCPs) for the harvest control rule used to determine whether there is fishing. By default, use ("SSB_SSB0" for spawning depletion. Other biomass OCPs include "SSB_SSBMSY" for spawning biomass relative to MSY and "SSB_dSSB0", for dynamic depletion (dynamic SSB0 is the historical reconstructed biomass with F = 0). For F-based OCPs, the terminal year fishing mortality relative F01 or Fmax (using yield-per-recruit) or F-SPR% (see SPR_OCP argument) can be used.


The value of the OCP above which fishing can occur.


The type of F used for the target fishing mortality rate.


The relative value of Ftarget if OCP > OCP_treshold.


Miscellaneous arguments.


An object of class Rec with the TAC recommendation.


The catch advice is calculated using the catch equation of the corresponding assessment. See Assessment@forecast$catch_eq, a function that returns the catch advice for a specified Ftarget.


Deroba, J.J. and Bence, J.R. 2008. A review of harvest policies: Understanding relative performance of control rules. Fisheries Research 94:210-223.

See also


Q. Huynh


# create an MP to run in closed-loop MSE (fishes at FMSY when B/B0 > 0.2)
SP_escapement <- make_MP(SP, HCR_escapement)

# The MP which fishes at 75% of FMSY
SP_escapement75 <- make_MP(SP, HCR_escapement, relF_max = 0.75)

# The MP which fishes at FMSY when BMSY > 0.5
SP_BMSY_escapement <- make_MP(SP, HCR_escapement, OCP_type = "SSB_SSBMSY", 
                              OCP_threshold = 0.5, relF_max = 1)

# \donttest{
myOM <- MSEtool::runMSE(MSEtool::testOM, MPs = c("FMSYref", "SP_escapement", "SP_BMSY_escapement"))
#>  Checking MPs
#> Error: Some MPs are not a functions of class `MP`: SP_escapement, SP_BMSY_escapement
# }