Edit model run

FRAM allows users to explore different management scenarios by adjusting “inputs” ([Per-run parameters]) that control fishery and stock properties.

For some analyses, it may make sense to adjust model parameters outside of the FRAM application. For example, a uniform increase or decrease in a group of fisheries over multiple time steps may be accomplished more easily by manipulating the project database directly.

However, the main menu “Edit model run” button accesses a convenient interface for changing individual values within the application. Clicking this produces a submenu divided into further “Stock” and “Fishery” buttons.

Stock recruits

Stock recruit scalers (StockRecruit in [Per-run parameters]) are multiplied against a base period abundance (BaseCohort in [Base period parameters]) to generate a starting, pre-fishing cohort by stock (and age for Chinook).2

These parameters represent the magnitude of the current stock abundance relative to that during the base period years. Thus, a stock recruit scaler of 1 indicates an annual abundance for that stock equal to the base period, a value >1 is an abundance larger than the base period, and <1 is an abundance smaller than the base period.

Coho ‘Recruit Cohort’ values are in January age-3 units, whereas Chinook ‘Recruit Cohort’ contains four age-class specific initial ocean abundance values.

For preseason forward runs, stock recruit scaler values are a function of stock-specific forecasts provided by technical staff at the beginning of the planning cycle. They are generally established at the outset of preseason planning and then updated if necessary as additional data are available for the year (i.e. Canadian Chinook forecasts are not usually available until the end of March). For Chinook, stock recruit scalers are typically produced from terminal run size forecasts by running Backwards FRAM.

Accordingly, recruit scalers would not usually be manually adjusted during a typical forward model run, but the interface enables this possibility if, for example, one wanted to explore the implications of a much larger or smaller salmon return than was predicted or with a different age distribution (e.g., “what happens if stock X returns at half of what was forecast and/or with far more younger fish?”).

Note that updating the stock recruit scaler will automatically update the associated recruit cohort and vice versa.

The “Read Recruits” button can be used to load forecast values compiled in the external FRAMVSTemplate file from sheet FRAM_Recruits. Conversely, the “Fill Spreadsheet” button can be used to download values from the model run to the FRAMVSTemplate file, where additional notation or comments can be stored.

Stock/Fishery Scalers

Stock-fishery-specific exploitation rate (ER) scalers allow adjustments to the base period directed impacts of a particular fishery on a specific stock or group of stocks within each time step. These scalers function act on the base period fishery-stock-specific ERs.

These parameters can provide a temporary fix to an identified issue in the FRAM base period calibration. They are also used to represent negotiated closures within a fishery (e.g. a spatial closure). Any such adjustments must be supported by an accepted external analysis of fishery-stock interactions which demonstrates how and why the fishery would be expected to have different stock-specific contribution levels than it had during the base period years (e.g. CWT recoveries or genetic stock identification).

Stock-fishery-specific ER scalers display 0 until a fishery is selected from the upper left drop-down menu.

If a fishery/time-step is not modeled, a “****” is displayed with blue highlight.

By default, the values are equal to 1, which means the base period exploitation rate is used. Thus, a value >1 is a larger ER than the base period and <1 is smaller than the base period ER.

After choosing the focal fishery, the desired values are directly input into each cell and the “Ok - Done” button writes those changes to the project database for the active model run. These changes then persist across subsequently copied runs.

Few to none of these scalers may be “actively” modifying the many possible stock-fishery combinations in a FRAM run, and the red “Show Active Scalers” button presents a secondary screen filtered to and highlighting those particular instances. Although values cannot be directly modified on this screen, it can serve as a useful check of the current model run parameterization.

Stock-fishery scalers display 0 until a fishery is selected.

Stock-fishery scalers display 0 until a fishery is selected.

Fishery Quota/Scalers

These [Per-run parameters] control the representation of fishery effort and may be the most frequently adjusted FRAM element during preseason planning.

As noted in the [Edit input parameter values] section of [A Basic Forward Run], legal, landed catch fishery impacts are controlled by “quotas” and/or “scalers” which are in turn controlled by per-timestep fishery flags. Values entered or adjusted under the quota/scalers input menus are stored in the [Project database tables] FisheryScalers. Fisheries without an input will be modeled with a default fishery effort scaler of 0.0 (flag = 1).

The flag values (displayed in the interface) determine whether the fishery is treated as non-selective and/or mark selective, and whether catch is processed as a fixed expectation (quotas) or as effort relative to the base period (scalers). Both modes operate on the fishery as a whole, combining with stock and age specific exploitation rates to determine resulting impacts from the fishery.

Note that many fishery/time-step cells are filled with asterisks (****) designating a lack of base period information to model that stratum. If a fishery now operates in one of those time steps the input (and impacts) need to be combined with an adjacent fishery or time step.

A single value in the input interface (either a scaler or quota) can be entered, and once the model is run, the resulting associated value will be populated in the interface (e.g. enter a quota value here and proceed through the menus to complete a model run, which will then return the resulting scaler value for that entered quota). Several values can be entered or updated before clicking “OK – Done”.

Fishery flag effects are shown below the current scaler and quota values.

Fishery flag effects are shown below the current scaler and quota values.

The values for mark-selective fisheries are displayed on a secondary input screen that is displayed after selecting “Ok - done”. Only fishery and time steps flagged in the first fishery controls screen as mark-selective or a combination with a mark-selective component will be present in the secondary MSF input screen (flags 7, 8, 17, 18, 27,28; displaying a magenta highlight in Scaler/Quota cells). Thus, if you want to enter a MSF or change a MSF input parameter, be sure it is flagged as such first.

In addition to scaler and quota inputs, the MSF fishery controls input screen also contains four additional input parameters. Some of these parameters are derived and agreed-to each preseason planning cycle by salmon co-managers and others are set by the PFMC management process. Thus, some stay fairly static year-to-year and some change annually.

  • Release Rate: Hooking release mortality rate (landed fish then released)
  • Marked MisID: Release rate of marked fish that could be legally retained
  • UnMark MisID: Retention rate of unmarked fish that should have been released
  • DropOff Rate: Fishery-related mortality rate (fish that escape but die due to injury)

Note these four MSF input parameters cannot have a zero value and must be >0.0000.

Mark-selective values are displayed on a second interface after approving non-selective values.

Mark-selective values are displayed on a second interface after approving non-selective values.

Altering a fishery quota has fairly intuitive implications (though the target value may itself result from considerable additional calculation external to FRAM). In contrast, the particular numeric effects of altering fishery scalers requires more prior knowledge of the base period practices (and stock composition).

In addition to the direct adjustment of single values in the interface (which are then written to the database), the “Import catch” and “Export to spreadsheet” buttons provide functionality to read and write values for all fisheries and time steps at once from an external [FRAMVSTemplate file], on sheets FRAMinput and FRAM_MSF. Note also the “clipboard copy” option in the upper left corner of the interface.

Non-Retention

Coho or Chinook non-retention (CNR) inputs represent any fishery (or portion of a fishery) that will be open for salmon fishing but requires release of Coho or Chinook. Differences in the input menu screens for Coho and Chinook reflect the different methodologies.

For Chinook, similar to other inputs, control flag values (flags 1 – 4) determine the mode by which non-retention impacts are calculated, with different modes requiring various additional parameter values (Field1, Field2, Field3, Field4) (definitions displayed in the lower left of the interface window). Typically, only flag 3 (Legal/Sublegal Encounters) or flag 4 (Total Encounters) are used. Encounters for Puget Sound marine sport fisheries can be automatically updated using the [Automate Pass 1 Pass 2] button on the FRAM Utilities menu.

For Coho, non-retention mortality is calculated outside of the model and entered as the total number of dead fish resulting from the non-retention portion of a fishery/time-step. Typically, the value is derived from a historic level of landed or encountered coho and then applying both a release mortality rate and a drop-off mortality rate to that historic level, and summing the two types of mortalities.

Similarly, the individual values can be altered (and consequently saved to the run in the database) and there is also a button to “Zero All Fields”. In addition, the interface provides options to “Import NonRetention” and “Export to Spreadsheet” all fishery/time steps from the external FRAMVSTemplate file (sheet FRAM_CNR).

Note many fishery/time-step cells are filled with asterisks (****) designating a lack of base period information to model that stratum. If a fishery now operates in one of those time steps the input (and impacts) need to be combined with an adjacent fishery or time step.

Chinook non-retention impacts

Chinook non-retention impacts

Coho non-retention impacts

Coho non-retention impacts

Size Limits (Chinook)

The minimum length of legal landed catch is defined per-fishery and time-step. This is relevant for multi-aged Chinook modeling where the minimum retention size limit (unit = fork length in millimeters) may vary annually, by fishery and/or by time-step. Generally:

  • troll fisheries often require larger fish than sport in the same location and time
  • winter limits are often smaller
Size limits

Size limits

Save Model Run Inputs

Model input parameters are saved in memory within the FRAM interface when values are entered or updated from any “Edit Model Run” submenu.

Once the user has modified stock or fishery inputs from the main input menu and clicked the “Exit” button to return to the FRAM Main Menu, the “Save Model Run Inputs” button should be selected. This step writes the working set of input parameters to each of the appropriate project database tables for the model run.

If you select the button, a message “No input values have changed. No action taken.” may appear if there have been no changes made.

However, if changes have been made but are only currently in memory, then several options will appear: “Replace Current Model Run” or “Save NEW Model Run”, and a “Cancel Save” button to return to the Main Menu.

If the “Replace Current Model Run” is selected, then any changes will overwrite the values in the project database for the model run shown at the bottom of the application window. Upon completion, the program will return to the Main Menu with the same model run name.

If the “Save NEW Model Run” button is selected, then the program will display the Copy model run screen to allow entry of a new run name, run title, run year, comments on changes, etc. This process will generate a separate model run in the project database that includes the model input changes. By default, FRAM will name a new model run “COPY OF ……” the currently selected model run name. After clicking “OK – Done”, the program will complete the database write and return to the Main Menu with the new model run selected.

Save model run screen

Save model run screen

Run Model

This menu item initiates a model run - applying the current parameters and input values to produce new output values.

The application monitors when a user may have altered values relative to the currently loaded run. If “Run Model” is selected when input values have changed but have not yet been saved to the project database tables associated with the model run, then a pop-up window will prompt with the message “Input Values Have Been Changed! Changes Must be Saved before Running Model!!! Save Current Model Run???”.

If you select “Yes” and save your model inputs by replacing the current model run or creating a new model run, then when you click “Run Model” from the Main Menu, it will present the Model Run Specifications menu.

If you select the “No”, a message will warn you “Please be aware that the OUTPUT for this model run cannot be duplicated without saving your INPUT values.” If you click “OK”, then it will present the Model Run Specifications menu.

The forwards FRAM Model Run Specifications menu screens include several optional checkboxes which differ by species. The sections below describe these in more detail.

The “Select TAMM” button is used to navigate to and select an associated TAMM file (see also Running FRAM with TAMM). Note that when a model run with a TAMM begins, the prompt “Do you want to save TAMM Transfer Values into TAMM spreadsheet?” will apear. Choosing “Yes” will ensure TAMX values are updated. After run completion, the TAMM file used will include updated values and be open, though possibly in the background. Make sure to navigate to the open TAMM file and save it to retain the modeled values.

Once the model run is complete, the model run name may have been updated with a prefix in the list of model runs within a database (Main Menu – Select Model Run to see list). For coho, the prefix “bc-“ is added when the default calculations for MSF bias correction have been used in a model run. For Chinook, the prefix “SLC-“ is added when the default calculations for size limit fix have been used in a model run.

Coho

Model run options for Coho

Model run options for Coho

Run coastal iterations

Beginning with the 2017 preseason, FRAM was updated to automate a previously manual process of iterating Washington coastal terminal fishery inputs between TAMM and FRAM. The fishery inputs are read into FRAM from a formatted table on TAMM sheet WACoastTerminal (starting row 150, cells in green highlight, as landed catch; flag 2 = fishery quota) and iterated to ± 1 fish.

When working with a Coho project database, from the main menu “Run Model” button, the Model Run Specifications screen requires you to select the TAMM file associated with the model run and then select the checkbox for “Run Coastal Iterations” before clicking the “RUN Model” button to complete the process.

By default, this checkbox should be used/checked with all preseason Coho model runs, as Washington coastal iterations are needed every time a terminal area’s fishery structure changes or when a pre-terminal FRAM fishery changes the ocean escapement value.

In general, FRAM produces an ocean escapement for each Washington coastal coho stock and regional technical staff utilize those values in regional terminal harvest management models. The local stock-specific harvest rates from the regional terminal models are then utilized in the WACoastTerminal sheet of the TAMM and in subsequent calculations. These results differ from the base period exploitation rates used in FRAM.
However, FRAM is used with base period stock composition for associated impacts upon non-local stocks in terminal regional fisheries with “dip-ins” (i.e. fish which could be expected to return to their native systems if not harvested; not a stray).

Thus, the final results of stock impacts in Washington coastal terminal fisheries are a combination of regional specific local stock impacts and those produced by the FRAM and its base period.

Run without MSF bias correction

By default, a mark-selective fishery bias correction factor is used in both preseason and post-season Coho FRAM modeling. The MSF bias correction in FRAM was a result of demonstrating that unmarked mortalities were underestimated due to multiple encounter bias from mark-selective fisheries [@conrad2010] and the desire to incorporate bias-corrected equations into FRAM [@conrad2011, @ahb2012].

The checkbox “Run w/o MSF Bias Correction” should not be checked except in unusual circumstances or for troubleshooting purposes. As a result of the MSF bias correction factor calculations in FRAM, the program will often prompt the user with a warning that a particular stock has exceeded 100% ER (i.e. the stock size has gone negative in the model and at what point). This is often helpful in troubleshooting issues with fishery inputs.

Chinook

Model run options for Chinook

Model run options for Chinook

Old Chinook TAMM Format (10 + 11 Sport Combined)

Prior to 2007, FRAM combined fishery impacts from Areas 10 and 11 sport for the purpose of TAMX reporting. These fisheries are now separated in TAMX. Loading a current TAMX into a pre-2007 TAMM will result in line offsets that create errors.

Check this button, if you want to run and load TAMX output into an old version of TAMM.

Use Chinook TAMM FWS (No Iterations)

Selecting this button when running FRAM with TAMM will not load TAMI values into FRAM, yet load TAMX output into TAMM. Existing FRAM terminal fishery values will be used to run FRAM. TAMM iterations will not be performed.

This button is rarely used, but can be a helpful shortcut when needing TAMM output, but TAMM terminal fishery inputs are not available. Compiling information for a long time series of post-season runs is an example of where this procedure may be beneficial. TAMM consolidates a multitude of terminal fishery inputs into just a few key TAMI values. These fewer, consolidated values are easier to compile than the detailed TAMM inputs (e.g., avoiding splitting post-season catches into regulation periods for sockeye, coho, chum etc.). Terminal fishery catches can be directly entered into FRAM. As long as TAMM contains updated terminal run sizes and freshwater inputs, TAMX output will be compatible with the TAMM it is loaded into.

Chinook Brood Year AEQ Report

Selecting this check box produces a brood year exploitation rate report called “BY-Cohort-Compare-FramVS.txt” located in the same directory as the FRAM database.

Brood year calculations subject the forecast abundance of an age to the current fishing year’s fishery inputs, calculate the resulting escapement as well as the number of fish remaining in the ocean and advance to the next age. The resulting age+1 is then also subjected to the same fishery inputs, until age 5 is reached. Thus the same fishery inputs are used for all four ages (2-5) resulting from a brood year. FRAM algorithms are applied to each age class in forward and reverse mode.

Note that, in contrast, a “true” brood year run would apply fishery inputs from the first year to age 2s, compute the resulting age 3s, apply fishery inputs from year+1 to these age 3s, compute the resulting age 4s, apply fishery inputs from year+2 to these age 4s, compute the resulting age 5s, and finally apply fishery inputs from year+3 to the age 5s.

Forward and reverse brood year computations by age; i.e. calculate age 2 starting cohort for age 3 forecast with reverse calculations, then calculate age 4 and 5 starting cohort with forward calculations.

Chinook brood year AEQ report conceptual approach

Chinook brood year AEQ report conceptual approach

This then generates a report with this type of information:

Chinook brood year AEQ report

Chinook brood year AEQ report

No size limit fix

FRAM allows for evaluations of the effect of changes in minimum size limit regulations to fishery catches and stock impacts. Size limits are altered infrequently in hook and line salmon fisheries. FRAM’s original size limit evaluation algorithms were problematic, because they resulted in changes to the number of total encounters with each size limit change. FRAM uses different rates to model encounters of legal and sublegal fish. These rates are computed during the calibration process and are based on landed catch and encounter information during base period years (currently brood years 2005-2008).

When size limits are modeled in FRAM, each fish smaller than the size limit is treated as a sublegal fish. Sublegal encounter rates are used to compute releases and release mortalities. Conversely, each fish larger than the size limit is deemed legal and legal encounter rates are used to estimate catch as well as releases and release mortalities in mark selective fisheries. As the size limit is changed, a portion of the population (with sizes between the old and the new size limit) that previously received a sublegal encounter rate will receive a legal encounter rate or vice versa. Because legal and sublegal encounter rates are not the same for the same stock and age, this leads to the total number of computed encounters varying with size limits, an incorrect outcome, if effort remains constant.

FRAM incorporates corrected equations that hold total encounters constant, regardless of the modeled size limit (@ahb2013, @mchugh2015, @johnson2015).

In a first round of evaluations, FRAM computes sublegal encounters using sublegal/legal ratios based on recent field data (i.e., length-frequency data for Chinook encounters in recreational test fisheries). These ratios are updated each year in the [Project database tables] “SLRatio”. To produce the desired sublegal encounters, FRAM iteratively calculates an “Encounter Rate Adjustment” for each fishery and time step, such that sublegal encounters summed over stocks and ages within a fishery and time step produce the target sublegal/legal ratios, given legal sized, landed catch inputs (fishery scalers or quotas). Once run, “Encounter Rate Adjustments” are stored in the “RunEncounterRateAdjustment” column of the “SLRatio” table.

Size limit changes are evaluated with Van Bertalanffy growth equations. These equations determine the proportion legal and or/sublegal by stock and age under desired size limit regulations. The model calculates the legal and sublegal encounters for both the original and new minimum size limit and then adjust the differences so that total encounters remain constant.

When the new size limit is less than the base-period size limit, the difference in sublegal encounters between the base size-limit and the new size-limit becomes landed catch that is added to the calculated landed catch evaluated at the base-period size limit. Encounters are calculated by dividing the encounter estimates by the sublegal release mortality rate.

Conversely, when the new size limit is greater than the base-period size limit, the difference in landed catch between the new size limit and the base-period size limit becomes sublegal encounters. This encounter difference is added to the calculated sublegal encounters from the base-period size limit to get total sublegal encounter mortality.

When this button is checked, FRAM will not automatically update the encounter rate adjustments needed to achieve desired sublegal/legal ratios and instead use the encounter rate adjustments in the existing model run. FRAM will also revert to original size limit evaluation algorithms, where total encounters can fluctuate when size limits are changed.

If unsure, please leave this button unchecked (default), as the default setting will produce the most accurate run. However, there are several reasons to check the “No-Size-Limit-Fix” button:

  • To speed up the run, as sublegal encounter iterations, especially when performed with TAMM, can be very time consuming. However, for correct results, the following assumptions need to be met:
    • “Encounter Rate Adjustments” were updated during a previous model run and will result in desired sublegal/legal ratios (see Background paragraph above).
    • The sublegal/legal ratios in the database were computed for the same size limits that exist in the current model run.
  • For backwards compatibility to reproduce an “old-style” (pre 2013) run

Cohort T4 pre 2012 Processing

This button exists for backwards compatibility reasons. Prior to 2012, FRAM would not have reused time step 1 forecasts in time step 4 for ages with a missing “age minus 1” abundance. Chinook age up in time step 4; i.e. an age 2 fish becomes an age 3 fish, an age 3 fish turns age 4, etc. Previously, if a stock was not expected to return at a certain age, time 4 of age+1 would have been left blank. Since 2012, for these stocks, time step 4 of a given age reuses the time step 1 abundance of the same age.

Chinook T4 pre 2012 processing differences

Chinook T4 pre 2012 processing differences

Don’t reuse T1 when A5 = 0

The “Don’t reuse T1 when A5=0” button was added for backwards compatibility of runs constructed between 2012 and 2021. When the corrections in the previous paragraph were implemented, the modelers added a provision to prevent re-use of time 1 abundances in time 4, when age 5 abundance was zero. The extra condition was added to prevent recycling ages that are actually the end of days for a particular stock or single brood production case. It is however much more common for stocks to miss an age 5 abundance than to be discontinued. Therefore, this provision was eliminated. Checking the button re-instates the age 5 condition in order to reproduce runs conducted between 2012 and 2021.

S:L ratio update

Since 2014, FRAM computes sublegal encounters using sublegal/legal ratios (@mchugh2015, @johnson2015). These ratios are usually derived from recent field data (i.e., length-frequency data for Chinook encounters in recreational test fisheries) and updated annually in the “SLRatio” table of FRAM’s ACCESS database. To produce the desired sublegal encounters, FRAM iteratively calculates an “Encounter Rate Adjustment” for each fishery and time step such that sublegal encounters summed over stocks and ages within a fishery and time step produce the target sublegal/legal ratios, given legal sized landed catch inputs (fishery scalers or quotas). Once run, “Encounter Rate Adjustments” are stored in the “RunEncounterRateAdjustment” column of the “SLRatio” table.

The “S:L Ratio Update” button is a relic from pre-2019 FRAM.exe releases. The new FRAM default (leave “No Size Limit Fix” button unchecked) automatically updates Encounter Rate Adjustments with each model run in the course of computing size limit corrected legal and sublegal encounters.

When this button is clicked, FRAM will calculate “Encounter Rate Adjustments” for each fishery and time step such that sublegal encounters summed over stocks and ages within a fishery and time step produce the target sublegal/legal ratios. These ratios are then stores in the “RunEncounterRateAdjustment” column of the “SLRatio” table.

A message box will appear when clicking the “S:L Ratio Update” button.

The user then has the option to check “Load TargetRatio from spreadsheet” box before clicking the “Initialize” button. This brings up a file selection dialog box. Choose the file with the desired sublegal/legal ratios. The file will most likely have “SL Ratios…” in the title and contain a tab called “SLRatioImport”. If the ratios are already loaded, leave this box unchecked. As soon as the ratios are loaded in the database, within a few seconds of clicking “Initialize”, FRAM’s “Run-Menu” will appear. Select the “Run Model” button to run FRAM as usual.

Since “Encounter Rate Adjustments” are automatically updated in the default mode, selecting this option only makes sense in combination with clicking the “No Size Limit Fix” button. This results in a model run with updated “Encounter Rate Adjustments”, but old size limit evaluations. Doing so is only advisable if the user is sure that size limits in the current model run are compatible with the sublegal/legal ratios in the database. One other reason to select the “S:L Ratio Update” button is the option to programmatically load target sublegal/legal ratios from an Excel workbook as described above.

Output/Results

A FRAM model run produces [Output values] that are stored in several [Project database tables].

These results can be accessed and analyzed with external applications such as R or Microsoft Excel, and this is often preferable when addressing multiple model runs. For example, when examining a particular stock or fishery across multiple model runs within a single project database, the key tables can be joined and filtered to reach a focal subset for further manipulation and visualization.

However, the FRAM application also provides functionality to interactively view results for a single run by selecting the main menu button Output/Results.

Screen reports

The “Output Type Selection” submenu offers Screen Reports. Note that if all values are zero within these reports, then the model must be run in the project database to generate actual results.

Selecting this then displays several further options.

Select a screen report by clicking in the appropriate checkbox. Once in view, note that many of these reports include a “clipboard copy” option in the upper left corner. This allows the user to paste the data into other external programs (e.g., Microsoft Word or Excel).

Fishery mortality reports

This view aggregates across stocks within a fishery, summarizing different types of mortality. For Chinook, these values can be displayed summed or broken out by age per fishery (i.e., all age 3 catch within fishery N). Results may also be displayed as a zero value for strata in which base period data are unavailable. In other screen reports, these strata are often denoted with “****”.

  • Landed Catch designates fish that are caught and retained
  • NonRetention includes incidental mortalities from mark-selective fisheries and/or other fisheries not targeting Chinook or coho (e.g., pink or chum salmon, test fishing, etc.)
  • Shakers accounts for non-landed mortalities from sub-legal encounters
  • Dropoff (also net drop out) represents mortality from encounters in which the fish is never observed (i.e., “the one that got away”)
  • TotalMortality is the sum of these components
  • For Chinook, AEQ-Total Mort designates the “adult equivalent” translation of the total mortality, reflecting an age-based estimate of the fish that could have actually survived to return to spawn given subsequent years of fishing and non-fishing related impacts (e.g., younger fish that are killed due to fishing in year Y would not necessarily have survived to return in a later year Y+t, even in the absence of year Y’s fishing)

Stock mortality reports

The mortality types described above can also be viewed by fishery and time step for an individual stock or a selected sub-set of stocks. After selecting this report, a menu allows selection of a single stock or multiple stocks using Control+Click. After the desired stocks are highlighted, click “OK – Done” to view the report. The fishery mortality data types will be summarized for all stocks selected.

Population statistics

The “popstat” report is regularly used for Chinook, as it clearly illustrates changes through the major FRAM processing steps that take a stock from starting cohort to escapement. It presents the cohort trajectory through time steps for each stock, broken out by age for Chinook. The columns describe the progression through time of the starting cohort through natural mortality, pre-terminal fisheries, maturation, and terminal fisheries to escapement. For Chinook, note that FRAM currently calculates “marine escapement” while “spawning escapement” is handled within TAMM.

For Chinook the report data represent by time step: starting cohort by age (T#-StartCoh), cohort after natural mortality (T#-postNM), cohort after pre-terminal fisheries (T#-postPT), mature cohort resulting from stock-specific maturity age parameters as provided by the base period (T#-Mat), escapement of the mature cohort remaining after FRAM’s set of terminal fisheries (T#-Esc).

For Coho the report data represent by time step: starting cohort (T#-Coht), cohort after natural mortality and pre-terminal fisheries (T#-Rem), mature cohort in time step 5 (Oct-Dec) only (Mature), and escapement of the mature cohort remaining after terminal and freshwater fisheries (Escape; i.e. spawner escapement).

Mark-Selective Fishery Reports

This option generates detailed accounting of stock-specific mortality for a selected mark-selective fishery and time step. All fisheries/time-steps flagged as mark-selective in a particular model run will be available in the drop-down menu on the upper left. Once a selection is made, the values for each stock impacted in that fishery/time-step are presented. Values for unmarked and marked components include: handled fish, catch mortality, non-retention mortality, drop-off mortality, and for Chinook only will include sub-legal mortality.

Additionally, the red “WDFW MSF Report” button transfers Chinook information related to landings, encounters, and mortalities aggregated across all stocks to an external Excel spreadsheet. The button is not available for Coho modeling.

Fishery stock composition report

After selection of a single fishery from the drop-down menu, this report displays the percentage of each stock within the total mortality for each time step. Only those stocks impacted by the fishery will be displayed (i.e. a different set of stocks can be displayed for each fishery). Note: for Chinook fisheries without a 100% model stock proportion, percentages within this report only represent the modeled portion of the catch.

Stock impacts per 1000

This normalized view of stock-specific total mortality impacts for each fishery and time step offers another perspective on relative differences. This report demonstrates the stock contribution (in numbers of non-AEQ fish) to a hypothetical total mortality of 1,000 fish in each fishery/time step. Only a single stock component can be selected (i.e. only the Skookum Creek Hatchery Marked stock can be viewed and a separate selection would be necessary to see the results for the Skookum Creek Hatchery Unmarked stock).

Report Drivers

Report drivers generate 14 pre-formatted output report types using unique instructions found in the report driver. Many of these reports are also available as screen reports or found in FRAM output to TAMM files. A report driver is species-specific, tied to a unique base period for parameters, and contains a header with metadata. The output reports are given a .PRN file extension and can be opened with a text editor such as Microsoft Notepad. The actual report drivers, with instructions on what to include, are stored in the MS Access project database table ReportDriver.

From the main menu, select “Output/Results”, “Report Driver File”, to get to the report driver file options. The most straightforward step is to “Select Driver” from the available report drivers already in the project database table ReportDriver. Click the checkbox next to one from the list and you will be re-directed back to the driver file options menu. Next, click the “Run Reports” button to name and save the output PRN file. Once you click save from the prompt, the output PRN file is generated and ready to view. The “Edit Report Driver” option is no longer functional in updated versions of FRAM and thus a new report driver must be created to make changes from an old one. Changes to a report driver need to be made in the project database table ReportDriver.

Many FRAM databases include various previously created custom report drivers. To create a new report driver, select “Output/Results”, “Report Driver File”, “Create Report Driver”. Select the desired report from the 14 available options and specify parameters for customization from the selection boxes. A good example of a unique, customizable report is the “Terminal Run Summary”. This report allows the user to specify fisheries and time steps for inclusion in the terminal run definition of selected stocks. When prompted, save the driver. The new driver will then appear in the “Select Driver” report selection box. To produce output, select the new driver and click “Run Report”.

TAMM

The current Terminal Area Management Module is a Microsoft Excel spreadsheet that interfaces with the FRAM application, providing additional input parameter values and receiving outputs following a run.

The TAMMs for Chinook and coho differ in most details, but both share a general conceptual division into sheets related to FRAM inputs, those compiling FRAM outputs, and then those that draw from these first two classes to perform numerous additional calculations and manipulations associated with particular tabular report breakouts. Regional areas in Puget Sound are also represented within individual sheets to customize output for regional management perspectives. In addition, a Documentation sheet notes modifications and/or revisions made to the TAMM file or structure overall (e.g. a formula error was fixed or a new section was added), and a RunLog sheet notates model input changes between model runs during an annual preseason planning process.

For preseason runs, the typical naming convention follows a pattern of “specNNYY”, with “Chin” or “Coho” followed by an “comanager agreed” run number and the 2-digit year. For example, the final 2019 Chinnok model run was “Chin2719” while the coho file was “Coho1925”.

Note that the TAMM files contain historical information, including outdated tables or sheets. Over the years, perspectives and technical approaches have changed and yet the older pages or sections remain. Preserving these historical approaches in case they are needed again, while adding new or updating content can create confusion about which content is maintained and relevant. Some completely obsolete sheets are hidden using Excel and an attempt is made to hide columns or sections of sheets that are no longer used.

Running FRAM with TAMM

Note: An “official” FRAM run should always be run with a TAMM!

TAMM is rooted in the management history of Puget Sound Chinook and Coho salmon. Prior to the existence of FRAM, spreadsheet models calculated terminal fisheries’ impacts with ‘simple harvest rates’. A harvest rate is computed as terminal catch divided by terminal abundance. Abundance accounting occurred in run reconstruction spreadsheets that calculated terminal abundance as escapement + freshwater landed catch + terminal landed catch. FRAM introduced the ability to calculate stock specific impacts in mixed stock pre-terminal areas using exploitation rates. Exploitation rates are computed as catch of a stock divided by the abundance of the stock. Whereas harvest rates are area-specific, exploitation rates are stock-specific. Using harvest rates in terminal areas with typically very low proportions of non-local stocks introduced an acceptable amounts of error, while providing the convenience of simple calculations.

The practice of computing harvest rates in terminal and extreme terminal fisheries continues to this day. Unfortunately, it is incompatible with FRAM exploitation rate calculations. TAMM reports terminal harvest rates to FRAM. FRAM translates these harvest rates into exploitation rates through an iterative process. FRAM uses instructions about the stock/fishery make-up of the terminal area in order to reconstruct the denominator of the original harvest rate calculation. Given these denominators, the model calculates landed catches and associated fishery scalers. FRAM also computes non-local stock impacts in terminal areas. Landed catches and fishery scalers are saved to the model run database.

Upon selecting to “Run Model” a submenu presents the user with the option to “Select TAMM”. If this option is chosen, a file selection dialogue box appears. Select the desired TAMM and click “Open”. After FRAM completes iterations, the following message box pops up, and selecting “Yes” results in FRAM importing output into the TAMX for Chinook or PRN Sheets for Coho. Note that although values are imported, they are not yet saved and require standard Excel saving procedures.

TAMM save values prompt

TAMM save values prompt

There are two primary reasons to run a FRAM model with a TAMM file. Although these reasons often apply, it is acceptable to run FRAM without TAMM if they do not. This can speed up the time it takes to perform a Chinook model run. However there can be interactions between input into FRAM (from TAMI) and outputs from FRAM into TAMM so that it may take more than one iteration of cycling FRAM output back into TAMM, before TAMI values stabilize. This is especially noteworthy for runs with significant abundance and /or fishery changes.

  1. TAMM input is needed
  • FRAM has not been run with a TAMM file before or sheet TAMI and/or FRAM inputs have changed since the model was last run with a TAMM file. Once FRAM runs with a TAMM file, static input values for TAMM fisheries are stored in the FRAM project database. For Chinook, when the model is run a second time, a TAMM may not be needed to reproduce the model run results from the first run with a TAMM file.

  • However, there are some TAMI fishery inputs in the coho TAMM, which are dependent on model results of terminal run size to subsequently update the input value when other fishery inputs are modified. This type of iteration is not built into the software for Puget Sound fisheries and thus the TAMM file is dynamic in terms of updating terminal fishery inputs. The coho TAMM is also used for WA coastal terminal fisheries, which utilize a selected button to run built-in software iterations which update input values that are dependent on model results of terminal run size.

  1. TAMM output is needed
  • Chinook: FRAM contains pre-terminal and terminal fisheries, but does not account for freshwater fisheries or escapements; both of which are only contained within the TAMM file structure. FRAM also does not provide exploitation rates or the breakdown of stock components to align with conservation management objectives. Thus, running a model with the TAMM file is necessary to generate the full suite of fishery impacts and stock breakdown to calculate and assess management.

  • Coho: FRAM contains pre-terminal, terminal, and freshwater fisheries as well as escapement. However, FRAM does not provide exploitation rates or the aggregation of stock components to align with conservation management objectives. Thus, running a model with the TAMM file can provide calculation of exploitation rates and values aligned with conservation management objectives. Coho TAMM outputs are also needed by other external models that in turn relay revised inputs back to the FRAM/TAMM modeling framework (i.e. TAMM output values are used as input values in WA coast terminal area regional models and in Columbia River models).

Coho TAMM

This tool is used to:

  • provide fishery inputs to FRAM from Puget Sound and Washington coastal terminal areas,
  • calculate exploitation rates (ERs), and
  • summarize model output to evaluate achievement of management objectives.

Many sheets in the Coho TAMM workbook involve post-processing calculations and formatted reporting. The sections below focus on a subset of sheets likely to be the focus of the majority of user interactions.

Coho TAMM sends to FRAM: - Tami sheet – contains FRAM inputs; a precursor sheet with more details about Tami values is Input_Harvestnew - WACoastTerminal – contains FRAM inputs when using “Run Coastal Iterations”

Coho FRAM sends back to TAMM: - FishSumAllPRN, Table2PRN, StockSumPRN, TRunsPRN – FRAM output in terms of all stocks/fisheries.

Input_Harvestnew

For a subset of FRAM fisheries and a subset of time steps, fishery proposals can be represented as fishery inputs and entered into the Input_Harvestnew sheet. Only September (time step 4) and October-December (time step 5) time steps can be modeled as TAMM fishery inputs. These fishery inputs can be in terms of: catch, fishery effort scalars, Terminal Area Abundance (TAA) harvest rates, or Extreme Terminal Run Size (ETRS) harvest rates. Harvest rate fishery inputs are only possible as TAMM inputs and have a separate methodology for iterations between FRAM and TAMM. Values are then compiled from Input_Harvestnew into the TAMI sheet and passed from TAMM to FRAM.

Tami

The Tami sheet compiles values from the Input_Harvestnew sheet and passes them to FRAM. A separate flagging system is used in the Coho Tami sheet to depict each type of fishery input: flag 1 = catch, flag 2 = effort scalar, 3 = TAA harvest rate, 4 = ETRS harvest rate. A flag value of -99 tells FRAM to ignore TAMM inputs and to use the inputs provided within the FRAM interface/database.

The Tami sheet also contains information needed for harvest rate iteration calculations. Fishery harvest rate inputs are provided with a specific definition of how that rate was calculated, so that FRAM can apply it correctly. A numeric system is used to represent these definitions and are stored in the Coho FRAM project database table “TAAETRSList”. The numeric value for which harvest rate definition is associated with the fishery input is provided on the Tami sheet under Abundance Definitions. In general, the TAA rates are calculated with total catch while the ETRS rates only include catch of local stocks.

WACoastTerminal

The WACoastTerminal sheet is used ensure that FRAM’s catch composition of local stocks in Washington coastal terminal fisheries (per base period and time step) are consistent with the stock catch composition derived with regional harvest management planning models. Stock-specific harvest rates from regional harvest management models are input into the WACoastTerminal sheet. These rates are applied against the stock’s terminal run size from FRAM output. The FRAM ratio of local to non-local stocks is used to then calculate a total catch for each terminal fishery, which is apportioned to time step based on regional models. These catch inputs are then summarized into a formatted table in the lower section of the sheet and read back into FRAM using the FRAM model run specification button “Run Coastal Iterations”.

Within this sheet, a fishery flag value of -99 tells FRAM to ignore TAMM inputs using the local stock-specific harvest rates and base subsequent calculations for evaluating management on the FRAM catch composition only (per base period and time step). For preseason planning, a fishery flag of -88 is used in the sheet so that subsequent calculations for evaluating management utilize the resulting stock catch composition consistent with the regional harvest management planning models.

PRN Sheets

There are four “PRN” sheets in the Coho TAMM file, which are created by driver files (.DRV) as defined in the coho FRAM project database table “ReportDriver”. These provide direct output of model results from each FRAM model run. Hyperlinks to individual sections within the sheet are found in the upper right section, and the key strokes Control+Home can be used to return to the top of the sheet. The four “PRN” sheets are as follows:

  • FishSumAllPRN – Generated by FisherySummaryAllMortalities.DRV definitions. Summarizes impacts for all Coho stocks in each fishery and time step. These include sections for a.) landed catch, b.) shaker mortality (drop-off and drop-out mortalities), c.) non-retention mortality (CNR inputs and mark-selective release mortalities), d.) landed catch plus non-retention mortality, e.) total mortality.
  • StockSumAllPRN – Generated by CohoStockSummary.DRV definitions. Reports total mortality by stock (marked and unmarked) summed over all fisheries and time steps.
  • Table2PRN – Generated by PSCTable2.DRV definitions. Reports total mortality for a specified stock or stock aggregate by time step. There is also a configured section for verifying stock-specific fishery rate scalars for the non-treaty and treaty Area 8D net fisheries impacts on marked stocks.
  • TRunsPRN – Generated by PSCTRuns.DRV definitions. For aggregates of various fisheries or stocks, reports values for a.) terminal run size, b.) escapement, and c.) terminal run size with all mortality for stock aggregates.

Sheet “2”

This sheet contains multiple tables for Coho fishery impact summary highlights. Total fishery related mortality is presented for aggregated fisheries and stocks. Various statistics are calculated and compared to management guidelines. These are dependent upon stock and regional management approaches. Table format differs for Puget Sound, Washington coast, and hatchery stocks summaries.

Sheet “4”

This sheet contains a summary table of Coho exploitation rates by fishery aggregate for key Puget Sound and Washington natural stocks. Rates are calculated for ocean exploitation, Puget Sound exploitation, total exploitation, and southern US exploitation. In addition, treaty and non-treaty rates are presented as sub-categories.

Overview of Coho TAMM workbook sheets

Table Description
1 Table 1: Description of fishery regulations & summary of Coho catch quotas/targets (**Comments/Descriptions should be updated each year)
2 Table 2A,2B,2C,2D,2E: Coho fishery impact summary highlights (**Management Objectives may be updated each year)
4 Table 4: Summary of Coho exploitation rates by fishery aggregate
7 Table 7: Coho run sizes for Pacific Fishery Management Council (PFMC) Salmon Technical Team (STT) reference
Sk Skagit region impact calculations/summaries
StSn Stillaguamish-Snohomish region impact calculations/summaries
HdC Hood Canal region impact calculations/summaries
SPS South & Mid Puget Sound impact calculations/summaries
NS Nooksack-Samish region impact calculations/summaries
JDF Juan de Fuca region impact calculations/summaries
PFMCTable7 Pacific Fishery Management Council (PFMC) Table 7 (Supplemental STT Reports/Preseason Report II and III); tracking LCN, OCN, RK
WACoastTerminal Tables related to WA coastal terminal fisheries/areas, including generation of FRAM fishery inputs
Thompson Table T: Thompson and Upper Fraser Coho fishery impact summary
Input_Harvestnew Location where Fishery inputs are entered for TAMM terminal and extreme terminal net & sport fisheries
Tami TAMM user Inputs transferred from TAMM to FRAM
FishSumAllPRN FRAM outputs transferred from FRAM to TAMM: Fishery Summary
Table2PRN FRAM outputs transferred from FRAM to TAMM: Stock Catch Summary (uses PSCTable2.drv)
StockSumPRN FRAM outputs transferred from FRAM to TAMM: Stock Summary
TRunsPRN FRAM outputs transferred from FRAM to TAMM: Terminal Run Report (uses PSCTRuns.drv)
LandedCNRTMbyTP Pacific Fishery Management Council (PFMC), Salmon Technical Team use for reporting and table values (Annual Review of Fisheries, Preseason Reports)
FisheryConvTemplate Original template based on older version of FRAM, for PFMC STT reporting and table values (see LandedCNRTMbyTP in use now)
NT-Tsummary Treaty and non-treaty allocation summary by Puget Sound management unit aggregates
PS_HatcheryEsc. Table H. Hatchery escapement to Puget Sound broodstock collection facilities (**Should be updated each year)
Documentation Modifications and/or revisions made to the TAMM structure or file overall (See RunLog for specific model input changes)
fram_unm_mrkprn Intermediate calculation page for Columbia River FRAM outputs, used by PFMC STT
FramScalarsOPIstyle Source: OPITT, (provided in February for preseason planning)
ColR&OCN&RogKlam Source: OPITT, (provided in February for preseason planning)
ColRPercent Source: OPITT, related to Columbia River, used by PFMC STT
ColRHarvestInput Source: OPITT, related to Columbia River, used by PFMC STT
AttachC Source: OPITT, related to Columbia River, used by PFMC STT
AttachCStkInput Source: OPITT, related to Columbia River, used by PFMC STT
SportMatrix Regulation summary for Puget Sound marine sport by fishery and model time periods (Source: WDFW; **Should be updated each year or with changes between model runs)
RunLog Notation of model input changes between model runs (See Documentation for file/format revisions)
Preseason_Tracking Tracking of model runs as preseason planning progresses, with relevant file and model run descriptions
CohoStock_Reference For Reference. Source: 2018PFMC_NOF_CohoFRAMdatabase_Draft.mdb; Table: Stock (Species=COHO)
CohoFishery_Reference For Reference. Source: 2018PFMC_NOF_CohoFRAMdatabase_Draft.mdb; Table: Fishery (Species=COHO)
TAAETRSList_Reference For reference. Source: CohoPugetSound2019TAMMInputTemplate_MB012819.xlsx (MB)

Chinook TAMM

This tool is used to:

  • split stocks that are aggregated in FRAM into finer sub-components
  • account for fisheries that are not in FRAM
  • calculate exploitation rates (ERs) and escapements over several levels of stock detail

Many sheets in the Chinook workbook involve post-processing calculations and reporting, with similar (but not identical) layout and related content. The sections below focus on the smaller group of sheets likely to be the focus of the majority of user interactions.

Chinook TAMM passes values in the sheet TAMI to FRAM, and subsequently receives FRAM output compiled in the sheet TAMX.

FRAM-TAMM stock lookup

Several FRAM stock aggregates are broken out in TAMM.

Stock units in FRAM and TAMM
Region FRAM TAMM
HOOD CANAL Hood Canal Fingerling Area 12B tribs natural
HOOD CANAL Hood Canal Fingerling Hoodsport Fi
HOOD CANAL Hood Canal Fingerling Skokomish R. nat
HOOD CANAL Hood Canal Fingerling Skokomish R. hatchery
HOOD CANAL Hood Canal Fingerling Area 12C-D tribs natural
HOOD CANAL Hood Canal Yearling Hoodsport Yr
JDF Elwha/Dungness Dungeness
JDF Elwha/Dungness Elwha
JDF Hoko Hoko
NOOKSACK/SAMISH Nooksack/Samish S/F 7E Glenwood Springs hatchery
NOOKSACK/SAMISH Nooksack/Samish S/F Lummi Bay hatchery
NOOKSACK/SAMISH Nooksack/Samish S/F Samish R. hatchery
NOOKSACK/SAMISH Nooksack/Samish S/F Samish R. natural
NOOKSACK/SAMISH North Fork & South Fork Nook Spring (2) Nooksack Early
SKAGIT Skag S/F Fi Skag S/F Fi
SKAGIT Skagit S/F Yr Skagit S/F Yr
SKAGIT Skagit Spr Skagit Spr
SOUTH SOUND Deep SPS Fingerlings Carr Inlet/Minter Hatchery
SOUTH SOUND Deep SPS Fingerlings Carr Inlet/Minter Nat
SOUTH SOUND Deep SPS Fingerlings Chambers Creek Hatchery Fing
SOUTH SOUND Deep SPS Fingerlings Nisqually River Hatchery
SOUTH SOUND Deep SPS Fingerlings Nisqually River Nat
SOUTH SOUND Deep SPS Fingerlings McAllister Creek Hatchery
SOUTH SOUND Deep SPS Fingerlings McAllister Creek Nat
SOUTH SOUND Deep SPS Fingerlings Deschutes/Cap. Lake Hatchery
SOUTH SOUND SPS Yearlings Duwamish-Green Yearlings
SOUTH SOUND SPS Yearlings Carr Inlet Minter Yearlings
SOUTH SOUND SPS Yearlings Chambers Creek Yearlings
SOUTH SOUND SPS Yearlings Deschutes Cap. Yearlings
SOUTH SOUND Upper SPS Fingerlings Grovers Ck. Hat. - 10
SOUTH SOUND Upper SPS Fingerlings Lk. Washington Hatchery
SOUTH SOUND Upper SPS Fingerlings Lk WashingtonNatural
SOUTH SOUND Upper SPS Fingerlings Duwamish-Green Hatchery
SOUTH SOUND Upper SPS Fingerlings Duwamish-Green Nat
SOUTH SOUND Upper SPS Fingerlings Gorst Creek Hat. - 10E
SOUTH SOUND Upper SPS Fingerlings Gorst Creek Yearlings
SOUTH SOUND Upper SPS Fingerlings Puyallup River Hatchery
SOUTH SOUND Upper SPS Fingerlings Puyallup River Nat
SOUTH SOUND UW Accelerated UWAcc
STILLAGUAMISH/SNOHOMISH Sno S/F Fi Sno S/F Fi
STILLAGUAMISH/SNOHOMISH Sno S/F Yr Sno S/F Yr
STILLAGUAMISH/SNOHOMISH Stilly S/F Stilly S/F
STILLAGUAMISH/SNOHOMISH Tulalip Hatchery Tulalip Hatchery

TAMI

The TAMI sheet passes in values for several fisheries. A flag value of -88 tells FRAM to ignore TAMM inputs and to use the inputs provided within the FRAM database.

Example TAMI sheet

Example TAMI sheet

Additional flags determine whether the parameter values are interpreted as a rate or count (i.e., number of fish), with the values themselves derived from Input Page entries and additional calculations on area-specific sheets.

For example, in the screenshot shown above, the Bellingham Bay values that are sent to FRAMM first pass through the “NS” Nooksack-Samish sheet from the block of input page cells denoted “Rate” is %TAA Nooksack-Samish Aggregate Summer/Fall chinook.

  • 7BCD NT
    • C8 May-Jun: “0.0000” =IF(+NS!Y17=“na”,0,NS!Y17) <- NS!Y17 hard entered
    • D8 Jul-Sep: “0.1571” =NS!Z17 <- NS!P20 <- Input Page!B221 <- derived from B’ham Bay purse seine and gillnet mortality data
    • E8 Oct-Apr: “19” =NS!AA17 <- NS!P22 <- Input Page!B223 <- as for summer timestep
    • J8 EQADJ: “0” =NS!AC23 <- NS!P38 <- Input Page!B226 <- currently unused
  • 7BCD Treaty
    • C9 May-Jun: “0” =NS!Y18 <- NS!P19 <- Input Page!B220 <- based on planned treaty harvest
    • D9 Jul-Sep: “0.2892” =NS!Z18 <- NS!P21 <- Input Page!B222 <- as for spring timestep
    • E9 Oct-Apr: “0.001” =NS!AA18 <- NS!P23 <- Input Page!B224 <- as for spring timestep

As general good practice, after making any changes to TAMM fishery parameters, particularly those that are passed to and processed within FRAM, it may be worthwhile to ensure that the intended behavior occurred by checking relevant screen reports and/or TAMM output sheets.

Input Page

This sheet is divided (row-wise) into sections for stock forecasts, net fisheries, and sport fisheries, with each of these primary sections further subdivided by river basins. Note that in addition to the text descriptions, hover/tooltip Excel comments are associated with several cells and can provide greater context.

During the pre-season process, values are agreed-to stock forecasts and anticipated fisheries from regional co-managers.

When performing post-season runs, the values are agreed-to abundance estimates from regional co-managers and observed fishery catches from co-manager technical staff.

In general, across areas, the counts of hatchery marked, hatchery unmarked, natural marked and natural unmarked returns are provided for the different stock components.

Skagit

  • HM/HUM/NM/NUM are provided for spring, S/F fingerling & S/F yearling (these values are used to derive proportions for recruit scalers?)
  • The summer/fall run is further divided into Upper Skagit Summer, Lower Sauk Summer, and Lower Skagit Fall
  • The spring run is divided into Upper Sauk Spring, Suiattle Spring, and Upper Cascade Spring

tamm_in_skagit_forecast

  • Treaty impacts are entered for:
    • marine Chinook, sockeye, pink, coho, chum, steelhead and test fisheries
    • freshwater Chinook, C&S, sockeye, pink, coho, chum, steelhead and test fisheries
  • Non-treaty (incidental) impacts are entered for pink and chum fisheries

tamm_in_skagit_net.png

  • Incidental impacts are entered for the sport coho and sockeye fisheries
  • Mark-selective (MSF) parameters are entered for the impacts on Springs

tamm_in_skagit_sport.png

Stillaguamish & Snohomish

  • HM/HUM/NM/NUM are provided for Snohomish S/F fingerlings and yearlings, Stillaguamish S/F, and Tulalip hatchery fish
  • The Skykomish portion of the Snohomish naturals is entered

tamm_in_stilly_forecast

  • Treaty impacts are entered for
    • Area 8A C&S, coho, chum, steelhead and test fisheries
    • Stillaguamish C&S, pink, coho and chum fisheries
    • Snohomish River commercial
    • Area 8D coho
  • Non-treaty (incidental) impacts are entered for Area 8D and Area 8A pink, coho and chum fisheries

tamm_in_stilly_net.png

  • Catches are entered for Stillaguamish and Snohomish Rivers
  • Mark-selective (MSF) parameters are entered for the Skykomish River

tamm_in_stilly_sport.png

Hood Canal

  • HM/HUM/NM/NUM are provided for Area 12B tribs natural, Hoodsport hatchery fingerlings and yearlings, Skokomish natural and hatchery, and Area 12C-D tribs natural fish

tamm_in_hood_forecast

  • Treaty impacts from marine coho and chum and in-river Chinook are entered by season (May-Jun, Jul-Sep, Oct-Apr)
  • Non-treaty impacts from coho and chum fisheries are entered by season along with the Hoodsport hatchery beach seine catch

tamm_in_hood_net.png

  • Catches are entered for the Quilcene and miscellaneous 12 B/C/D fisheries
  • Mark-selective (MSF) parameters are entered for the Skokomish River

tamm_in_hood_sport.png

South Puget Sound

  • HM/HUM/NM/NUM are provided for Grovers Creek hatchery, Lake Washington hatchery and natural, Sammamish natural, Duwamish-Green hatchery and natural, Gorst Creek hatchery, Puyallup River hatchery and natural, Carr Inlet/Minter hatchery and natural, Chambers Creek hatchery, Nisqually River hatchery and natural, McAllister Creek hatchery and natural, Deschutes River hatchery, miscellaneous 13D-K/Coulter Creek hatchery, and White River natural and hatchery
  • The marked/unmarked yearlings are listed for the Duwamish and White River components
  • Proportions are entered for several hatchery stocks that spawn in river and the proportion of “natural” returning to the hatchery

tamm_in_sps_forecast

  • Harvest rates are entered for the 11A, Puyallup River and White River C&S impacts on the White River spring run
  • Terminal/near-terminal marine catches by season (May-Jun, Jul-Sep, Oct-Apr) are entered for
    • Area 10/11 treaty and non-treaty commercial (incidental in chum fishery)
    • test fisheries
    • Area 10A treaty, C&S, and non-treaty
    • Area 10E treaty and non-treaty
    • Area 13/13D-K/13A treaty and non-treaty
  • Freshwater treaty net and C&S impacts are entered for Lake Washington, Lake Sammamish, the Duwamish-Green River, the Puyallup River, the Nisqually River, and McAllister, Minter and Chambers Creeks
    • Mark-selective parameters are also entered for the Nisqually tangle net fishery

tamm_in_sps_net.png

  • Catches are entered for Lake Washington, Lake Sammamish, the Duwamish-Green River, McAllister Creek, Minter Creek, Chambers Creek, Deschutes/Capital Lake and Kennedy/misc 13B
  • Mark-selective (MSF) parameters are entered for fisheries in Puyallup, Carbon and Nisqually Rivers

tamm_in_sps_sport.png

Nooksack & Samish

  • HM/HUM/NM/NUM are provided for Nooksack Early (Spring) hatchery and natural, Glenwood hatchery, Lummi Bay hatchery, and Samish River hatchery and natural
  • The proportion of North Fork natural origin fish in the total natural origin fish is entered

tamm_in_nook_forecast

  • Nooksack spring/early impacts are entered for C&S fisheries as catches or harvest rates
    • Mark-selective parameters are also entered for the Lummi tangle net fishery
  • Nooksack summer/fall impacts for treaty and non-treaty fisheries are entered by season (May-Jun, Jul-Sep, Oct-Apr)

tamm_in_nook_net.png

  • Catches for the Samish/Whatcom sport fishery and Nooksack River MSF can be entered
    • the MSF includes marked-release and unmarked retention parameter values

tamm_in_nook_sport.png

Strait of Juan de Fuca

  • HM/HUM/NM/NUM are provided for Dungeness, Elwha, and Hoko runs
  • pre-spawn mortality is entered for Dungeness and Elwha

tamm_in_jdf_forecast

  • Catches can be entered for Dungeness Bay treaty and non-treaty net fisheries, for Elwha C&S and test/commercial, and for Hoko terminal and extreme terminal fisheries

tamm_in_jdf_net.png

  • Sport fishery catches can be entered for Dungeness, Elwha, and Hoko

tamm_in_jdf_sport.png

TAMX

During a run with a Chinook TAMM selected, FRAM passes output values to the TAMX sheet. Generally, these are organized into row-wise blocks of fisheries by stock after a header block of all stocks summed across fisheries.

A full view of the information in a TAMX sheet; each block of rows corresponds to fishery-specific impacts for a stock

A full view of the information in a TAMX sheet; each block of rows corresponds to fishery-specific impacts for a stock

ER_ESC_Overview_New

The exploitation rate and escapement overview approximates a primary “dashboard” of ESA compliance for the Washington comanagers, displaying estimated exploitation rates and escapements relative to the critical thresholds defined in stock-specific management unit plans (which are also listed in the RMP_Mgmt_Criteria sheet).

Conditional formatting indicates stocks with exploitation rates exceeding management targets. In pre-season runs, this indicates that fishery adjustments will be necessary to meet management objectives. In post-season runs, this indicates that the stock failed management objectives, given fisheries and abundances that actually occurred.

The Chinook TAMM ER_ESC_Overview sheet is frequently reviewed to assess planned fishery packages

The Chinook TAMM ER_ESC_Overview sheet is frequently reviewed to assess planned fishery packages

LimitingStock

This sheet offers similar information to that found in the overview, but with greater detail on the particular breakdown of impacts to stocks within specific fisheries. It consists of blocks of values for:

  • “Original” key natural stocks
  • Hatchery (M+UM)
  • Unmarked hatchery
  • Unmarked natural
  • Marked hatchery
  • Marked natural

The LimitingStock table is a great source of information for technical staff interested in better understanding which fishery-time steps have the greatest estimated impact on a stock within a given year.

A detailed view of a portion of the upper block of the Limiting Stk Complete Mod sheet

A detailed view of a portion of the upper block of the Limiting Stk Complete Mod sheet

A full view of the Limiting Stk Complete Mod sheet

A full view of the Limiting Stk Complete Mod sheet

Overview of Chinook TAMM workbook sheets

Table Description
1 Table 1: Description of fishery regulations & summary of Chinook catch quotas/targets
ER_ESC_Overview(ifanyMSF) Impact summary for ESA-listed stocks (total, SUS, and SUS PT ERs; natural escapements); aka "Table 2"
LimitingStkComplete mod Detailed (fishery-by-fishery) impact distribution for constraining stocks
SPS Abundance Iterations Complete this worksheet to properly adjust SPS abundances based on stock-specific catches in the SPS terminal net fisheries
Input Page Location where (1) Stock, (2) Net Fishery, and (3) Sport Fishery are entered for TAMM stocks
TAMI TAMM user Inputs transferred from TAMM to FRAM
TAMX FRAM outputs transferred from FRAM to TAMM
2A_CU&M Disaggregated stock impacts (FRAM stock split into TAMM stocks) by FRAM fishery and TAMM freshwater fishery for MARKED & UNMARKED fish; built off of 2D_Fmrkd, 2D_Funmrkd and stock worksheets
2A_Cmrkd Similar to 2A_CU&M but for MARKED only
2A_CUnmrkd Similar to 2A_CU&M but for UNMARKED only
2A_CU&M_H+N Similar to 2A_CU&M, but now includes missing hatchery components for Skagit and Stilly/Sno
2A_CU&M_Hatchery Similar to 2A_CU&M, but only includes hatchery components for TAMM stocks
2A_CU&M_N Similar to 2A_CU&M, but only includes natural components for TAMM stocks; generally computed as difference between 2A_CU&M H+N and 2A_CU&M Hatchery
2D_F Total AEQ Mortalities and Landed Catch for MARKED and UnMARKED stocks by fishery, less freshwater fishery impacts
2D_Fmrkd Total AEQ Mortalities and Landed Catch for MARKED stocks by fishery, less freshwater fishery impacts
2D_FUnmrkd Total AEQ Mortalities and Landed Catch for UNMARKED stocks by fishery, less freshwater fishery impacts
3 Table 3: Approximate allocation accounting
5 Table 5: Summary of exploitation rates by fishery aggregate
5_U&M Table 5: Summary of exploitation rates by fishery aggregate
5Unmrkd Table 5: Summary of exploitation rates by fishery aggregate, UNMARKED Only
6 Table 6: Chinook ERs and mortality distribution by fishery aggregate (MARKED + UNMARKED, HATCH. + NAT.)
6_U&M Table 6: Chinook ERs and mortality distribution by fishery aggregate
6_Nats Table 6: Chinook ERs and mortality distribution by fishery aggregate, NATURAL ONLY
6Unmrkd Table 6: Chinook ERs and mortality distribution by fishery aggregate
Sk Skagit sp, su/fa impact calculations/summaries
Skmrkd Skagit-MARKED sp, su/fa impact calculations/summaries
SkUnmrkd Skagit-UNMARKED sp, su/fa impact calculations/summaries
StSn Stillaguamish-Snohomish impact calculations/summaries
StSnmrkd Stillaguamish-Snohomish-MARKED sp, su/fa impact calculations/summaries
StSnUnmrkd Stillaguamish-Snohomish-UNMARKED sp, su/fa impact calculations/summaries
HdC Hood Canal impact calculations/summaries
HdCmrkd Hood Canal-MARKED sp, su/fa impact calculations/summaries
HdCUnmrkd Hood Canal -UNMARKED sp, su/fa impact calculations/summaries
SPS South & Mid Puget Sound impact calculations/summaries
SPSmrkd South & Mid Puget Sound-MARKED sp, su/fa impact calculations/summaries
SPSUnmrkd South & Mid Puget Sound -UNMARKED sp, su/fa impact calculations/summaries
NS Nooksack-Samish sp, fa impact calculations/summaries
NSmrkd Nooksack-Samish sp, fa-MARKED sp, su/fa impact calculations/summaries
NSUnmrkd Nooksack-Samish sp, fa -UNMARKED sp, su/fa impact calculations/summaries
JDF Juan de Fuca tribs impact calculations/summaries
JDFmrkd Juan de Fuca tribs-MARKED sp, su/fa impact calculations/summaries
JDFUnmrkd Juan de Fuca tribs -UNMARKED sp, su/fa impact calculations/summaries
Cat&Esc All-stocks summary of escapement projections relative to goals, plus miscellaenous fishery catch summaries
nt&t Treaty and non-treaty allocation summary by Puget Sound management unit aggregates
WildDist Fishery-aggregate impact distribution and sharing summary for hatchery+natural and natural-only stocks
ERcalc Approximate flow of information/calculations from FRAM output and TAMM stock/fishery inputs to bottom-line ER projections
scratch Empty worksheet for random calculations
Guts The Guts sheet, which contains run details that are referenced elsewhere in the TAMM
SportMatrix Regulation summary for Puget Sound marine sport by fishery and model time periods
Documentation This tab documents functionality changes/updates to the TAMM
RunLog This tab documents run specific (input related) changes to specific model runs

Backwards FRAM

“Forward” FRAM model runs begin from a forecasted “pre-fishing” cohort and then apportion fishery impacts to the model stocks through the species-specific time steps. This conceptually parallels the observed seasonal progression of salmon returning to spawning grounds and release areas.3

In contrast, a “backward” FRAM (BkFRAM) model run combines observed terminal run size and escapement values with observed catch values to iteratively derive a set of recruit scalers, such that those scalers produce a starting cohort capable of producing the known catch and escapement. Starting cohorts are initial FRAM run sizes before natural mortality, fishing mortality, and maturation. For Chinook, BkFRAM calculates age 3 to 5 starting cohorts, and for Coho, starting cohorts are in units of January Age 3 fish. This process is conceptually related to traditional “run reconstruction” approaches.

These runs play several important roles.

During the preseason planning process, Chinook forecasts are commonly reported in terms of terminal run size. Thus, the initial preseason Chinook model run is actually a backwards model run that enables the reconstruction of a starting cohort for all subsequent preseason modeling. This “average run” is a backwards Chinook FRAM run that targets the new season’s terminal return forecasts (by stock) in the context of fishery parameters averaged from recent observed years.

Following completion of a fishing year, a post-season backwards run is performed to incorporate the most current representation of what actually happened. Note that in addition to the new year, updates to the data characterizing older years may also be integrated during this process. The Pacific Salmon Commission’s Coho Technical Committee (CoTC) conducts post-season Coho model runs to evaluate annual Pacific Salmon Treaty obligations. The salmon co-managers (Washington Treaty Tribes and WDFW) conduct post-season Chinook model runs, which can be found on their website at: https://fisheriesservices.nwifc.org/fram-model-runs/post-season-fram-modeling/

BkFRAM can be run for an individual stock or a combination of stocks (including all stocks). It requires a “seed” run that contains desired fishery impacts (observed values for post-season runs or recent year average values for pre-season runs). The seed run will also contain starting cohorts for stocks where this parameter is known; i.e. the forecast is already in starting cohort units rather than terminal run size units.

BkFRAM can run in three modes. The mode is selected using a flag in the input process. Flags are stock-specific, allowing all three flags (values = 0,1,2) to be used in a single BkFRAM model run.

  • Mode 0 (flag 0): This mode does not use BkFRAM to find starting stock scalars. Instead, FRAM uses the starting cohort values from the existing “StockRecruit” table in the project database.

  • Mode 1 (flag 1): This mode uses an algorithm to iteratively adjust stock recruit scalars until the target abundance is achieved. Target abundances are adipose mark specific. This method is used when the mark rate of a stock is known.

  • Mode 2 (flag 2): This mode is selected when target mark rates are unavailable. Algorithms from mode 1 are used to find the starting stock recruit scalars that result in the combined target abundance (marked and unmarked components). The program will then apply mark rates derived from the existing “StockRecruit” table to split starting cohorts into marked and unmarked components.

Running BkFRAM

After selecting “Post Season run” from the FRAM main menu, the Backwards FRAM submenu is presented. The Coho and Chinook versions are slightly different.

The post-season or backwards FRAM submenu for Chinook

The post-season or backwards FRAM submenu for Chinook

The post-season or backwards FRAM submenu for Coho

The post-season or backwards FRAM submenu for Coho

Next, target abundance values must be set if they are not already. Selecting the ’Target Escapements” button brings up the Target Escapements for Backwards FRAM menu, which has a slightly different layout for Chinook and Coho.

Target escapements for Chinook

The values for the FRAM calculations to target must be provided by stock, mark status, and age, in conjunction with a control flag. The effects of flag values are displayed on screen, with 0 meaning the value is not used, 1 it is used, and 2 that it is intended to be automatically split into marked and unmarked components. A flag value of 3 is deprecated but allowed for legacy compatibility.

When terminal run size is known for a stock by age and mark status, these can be entered with a flag of “1” in the correspondingly labeled cells. If the mark rate is unknown, enter the combined (marked plus unmarked) abundance in the “TOTAL” row and flag as “2” (i.e. will use mark rates from “seed run”). If you do not wish to overwrite existing cohort sizes for a stock, flag relevant row(s) (Total, Marked, Unmarked) as “0”.

While the FRAM interface enables editing individual values, the “Import Escapements” option allows an “all-at-once” update via the selection of an MS Excel template file containing model inputs compiled outside of FRAM. Select the “Import Escapements” button and then locate and selecting the file (“BkFRAM_ChinookTemplate…xls”) with the desired values.

Post-season target escapements

Post-season target escapements

Once the input values are updated, select “OK - Done” to return to the Backwards FRAM Run Menu to “Start Iterations”.

The following table represents which Chinook FRAM fisheries (by FisheryID numeric values and generic titles) and time steps (horizontal) are included in the run size definition of each stock (by StockID numeric values and StockName) (vertical). A “yes” denotes that the landed catch of ages 3-5 Chinook in fishery and time steps are added to the age 3-5 run to the river (escapement + freshwater catch). T1 equals October-April time step, T2 equals May-June time step, and T3 equals July-September time step

Target escapements for Coho

Enter target escapements by stock and mark status and flag as “1” in the correspondingly labeled cells. Coho escapement values should exclude jacks (age 2), as coho are assumed to be age 3 in the FRAM model framework. If the mark rate is unknown, enter the combined (marked plus unmarked) escapement in either the marked or unmarked stock row and flag as “2” (will use mark rates from “seed run”). If you do not wish to overwrite exisiting cohort sizes for a stock, flag relevant row(s) (Marked, Unmarked) as “0”.

Escapement values can also be loaded from a MS Excel template file designed for model inputs (“CohoFRAMInputTemplate….xls”) by selecting the “Import Escapements” button and then locating and selecting the file with the desired values. The template file workbook needs to contain a worksheet tab called “FRAMEscapeV2”, and the user may need to unhide it within the template. The escapement values within the worksheet are organized as rows by stock and mark status and columns per year. A column exists for every year desired for updating model inputs. The program will request a single ‘Year’ to load from the Excel worksheet.

Escapement values can be also be exported by selecting the “Export to Spreadsheet” button on the Target Escapements for Backwards FRAM menu using the same workbook template file needed for importing. The program will also request the ‘Year’ of data to export.

Once the input values are updated, select “OK - Done” to return to the Backwards FRAM Run Menu to “Start Iterations”.

Start iterations

With target escapements entered, the number of desired iterations can be selected and then “Start Iterations” clicked. The default number of iterations is 99. This number will rarely be reached, as iterations automatically terminate when the convergence criteria is met (run size within 1 fish of target).

For Coho, selecting the “Run without MSF Bias Correction (if checked)” button will process the backwards run without the MSF Bias Correction factor applied. By default, the MSF Bias Correction is applied during preseason forward Coho FRAM modeling and thus it is also by default applied during backward FRAM. Thus, this box is most commonly left unchecked.

For Chinook, selecting the “Age 2 from 3” box will cause the program to process using fishing year (FY) age 2 from 3 abundances (e.g., the recruit scaler for age 3s will be used for age 2s). This corresponds to the preseason mode of operation. After selecting “Start Iterations”, a prompt requires the user to select whether or not to use TAMI catches for the run. Choosing “yes” is appropriate if the correct TAMI fishery catches (e.g., 7BCD net) are not yet loaded into FRAM. Conversely, “no” will skip this step when the FRAM run already has the correct TAMI catches stored (i.e, because FRAM has already been run forward with the correct TAMM and TAMI catches are automatically saved into the FRAM database).

View and save BkFRAM results

After iterations are complete, the program returns a result screen (with slightly different layouts for Chinook and Coho) which lists target escapements, resulting BkFRAM escapements, and new stock recruit scalers side by side in order to assess whether values have sufficiently converged.

Convergence is displayed per-stock and age

Convergence is displayed per-stock and age

Finally, after exiting the table display, a new option to “Save BkFRAM targets and new Recruit Scalars[sic]” is available.

If no further changes to escapement or flagging are needed, this will write values to the database before returning to the main menu.

The “Save BkFRAM…” button brings up the following message box: “This action saves BkFRAMTargets as well as Recruit Scalars. To save, please follow instructions of next menu.” Then the ‘Save-Menu’ pops-up, where the user can select to replace the existing run, save as a new run, or cancel save. Note that if the user selects the “Save BkFRAM Targets and New Recruit Scalars” button after the targets are entered or imported, but before iterations are run, the save action will only save the new targets.

Utilities

The FRAM utilities submenu contains several frequently used functions, with button color indicating related items.

Edit model run info

Selecting this option provides an interface to alter some of the metadata associated with an existing run, particularly the name, title, year and comments (stored in RunID table in the database [Lookups]). Best practices encourage entering careful, comprehensive notes for future reference.

When changes are cumulative across numerous runs, such as in a preseason or “forward” context, comments may often refer to prior runs for ease of reading (i.e., “started with run N, changed X, Y, and Z”). Preseason model runs often start with the beginning model run notes and add sequentially above those as the preseason progresses, so that the newest changes describing the run are at the top for easy viewing. The Comments field cannot be deleted and left blank or FRAM will throw an error message. If this happens, click “Quit” and re-try.

Copy model run

As shown in the [Make a run copy] section of [A basic forward run], this option conveniently provides the starting point for further work to examine scenarios for the FRAM management units. Recall that a given “run” is spread across numerous tables in a project database and involves many rows within some tables. Consequently, this utility helps save time and avoid error by ensuring that all necessary steps to create a new model run are completed. 4

It is common practice to copy an existing run, re-name it something new, make input changes, and generate updated model results from the new run.

Having reached the “NEW Copied Recordset Information” screen, specify an informative RunName and RunTitle in the respective fields. In addition, the free-text “Comments” field is an important place to document the planned changes, the original run it is based on, the date a change was made and by whom, etc. This is also easily updated later with any further changes (see Edit model run info). After entering a good description of what will change, click “Ok - done” to complete the process and return to the FRAM utilities menu, with the newly copied run loaded into memory. Note that this step involves writing to disk and may take a few seconds - no need to panic if FRAM hangs momentarily.

Delete model run

Note that this process cannot be reversed. If it is necessary to remove a run from a database while preserving it for later use, then creating a model run transfer is likely a good option.

This option provides a convenient means to comprehensively remove one or several runs from a database. Selecting the “Delete Model Run” button prompts a screen listing available runs. After selecting a single model run name in the list, a confirmation prompt again displays what will be removed. If you are certain you wish to delete the model run, click “Yes” - or - click “No” to return to the FRAM Utilities menu. The currently active model run cannot be deleted with this utility, and attempting to do so will produce an error prompt. Simply return to the main menu, select a different run, and re-try the deletion. (Note it is also possible to delete runs directly from the main model selection window.)

To remove and delete more than one model run from a project database, select the “Delete Model Run” button and then the “Delete multiple runs” button found at the lower right (not the list of runs in the interface). This will then prompt the user with a separate window for Delete Multiple Model Runs, with another list of model runs in the project database. In this separate window, the user checks the boxes next to individual model run names and once multiple runs (or even a single run) have been checked, click the “Delete Selection Done” button. There will be no additional confirmation prompt displayed, rather the model runs will be deleted.

Transfer model runs

Model run transfer files, which are typically indicated as such by name, contain only portions of a subset of [Project database tables]. They enable sharing the relevant values for a single run without transmitting an entire [Project database].

Clicking the “Transfer Model Runs” button in FRAM Utilities will prompt a message box “Please select the Transfer Database” and the user clicks “OK”. At that point, a file selection dialogue appears for a “template” model run transfer .mdb file into which the transferred values will be written. Be sure to utilize a “blank” template model run transfer file, or any model runs will be added to those that are already stored in the file. The current version of this template is generally provided on the Fisheries Services site.

After an appropriate template is chosen, a “Model Run TRANSFER Selections” window appears with the list of available model runs in the project database. When the desired run or multiple runs (Cntl+click) are highlighted in the interface list and the “Transfer Selection Done” button is clicked, the application will prompt for a new file name. After entering an informative name, the new values are written into the template and the user returns to the FRAM Utilities submenu.

Note that the actual file creation may take a few seconds during writes to disk.

Get model run transfers

Complementing a transfer write out, this option reads in one or several runs from an existing model run transfer file. The straightforward process simply involves clicking the “Get Model Run Transfers” button, selecting the desired model run transfer file, clicking “Open”, and waiting for the application to complete the read and subsequent write of values into the project database. Then exit out of the FRAM utilities menu, and click the “Select Model Run” button on the main menu to load a newly transferred run, which should be found at the end of the available list.

Note that inadvertently reading in a duplicative run should not generally cause great harm, as the “new” run will be assigned whatever RunID is incrementally next and will not overwrite existing elements of the project database.

Read old base period

Prior to 2011, base period data were stored in a text file with a .out extension, commonly referred to as outfiles. These historic outfiles are associated with *.cmd “command files”. The outfile information is equivalent to data stored in FRAM [Project database tables] containing a ‘BaseID’ field; i.e base period exploitation rates, maturation rates, growth functions, etc.

The “Read Old Base Period” utility reads the outfile and places the information in the relevant model run Access database tables; i.e. base period exploitation rates are stored in the “BaseExploitationRate” table.

However, importing an old model run (command file) and associated outfile into a modern FRAM database can be problematic, as some of the existing tables need to be compatible with the old data. The existing “Stock” table in the database has to include the stock version of the old outfile; i.e. version 1 for the old 76 stock structure of Chinook. Ideally, the “ChinookBaseSizeLimit” table should contain size limits from the old base period. Since the FRAM Access database currently only accommodates size limits from one base period, it is not advisable to load runs from more than one base period.

Generally, the chance of run errors increases significantly with older model runs (command file) and the associated base period (outfile). Nevertheless, being able to quickly produce output summaries through Access queries is a huge advantage over the old method of retrieving output through driver files. It is highly advisable to compare TAMX output from the original run with output produced using the current version of FRAM before taking advantage of this functionality.

To import an old base period into a FRAM database, select “Utilities”, “Read Old Base Period”, pick the desired outfile and then press “Yes” when prompted to confirm that the base period is for Chinook.

Delete/Transfer/Get base period

Much as the above delete, transfer and get model run functions manipulate multiple tables throughout the project database, these options provide a similar means to handle entire base periods. Not all project databases will have more than one set of base period parameters, but these functions are important when this is the case.

Until additional features are implemented for Chinook, a single base period should be utilized in a project database. This is due to some tables in the project database containing values unique to an individual base period, but the table is not tied to a unique BaseID. Once they are tied to a unique BaseID, then more than one base period can be utilized in a Chinook project database. Please consult with a lead FRAM modeler if you need assistance.

Compute 2s from 3s (Chin)

The abundances of 2 year olds are often not forecasted. Selecting this button will result in FRAM calculating the starting cohort of age 2s as a function of the 3s; i.e. produce a recruit scaler of 2 year olds that roughly produces the age 3 starting cohort. This is desirable for two reasons:

  • On average (over time), age 2 scalers should be of a magnitude that is related to age three abundance, because age 2 fish will mature to become age 3 fish.

  • In FRAM, age 2 fish will become age 3 fish in time 4. Having age 2 abundances that are incompatible with age 3 abundances can result in large and undesirable exploitation rate swings.

When selecting this utility, FRAM applies a constant to the 3 year old starting cohort to calculate the 2 year old cohort. This links the age 2 and 3 recruit scalers similarly as a cohort reconstruction would. Most constants are close to 1.0 resulting in new age 2 scalers that are almost identical to the age 3 scalers.

To compute age 2 starting scalers, after clicking the “Compute 2s From3s (Chin)” button, the following window will pop up.

After selecting “Yes” the “Save Model Run Input” screen will open, allowing selection of either “Replace Current Model Run” or “Save New Model Run”. These steps return the user to the “FRAM Utilities” menu. Age 2 recruit scalers have been updated and saved. If desired, this can be verified by opening the “Input Menu”, selecting Stock recruits and examining the new age 2 scalers.

Read old CMD file

Prior to 2011, annual FRAM inputs were stored in a text file with a .cmd extension, commonly referred to as command files. This information is equivalent to data stored in all FRAM Access database tables containing a ‘RunID’ field; i.e annual model run information. These text files were opened, modified, and run in FRAM version “FRAM555” or earlier. These versions of FRAM were coded in Visual Basic and preceded the currently in use FRAM Visual Studio.net versions with ADO.net database programming. The “Read Old CMD File” utility reads the command file and places the information in the relevant model run Access database tables; i.e. forecast information is stored in the “Cohort” table, retention fisheries inputs are placed in the “FisheryScalers” table. These historic command files are usually linked to old base periods which were stored in text files as well, with a *.out extension, commonly referred to as outfiles. Please refer to the Read Old Base Period paragraph for instructions on how to import an outfile into a FRAM Access database and Linking a model run to a base period for instructions.

To read an old model run into FRAM, first make sure the base period associated with the command file is loaded in the ACCESS database. The base period name can be found on the fifth line of the command file. Then, after clicking the “Read Old CMD File” button, navigate to and select the desired command file. Finally, select “yes” from the following pop up window.

Read TAA/ETRS file

The “Read TAA/ETRS File” button in the FRAM Utilities is a seldom-used option to import old format CMD files (TAAETRSnum.txt) of the TAAETRSList table into the current project database structure.

The TAAETRSList table contains definitions (by unique TaaNum) for terminal run parameters, including stocks, fisheries, and time steps (only 4=Sept, 5=Oct-Dec). These terminal definitions are used in the TAMM (sheet Tami) and FRAM program code for certain algorithms. The TAAETRSList table is not tied to a specific model run (by unique RunID), and thus changes to this table over time will influence model run results from prior years if model runs are in the same project database, but had different terminal run parameter definitions each individual year. In addition, the TAAETRSList table is not included in a model run transfer file and thus definitions are not updated for each model run loaded into a project database.

Thus, the modeling strategy is to create new definitions within this table whenever a modification is necessary, rather than modifying current definitions. Thus, an older definition which matches an older TAMM will remain in the table for model run use (i.e #5). A newer definition will match a newer TAMM (i.e. #40). Both the older and newer values will remain in the same database table and thus multiple years of model runs can be utilized.

Starting in the preseason 2018 Coho project database, the TAAETRSList table has been updated to incorporate TaaNum definitions back through 2013, when the MS Access database structure was first implemented. Any TaaNum definition updates were also made in the starting TAMM files provided at that time.

Any necessary updates to the TAAETRSList table should be made at the beginning of the preseason salmon management process and incorporated in the starting MS Access project database file for coho FRAM. If updates are made to this table during the preseason negotiations, the NOF lead modeler will be responsible for notifying co-managers and ensuring the update is distributed.

Automate pass 1 pass 2 (Chin)

This functionality was added in 2019 to automate a time consuming process to compute non-retention impacts in Puget Sound marine Chinook sport fisheries. In a first step (Pass 1), the non-retention fishery is modeled as “open” to Chinook retention. Output of sublegal and legal encounters from the ‘Pass-1-Run’ are subsequently modeled in the non-retention section of FRAM during the ‘Pass-2-Run’. Most Puget Sound marine Chinook sport fisheries are modeled in the [RunSheet (Chinook)], an Excel workbook that translates periods open to Chinook fishing into fishery effort scalers for FRAM.

Non-retention inputs should be updated when changes in abundances are significant enough to result in changes to encounters and/or when non-retention regulations are updated.

The utility requires an updated [RunSheet (Chinook)], with the naming convention “RunNNNN.xlsm” corresponding to the associated FRAM run number.

When selecting the “Automate Pass 1 Pass 2” button, FRAM will perform the following.

  1. Model marine sport fisheries with the scalers located on the Pass1Input sheet of the workbook. These values reflect all marine sport fisheries (retention and non-retention) as open to retention. For this “wide-open” run, existing non-retention inputs stored in the Access database are set to zero.

  2. Paste landed catch and shaker estimates into the J:P range of the CatchShakerPRN sheet, whereby formulas convert these estimates into legal and sublegal encounters for the non-retention period only.

  3. Update retention fisheries and flags (mark-selective, non-selective), as well as non-retention fisheries and flags with values on Pass2Inputs.

After selecting this option, choose the desired RunSheet and press “Open”. FRAM will then prompt the user to save the updated values, and selecting “Yes” will open the “Save Model Run” menu.

After saving, FRAM will present the following message.

After selecting “OK”, FRAM will open the Run Model menu. Once the run begins, the user interface disappears for a few minutes. FRAM then reappears when the run is finished.

Update Coweeman sheets

The Coweeman spreadsheet is an Excel workbook with abundance and exploitation rate summaries for Columbia River Chinook stocks. Columbia River salmon managers use it as a starting point for in-river models. The workbook also provides exploitation rate information for Lower Columbia River natural Chinook (LCN). This stock is represented by Coweeman hatchery tag codes in FRAM (hence the name of the spreadsheet). LCNs are ESA listed and can be a critical constraining stock for ocean salmon fisheries during the PFMC fishing season setting process. PFMC usually crafts three ocean fishery options bracketing possible ocean fisheries, with option 1 representing the “high” ocean option, 2 the “middle”, and 3 the “low”. Initially, all three options are modeled, but a single option is eventually selected.

All three options or just the final option can be loaded into the “Coweeman Spreadsheet”, an Excel workbook following the naming convention “CoweemanNNNN.xlsm”, where NNNN represents the associated FRAM run number. Note that the in-river LCN harvest rate in cell ‘PFMC-Option-1’!M8 needs to be updated.

When selecting the “Update COWEEMAN Sheets” button, FRAM will:

  1. Perform brood year and fishing year calculations and summarize mortalities and abundances for Columbia River Chinook stocks.

  2. Paste terminal run size and AEQ mortalities for marked, unmarked, and total Columbia River stocks into the tab corresponding to the fishing option selected.

After selecting “Update Coweeman sheets”, select the ocean option associated with the model run and then select the “Coweeman” spreadsheet and press open. After FRAM completes processing, the “Utilities” menu reappears. The updated Coweeman spreadsheet will be open in Excel with FRAM output loaded into the selected option. Save the workbook before closing.

Advanced Use

Linking a model run to a base period

In most cases, model runs will already be linked to the correct base period. Please be aware that altering this relationships may produce confusing results, and consider consulting with a lead FRAM modeler if this seems necessary for your situation.

As noted in [Project database], a FRAM run is comprised of two major types of information: annually varying input data, and historic and mostly static base period parameter values (e.g., exploitation rates, growth rates, maturation rates, natural mortality rates, etc. derived during the calibration process)

The [Base period parameters] are in several tables which usually have a ‘BasePeriodID’ field in the first or second column. A FRAM database can contain multiple base periods, although, until further notice, it is not advisable to have base periods from different calibrations in the same database.

The column BasePeriodID of the RunID table contains the unique base period index to which the run is linked, and simply changing this value will link the run to the desired base period. (This might be informative, for example, in an analysis adjusting growth or maturation rates while fixing stock recruitment and fishery intensity.)

Caution Base period IDs are unique to a FRAM database. They are automatically incremented when a user imports a new base period and consequently different databases can have different base period IDs for the same base period.

To link a base period to a model run during import (i.e., Get model run transfers), FRAM will first look for the BasePeriodID specified in the RunID table of the transfer database. It will then determine the BasePeriodName associated with that BasePeriodID in the BaseID table, and search for this base period name in the recipient database. However, base period names are not always unique. The same “BaseID” table can have several different base periods with the same name.

There are three possible outcomes of this process, but the second and third are uncommon, because the user will rarely be confronted with a database that either contains multiple base periods with the same name or a need to associate a run with a base period that is not already present in the main database.

  1. FRAM finds the specified base period name in the ‘BaseID’ table of the existing database and retrieves the associated base period ID. It updates the ‘BasePeriodID’ field of the ‘RunID’ table of the new run to the ‘BasePeriodID’ associated with the base period name in the recipient database.

  2. FRAM cannot find the base period name in the ‘BaseID’ table of the existing database. FRAM will still import the data, but alert the user of the need to import the matching base period. The ‘BasePeriodID’ field of the ‘RunID’ table of the newly imported run will be “0”

BasePeriod not found on run import

BasePeriod not found on run import

  1. FRAM finds multiple base periods in the recipient database with the same base period name as the one specified in the ‘BaseID’ table of the run to be imported. FRAM will alert the user of the conflict and requests the ‘BaseID’ they wish to associate with the model run. The ‘BasePeriodID’ field of the ‘RunID’ table of the newly imported run will be the ID the user specifies.
Multiple BasePeriods found

Multiple BasePeriods found

Post-processing

Coho

Columbia River Mainstem Model

For Coho, the Pacific Fishery Management Council’s (PFMC) Salmon Technical Team (STT) and other regional parties utilize separate harvest models for fisheries in the Columbia River region. The Coho TAMM contains several sheets related to summarizing model results for the Columbia River and stocks of interest to the STT. It also contains a sheet ColRHarvestInput that provides an interface between FRAM-TAMM and regional models. Thus, this is one post-processing instance where external models utilize FRAM-TAMM output and also feed back into the TAMM calculations as well. See the coho TAMM table of contents for those sheets with values generated by the Oregon Production Index Technical Team (OPITT) and used by the PFMC STT.

Chinook

Hood Canal Ayock Point splits

For Chinook, the summer Area 12 sport fishery regulations differ relative to Ayock Point, with non-retention fisheries to the north and mark-selective practices to the south. These areas are not distinguished within the FRAM fishery ‘A 12 Sport’ (FisheryID 64), so that non-retention and MSF impacts must be apportioned after runs are completed.

In order to allocate impacts to each of these sub-areas during preseason model runs, the FRAM Mortality output table is exported into the sheet Data of the file FRAMMortalitiesNewBPAEQ_TEMPLATE_Round_6.2.xlsx. The lookup tables in other sheets allow calculation of the AEQ mortalities from the FRAM Mortality output table: aeq (providing AEQ factor values), RelMort (providing sublegal mortality rates) and TermFlags (indicating if a fishery is terminal). The sheets fish and stk provide the names of FRAM fisheries and stocks based on the FisheryID and StockID fields.

Consequently, the marked and unmarked AEQ mortalities of the “Hood Canal Fall Fingerlings” (StockID 31 and 32) in the fishery ‘A 12 Sport’ (FisheryID 64) in the time steps 3 (July-September) and 4 (October-April) are calculated. Then, all non-retention AEQ mortalities (‘NR AEQ’) are summarized for the time steps 3 and 4 and for the marked and unmarked components of ‘Hood Canal Fall Fingerlings’ and assigned to North of Ayock. Similarly, all mark-selective AEQ mortalities (‘AEQ MSF Landed’ + ‘AEQ MSF DO’ + ‘AEQ MSF Shaker’) are summarized and assigned to South of Ayock. These AEQ mortality values are then copied into the cells O46 & O47 (time step 3) and O50 & O51 (time step 4) of the sheets HdCmrkd (marked ‘Hood Canal Fall Fingerlings’) and HdCUnmrkd (unmarked ‘Hood Canal Fall Fingerlings’).

South Puget Sound processing

Abundance inputs provided by regional biologists for pre- and post-season runs for South Puget Sound TAMM stocks (Minter, Chambers, Nisqually, McAllister, Deschutes, and stocks in Areas 13D–K) assume that 100% of the Chinook caught in marine area 13A belong to the Minter stock and 100% of the Chinook caught in marine area 13+ belong to the Deschutes stock. In reality, stock compositions of the South Sound catch differ from this assumption and are determined according to the harvest rate indices provided by regional biologists (see cells BX!20:BY!28 of the SPSmrkd and SPSUnmrkd tabs of the Chinook TAMM). TAMM reapportions catches in marine area 13+ and 13A according to these harvest rate indices and the abundances of each TAMM stock relative to the aggregate (cells CB20:CC28 of the SPSmrkd and SPSUnmrkd tabs of the TAMM).

As stock-specific catch in 13A and 13+ changes, the abundance inputs for each South Puget Sound stock must be updated. However, updates to abundance inputs alter the proportion of each stock’s contribution to the South Puget Sound aggregate. As stock contribution proportions are updated, catch estimates by TAMM stock are updated. This necessitates an iterative process to get the correct stock abundance inputs and catch estimates by TAMM stock.

There are two ways that the user could perform South Puget Sound iterations. There is a manual method built into the TAMMs within the “SPS Abundance Iterations” tab. Instructions on how to complete South Puget Sound Iterations using the TAMM are available in rows 11 to 16 of this tab. Alternatively, an R script is available to perform South Puget Sound iterations; contact a lead FRAM modeler for the latest version and additional information on dependencies. The current version requires updating the directory of the TAMM(s) in line 13 and the list of TAMM file name(s) in line 17. The user must also ensure that the “Original Values” section of the “SPS Abundance Iterations” tab (cells B21:E29) is correct. The R code can then process multiple TAMMs in a single execution.

SRFI - Snake River Fall Index

Snake River Fall Chinook are managed such that marked ocean exploitation rates of age 3 and 4 fish do not exceed 70% of the average marked ocean exploitation rate of age 3 and 4 fish from 1988 to 1993. Ocean exploitation rate information from 1988 to 1993 is derived from FRAM validation runs, using a report driver file. To access the necessary report driver file via the FRAM interface, the user should navigate from the Main Menu to Report Driver File Options page (Output/Results button -> Report Driver button). Next, the user should select the “SnakeU&MER” driver using the salmon colored “Select Driver” button. Once the driver is selected, the user can run the report via the green “RUN Reports” button. Reports must be run for 1988 to 1993 as well as the run year being evaluated for compliance with the SRFI.

Results from the SRFI reports can be loaded into a SRFI template Excel file (available on request from FRAM lead modelers). SRFI compliance can then be evaluated on the “SRFIsummary” tab after the template has been fully loaded with updated information.

Troubleshooting

Installation issues

If FRAM.EXE produces the error Message

Unhandled exception has occured in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the appllication will close immediately. Could not load file or assembly ‘Microsoft.Office.Interop.Excel, Version=11.0.0.0. Culture=neutral. PublicKey Token=71e9bce111e9429c’ or one of its dependencies. The system cannot find the file specified.

Then it may be resolved by ensuring the following files are available in the same folder as the FRAM.EXE

Alternatively, if FRAM SETUP.EXE produces the error Message

The following feature couldn’t be installed: .NET framework 3.5’. Error code 0x800F0954.

Then temporarily bypassing WSUS server with the following registry edit may resolve the issue (requires administrator privileges):

  • Right-click Start, and click Run
  • Type regedit.exe and click OK
  • Go to the following registry key: HKEY_LOCAL_MACHINE
  • In the right-pane, if the value named UseWUServer exists, set its data to 0
  • Exit the Registry Editor
  • Restart Windows.

Error messages

Many error messages are easy to resolve, but some can be particularly vexing. For the latter category, please consult with a lead FRAM modeler, ideally with a screenshot of your issue and details of your operating system.

Generally speaking, errors typically involve either invalid parameter value(s) within database tables or file structure problems.

In the sections below, the letters X, Y, Z in error message are placeholders for stock, age, fishery, or time step numbers. The parameter represented by the placeholder is determined by the order of the parameter in the error message; i.e. if stock is the first parameter listed then stock number becomes X.


“Arithmetic operation resulted in an overflow”

This message can be triggered if an integer size exceeds 32 bits; i.e., catches calculated in FRAM are too large. The underlying problem can be a catch input that is too large or mis-flagged in TAMM. Check the modeled catches in FRAM’s user interface for unusually large values. Check the PopStat report for stocks with negative escapements. Also check the “Detail” of the error message to find out which procedure triggers the message. If it is a TAMM procedure, then error check TAMI (catches flagged as rates, etc.).

“Bad Flag-Value Input !!! Fish= X Time= Y. Please change and re-save form. Use 0,1,2,7,8,17,18,27,28 for Flag!”

Check for flags in FisheryScalers table or user interface that are <> to 1, 2, 7, 8, 17, 18, 27, 28.

“Can’t Find BackFRAM Catch WorkSheet in your Workbook Selection. Please Choose appropriate File with Backwards FRAM Catch!”

The ‘Load Back-FRAM Catch’ button is working for Coho in BkFRAM, although catches are usually loaded into the model run through the forward FRAM Main Menu, Edit Model Run, Input Menu-Fishery, Quota/Scalers or Non-Retention sections from a template file. The necessary file for using the ‘Load Back-FRAM Catch’ button will likely be titled “BackFRAM_Catch…xls”, with each individual year on a separate worksheet titled “Year”FRAM (i.e. 2017FRAM). This message occurs when the EXCEL file is missing worksheets with the naming convention “XXXXFRAM” (XXXX is four digit run year) or an incorrect file has been selected.

“Can’t Find ‘FRAMEscapeV2’ WorkSheet in your Spreadsheet Selection. Please Choose appropriate Spreadsheet with Backwards FRAM Escapement!”

Backwards FRAM escapements can be loaded from a MS Excel template file (“Coho Escape….xls”) by selecting the ‘Import Escapements’ button and then locating and selecting the file with the desired values. The template file workbook needs to contain a worksheet tab called “FRAMEscape2”. This error message is triggered when this worksheet is missing or an incorrect file has been selected.

“Can’t find Matching BasePeriodName ‘TransBaseIDName’ in FramVS Database. Please Read Corresponding Base file for this Model Run Transfer”

Open the Transferdatabase and find the BasePeriodName in the BaseID table. Import this base period into the recipient database follwing instructions from Delete/Transfer/Get Base Period.

“Can’t Find ‘PFMC-Option-?’ WorkSheet in your Selection. Please Choose appropriate SpreadSheet with Coweeman WorkSheets!”

The “Coweeman” workbook selected is missing worksheets titled “PFMC-Option-“. Make sure you selected the correct file.

“Can’t find the Base Period ID for this Model Run! Do you want to Choose another Base Period ???”

The model cannot find the base period ID associated with the model run. If the user answeres “No”, FRAM will terminate. Answering “Yes” brings up available base periods. The user can then select the base period to associate with the run.

“Can’t Find the BASE PERIOD FILE for this CMD File in Database Add BASE PERIOD FILE or Change CMD File OUT Name to Existing Name”

Open the *.cmd file. Find the BasePeriodName on line 5. If the recipient database already contains an appropriate base period for this command file, change the name on line 5 to this name, otherwise import the correct base period follwing steps in Read Old Base Period.

“Chinook TAMM Did Not Converge!TAMM Transfer Files not Created”

Most likely source of this error can be found in TAMI. Look for fishery input that are too large to be supported by the abundances of TAMM stocks. Check TAMI for unusal values. Also look at FramCheck.Txt. This file is automatically created when running FRAM with TAMM (in TAMM folder). Look for negative values or large discrepancies between TammEstimate and TammCatch.

CNR Method 1 or 2 cannot be used in fishery with no catch Fishery=X TStep=Y Must Fix this Error before Continuing.”

Method 1 or 2 compute non-landed encounters as a function of landed catch. If there is no landed catch, model non-retention with flags 3 or 4.

“Coho TAMM Procedure Requires ‘TaaETRSList’ in DataBase Table. Please Read Text File (TaaETRSNum.Txt) and Re-Run”

“TAAETRSList” table of Access database is blank. This table should contain terminal run size definitions for Coho; i.e. stock and fishery numbers for run size defintions. Please import a valid “TAAETRSList” into the database.

“The ER Exceeded 100% for the following stocks & time steps: Bias-corrected MSF calculations may be invalid.”

Modify fishery inputs & re-run as necessary.

This message is triggered by a catch input that is too large to be supported by the abundances of the stocks in the fishery. Multiple stocks can be affected. Check the PopStat report for stocks with negative escapements. This most often occurs in wipe-out type fisheries such as 8D net or during the NALF run (New Abundances Last Year’s Fisheries). For coho, it can also occur when a quota fishery is flagged as a rate in TAMM. Check fishery flagging in TAMM. Also examine large fisheries that most likely affect the stocks displaying negative escapements.

“Error-Backwards Stock FLAG = 2 points to Stock Scalers = ZERO Stock Name =X”

A backwards flag of 2 instructs the program to calculate mark rates from exisiting marked and unmarked stock recruit scalers. The error message is triggered when the marked and unmarked recruit scaler are zero. Enter a seed value for the stock in question in the StockRecruit table or model marked and unmarked components of the stock with flag 1 in BkFRAM.

“ERROR in Base Exploitation Rate Table”

Check BaseExploitationRate table for ages, stock numbers, or fishery numbers greater than maximum base period values; i.e. Chinook age > 5.

“ERROR in Base Cohort Table”

Check BaseCohort table for ages, stock numbers, or fishery numbers greater than maximum base period values; i.e. Chinook age > 5.

“ERROR in RunID Table of Database … Duplicate Record”

Check the RunID table for duplicate RunID numbers. Since many database tables contain a RunID field, the duplicate runs should be deleted and re-loaded (transferred) into the database.

“Error in XX Table Read”

XX stands for database table name that produces a read error, i.e. “Cohort”, “Escapement” table. Check table for ages, stock numbers, time step or fishery numbers greater than maximum base period values; i.e. Chinook time step > 4.

“Error in XX Table Transfer .. No Records”

Main FRAM database does not contain records in the table specified in the error message. ACCESS database is corrupted. Start with a new database.

“ERROR - NonRetention Catch for Zero Base Period Catch TIME,FISH = X,Y”

This error message can occur if non-retention is modeled in a fishery and time step without base period exploitation rates. The model is unable to compute non-retention impacts. If possible, model impacts in a suitable surrogate fishery/time step.

“ERROR - You have an Old Format NewModelRunTransfer.Mdb Database.You need to get the New Format Database to do Model Run Transfers”

The transfer database selected is missing column MSFFisheryScaleFactor in FisheryScalers table. Please use the latest version of the transfer database.

“Error was detected in the TAMI Controls. Please Re-Check after run”

Go to TAMM’s “TAMI” worksheet and look for missing values or incorrect flagging, such as blanks in column 5.

“FLAG = 2 - Error for Backwards FRAM Target Esc Stock# = X Name = Y - Conflicting Flags”

A backwards flag of 2 instructs the program to calculate mark rates from existing marked and unmarked stock recruit scalers. The user provided a flag of 2 for the marked and unmarked component of a stock. To resolve this issue, sum both components, place the value in the marked section of the stock, flag as 2. Place a value of zero in the unmarked component of the stock and flag as zero.

“Invalid Cohort Size for Stk X, PTerm Y, Time Step Z.”

The FRAM computed cohort for stock X, pterm Y, and time step Z results in “NaN” (not a number, i.e. a divide by zero calculation). Pterm refers to either a preterminal (0) or terminal (1) cohort. These errors can be difficult to fix, please consult with a lead FRAM modeler.

“Invalid (MSF) Landed Catch for Stk X, Fishery Y, Time Step Z.”

FRAM computed landed catch for stock X, fishery Y, and time step Z results in “NaN” (not a number, i.e. a divide by zero error). These errors can be difficult to fix, please consult with a lead FRAM modeler.

“Negative Cohort Size for STOCK, AGE = X,Y”

A cohort can become negative when the combined fishing impacts in a time step exceed the abundance. This usually occurs when terminal fisheries are too large. Check inputs for fisheries in the terminal area of the listed stock.

“Please provide a run year in the RunID table of the AccessDB for RunID X. You can also enter the run year under FRAMUtilities/EditModelRunInfo.”

This message occurs when the “RunYear” field in the “RunID” table is left blank. It can be corrected by either entering a run year directly in the Access database or by adding the year programatically be navigating to “FRAMUtilities/EditModelRunInfo”. This error is also triggered when a run year exists, but the “RunYear” field in the Access database has the wrong DataType. Set the DataType of this field to “Short Text” in the RunID table’s “Design View”. Note: The program will execute properly, even if this error message is ignored.

“Please Read Selected Base Period File before Reading CMD File”

This message occurs when reading in an “old-style” command file without first importing the matching base period file (.out file). The base period name can be found on line 6 of the old command (.cmd) file.

“Please select TransferFile version 5 or higher”

An old version of a Tranferdatabase was selected. Find and select file “NewModelRunTransferX.mdb”. X stands for number 5 or higher.

“Stock xxx TStep yyy may produce negative escapements. Please finish the run and look for negative escapements in the PopStat report.”

Do not use this run for official results!

This message is triggered by a catch input that is too large to be supported by the abundances of the stocks in the fishery. Multiple stocks can be affected. Check the PopStat report for stocks with negative escapements. This most often occurs in wipe-out type fisheries such as 8D net or during the NALF run (New Abundances Last Year’s Fisheries). For coho, it can also occur when a quota fishery is flagged as a rate in TAMM. Check fishery flagging in TAMM. Also examine large fisheries that most likely affect the stocks displaying negative escapements.

TAMM Error Tamm Fishery Number = Zero. Cannot Use this Control on this Terminal Fishery!”

Go to TAMM’s “TAMI” worksheet and look for fishing inputs of zero with a flag >2.

“The BASE-PERIOD FILE Selected has Format Problems in the XX section - TimeStep= X”

Open the *.out file. Find the time step listed in the error message. Find the data section specified (i.e. exploitation rate, incidental rate, etc.) below the time step. Look for and correct formating irregularities.

“The COMMAND FILE file Selected has Format Problems RecNum=X”

Open the *.cmd file. Find the record number listed in error message. Correct formating issues.

Other FAQ

Why does FRAM keep crashing when I try to load an .mdb?

Do you have a database with the full set of tables? You may be trying to load a model run “transfer” database which is missing several important structural tables that FRAM needs.

Why does FRAM keep telling me to enter a model run year when I can see a year value for my run?

In the RunID table, FRAM expects the RunYear field to be a “Short Text” class. You are probably using a project database with a numeric or other data type. Open the design view of the RunID table in Access and update the data type.

Can I interact with Excel when FRAM is running?

Probably not. This will usually produce a system fault and require you to restart FRAM.

Can I change values in a project database when it has been selected in an open FRAM session?

Yes, FRAM does not create a lock file (i.e., database_name.ldb) like Access. But note that any (saved) changes will not propagate into the FRAM application memory until the run is reselected with the “Select Model Run” button of the main menu.

Can I run multiple instances of FRAM simultaneously?

Yes, and modifications to the same project database will appear across open instances. But this is probably not a great idea for an analysis examining “directional” parameter changes (e.g., 20%, 40%, 60% and 80% changes within a given year), particularly as the same TAMM file cannot be used with multiple instances of FRAM. However, this may be a plausibe approach given a “ready to go” project database and set of TAMM files corresponding to different model runs.

Coho FRAM continues to produce non-sensical results, even after input errors have been corrected.

If running a Coho FRAM run, check the modeled catch in FRAM’s user interface for coastal fisheries. If some of these fisheries display large negative catches, then update fisheries 45-52, 54-56, 62, 63, 65, 68, 71, 73, 74 with a landed catch of 1 (or any other reasonable value). Run with “Coastal Iterations” selected to overwrite the catch inputs with values modeled in TAMM.

FRAM displays the same error message even after the error has been corrected.

Go to “Task Manager” and manually close all instances of FRAM. Then re-open FRAM and run.


To cite this page:
Salmon modeling and analysis workgroup. 2023. User Manual Main Menu in FRAM Documentation. https://framverse.github.io/fram_doc/ built September 21, 2023.


Previous Documentation

FRAM User Manual 2007


  1. after the required initial selection when opening the database, re-selection is needed after some utilities and database changes made outside of FRAM in addition to simply switching among different runs↩︎

  2. See FramCalcs:ScaleCohort↩︎

  3. Recall that FRAM is not spatiotemporally explicit. Rather, all fishery impacts and maturation adjustments are handled simultaneously across the vector of stocks (and ages for Chinook) within a given timestep and preterminal/terminal substep. Thus, all fisheries occurring in the same time step operate on the same abundance, and any spatial precedence is a function of the annual fishery sequence through time. For example, spring catches in Alaska do not directly influence spring catches in BC and WA. However, these geographic precursors do affect summer catches in Puget Sound and elsewhere due to time step/timing.↩︎

  4. Note that creating a completely de novo “new”, blank run is not actually possible from the FRAM application, but would require using other tools to initialize a new project.mdb with the necessary lookup and parameter tables.↩︎