Skip to content

🐟 fisheries

U.S. fisheries data from NOAA Fisheries. Tables: rmis_releases and rmis_locations (RMIS hatchery/wild salmon and steelhead release groups and the location lookup), noaa_feus_economic_impacts (jobs, sales, income and value added of commercial and recreational fishing by state), wdfw_salmonid_escapement (Washington stock-level escapement), esa_salmonid_listings (ESA status of salmon/steelhead ESUs and DPSs), cdfw_grandtab_escapement (California Central Valley Chinook escapement), adfg_fish_counts (Alaska site counts), dart_adult_counts (adult salmon/steelhead dam passage counts, WA/OR) stock_smart_assessments (NOAA stock assessment F/Fmsy and B/Bmsy by stock), noaa_commercial_landings, annual commercial landings (pounds and dollar value) and recreational catch (number of fish) by state and species, including Pacific and Atlantic salmon by species (chinook, coho, sockeye, chum, pink, atlantic). Landings are harvest, not population: use them as the state-level signal for salmon abundance trends, with the caveat that harvest also reflects regulation and effort. Joins to geo.state_ref via state_abbr.

12 datasets · 197 columns

noaa_commercial_landings · table

NOAA Fisheries FOSS annual landings by state and species, 1950 to current-2. Two collections: 'Commercial' (pounds, dollars; ~3,200 rows/year in recent years) and 'Recreational' (MRIP estimates; fish_count, and pounds where estimated; from 1981). Salmon rows are flagged is_salmon = true with salmon_species (chinook, coho, sockeye, chum, pink, atlantic, pacific_unspecified) and salmon_origin ('coastal' for Alaska, Pacific Coast, New England etc.; 'great_lakes_stocked' for the Great Lakes region, where salmon are stocked non-native fish) — filter salmon_origin = 'coastal' for wild-stock states. Alaska dominates (2022: ~381M lb sockeye, ~216M lb pink, ~82M lb chum); CA, OR, WA also report every year. This is harvest, not run size or escapement: it tracks population trends only loosely, since regulation, closures and market affect it. For Columbia River adult counts see the planned dart_adult_counts table. NOAA publishes several source rows per state + species + source + collection (MRIP and confidential-species rows are split), so there is no primary key: always SUM(pounds), SUM(dollars) or SUM(fish_count) grouped by the keys you need. state_name 'PROCESS AT SEA' (2008+) is landings processed offshore: state_abbr is null and is_state = false, so exclude it from by-state rollups. FLORIDA-EAST and FLORIDA-WEST both map to state_abbr 'FL'. Cross-references geo.state_ref via state_abbr.

Column Type Null Description
landing_year integer no Calendar year of the landings
collection string no 'Commercial' (pounds, dollars) or 'Recreational' (MRIP catch estimates)
source string no Originating NOAA data system (e.g. AKFIN, PACFIN, MRIP, GLAKES, PIFSC)
state_name string no NOAA state name in upper case, including FLORIDA-EAST/FLORIDA-WEST and PROCESS AT SEA
state_abbr string yes 2-letter state/territory abbreviation; null for PROCESS AT SEA
is_state boolean no false for the PROCESS AT SEA pseudo-state, true otherwise; filter on it for by-state rollups
region_name string yes NOAA region (Alaska, Pacific Coast, New England, Great Lakes, Gulf, ...); null on some recreational rows
tsn string yes ITIS taxonomic serial number of the species (0 = withheld for confidentiality)
species_name string yes NOAA/AFS common name in upper case (e.g. 'SALMON, SOCKEYE'); trailing ** marks a grouped category
scientific_name string yes Scientific name; null for most recreational rows
pounds double yes Landed weight in pounds
dollars double yes Ex-vessel value in nominal dollars; null for recreational rows
fish_count double yes Estimated number of fish caught (MRIP recreational rows only)
is_salmon boolean no true when species_name starts with 'SALMON, '
salmon_species string yes Lower-case salmon species (chinook, coho, sockeye, chum, pink, atlantic, pacific); null for non-salmon. 'pacific' is NOAA's unspecified Pacific salmon group
salmon_origin string yes 'coastal' or 'great_lakes_stocked' (non-native, stocked salmon in the Great Lakes region); null for non-salmon

mrip_recreational_catch · table

NOAA Fisheries MRIP (Marine Recreational Information Program) recreational catch by year x wave x state x fishing mode x area fished x species, 1981 to the latest published year. Measures: harvest in fish (landings_fish = claimed + reported), fish released alive (released_fish), total catch (total_catch_fish) and harvest weight (landings_pounds, landings_kg), each with a standard error and percent standard error. Companion to noaa_commercial_landings, whose collection = 'Recreational' rows carry only an annual state x species fish_count and pounds; this table adds wave, mode, area, the harvest-versus-released split and the uncertainty. Coverage is the Atlantic and Gulf coasts from Maine to Mississippi plus Hawaii (17 states in 2022); Louisiana, Texas, the Pacific coast and Alaska are surveyed by state agencies and are absent from recent years, so use noaa_commercial_landings for them. Florida appears under two sub-regions (South Atlantic and Gulf of America), so state_abbr alone does not identify a row. species_code is MRIP's 10-digit species code and species_name its common name in upper case; it does not carry the ITIS tsn used in noaa_commercial_landings, so match species by name (approximate). Estimates are survey-based: check *_pse (above 50 = unreliable) and never treat a null as zero. One row per wave x state x mode x area x species; sum landings_fish or total_catch_fish across waves/modes/areas for annual totals (standard errors do not add). Source files are replaced in place when estimates are revised. Cross-references geo.state_ref via state_abbr.

Column Type Null Description
catch_year integer no Calendar year of the estimate
wave integer no MRIP wave (two-month period) 1 = Jan-Feb, 2 = Mar-Apr, 3 = May-Jun, 4 = Jul-Aug, 5 = Sep-Oct, 6 = Nov-Dec
status string no FINAL or PRELIMINARY; recent years are revised, so the newest year is typically PRELIMINARY
sub_region_code string yes MRIP sub-region code (4 North Atlantic, 5 Mid-Atlantic, 6 South Atlantic, 7 Gulf of America, 8 Hawaiian Islands)
sub_region_name string yes MRIP sub-region name
state_fips string no 2-digit state FIPS code; join to geo.state_ref
state_abbr string no 2-letter state abbreviation; join to geo.state_ref
state_name string yes State name in upper case as published by MRIP
mode_code string yes Fishing mode code (3 shore, 4 party boat, 5 charter boat, 7 private/rental boat; older years may also carry combined-mode codes)
mode_name string yes Fishing mode name (SHORE, PARTY BOAT, CHARTER BOAT, PRIVATE/RENTAL BOAT)
area_code string yes Area fished code (1 ocean <= 3 mi, 2 ocean > 3 mi, 3 ocean <= 10 mi, 4 ocean > 10 mi, 5 inland)
area_name string yes Area fished (OCEAN (<= 3 MI), OCEAN (> 3 MI), OCEAN (<= 10 MI), OCEAN (> 10 MI), INLAND)
alt_flag integer yes MRIP alternate-estimate flag (0 for standard estimates)
species_code string no MRIP 10-digit species code (1000000000 = unidentified fish)
species_name string no MRIP common name in upper case (e.g. STRIPED BASS, RED SNAPPER); grouped categories end in GENUS or SPECIES
claimed_harvest_fish double yes Type A claim: fish harvested and seen/identified by an interviewer (MRIP ESTCLAIM); null when the estimate is not available
claimed_harvest_fish_std_err double yes Standard error of claimed_harvest_fish, sqrt of the published variance
claimed_harvest_fish_pse double yes Percent standard error of claimed_harvest_fish (100 x SE / estimate); above 50 the estimate is unreliable
reported_harvest_fish double yes Type B1: fish harvested but not seen by an interviewer, as reported by the angler (MRIP ESTHARV); null when the estimate is not available
reported_harvest_fish_std_err double yes Standard error of reported_harvest_fish, sqrt of the published variance
reported_harvest_fish_pse double yes Percent standard error of reported_harvest_fish (100 x SE / estimate); above 50 the estimate is unreliable
landings_fish double yes Total harvested fish, A + B1 (MRIP LANDING); the recreational harvest number; null when the estimate is not available
landings_fish_std_err double yes Standard error of landings_fish, sqrt of the published variance
landings_fish_pse double yes Percent standard error of landings_fish (100 x SE / estimate); above 50 the estimate is unreliable
released_fish double yes Type B2: fish caught and released alive (MRIP ESTREL); null when the estimate is not available
released_fish_std_err double yes Standard error of released_fish, sqrt of the published variance
released_fish_pse double yes Percent standard error of released_fish (100 x SE / estimate); above 50 the estimate is unreliable
total_catch_fish double yes Total catch: harvested plus released fish (MRIP TOT_CAT); null when the estimate is not available
total_catch_fish_std_err double yes Standard error of total_catch_fish, sqrt of the published variance
total_catch_fish_pse double yes Percent standard error of total_catch_fish (100 x SE / estimate); above 50 the estimate is unreliable
landings_pounds double yes Harvest weight in pounds, A + B1 (MRIP LBS_AB1); null when the estimate is not available
landings_pounds_std_err double yes Standard error of landings_pounds, sqrt of the published variance
landings_pounds_pse double yes Percent standard error of landings_pounds (100 x SE / estimate); above 50 the estimate is unreliable
landings_kg double yes Harvest weight in kilograms, A + B1 (MRIP WGT_AB1); null when the estimate is not available
landings_kg_std_err double yes Standard error of landings_kg, sqrt of the published variance
landings_kg_pse double yes Percent standard error of landings_kg (100 x SE / estimate); above 50 the estimate is unreliable

mrip_recreational_effort · table

NOAA Fisheries MRIP recreational fishing effort, in angler trips, by year x wave x state x fishing mode x area fished, 1981 to the latest published year, with standard error and percent standard error. One trip is one angler fishing for one day. Pair with mrip_recreational_catch (same keys) to compute catch per trip. Atlantic and Gulf coasts from Maine to Mississippi plus Hawaii; Louisiana, Texas, the Pacific coast and Alaska are absent from recent years. Florida appears under two sub-regions (South Atlantic and Gulf of America). A null angler_trips is an estimate MRIP did not produce for that cell, not zero trips. Standard errors do not add across rows. Cross-references geo.state_ref via state_abbr.

Column Type Null Description
catch_year integer no Calendar year of the estimate
wave integer no MRIP wave (two-month period) 1 = Jan-Feb, 2 = Mar-Apr, 3 = May-Jun, 4 = Jul-Aug, 5 = Sep-Oct, 6 = Nov-Dec
status string no FINAL or PRELIMINARY; recent years are revised, so the newest year is typically PRELIMINARY
sub_region_code string yes MRIP sub-region code (4 North Atlantic, 5 Mid-Atlantic, 6 South Atlantic, 7 Gulf of America, 8 Hawaiian Islands)
sub_region_name string yes MRIP sub-region name
state_fips string no 2-digit state FIPS code; join to geo.state_ref
state_abbr string no 2-letter state abbreviation; join to geo.state_ref
state_name string yes State name in upper case as published by MRIP
mode_code string yes Fishing mode code (3 shore, 4 party boat, 5 charter boat, 7 private/rental boat; older years may also carry combined-mode codes)
mode_name string yes Fishing mode name (SHORE, PARTY BOAT, CHARTER BOAT, PRIVATE/RENTAL BOAT)
area_code string yes Area fished code (1 ocean <= 3 mi, 2 ocean > 3 mi, 3 ocean <= 10 mi, 4 ocean > 10 mi, 5 inland)
area_name string yes Area fished (OCEAN (<= 3 MI), OCEAN (> 3 MI), OCEAN (<= 10 MI), OCEAN (> 10 MI), INLAND)
angler_trips double yes Estimated angler trips (MRIP ESTRIPS); null when the estimate is not available
angler_trips_std_err double yes Standard error of angler_trips, sqrt of the published variance
angler_trips_pse double yes Percent standard error of angler_trips; above 50 the estimate is unreliable

dart_adult_counts · table

Annual adult fish passage counts at Columbia basin dams and fishways (Columbia Basin Research DART, from USACE and public utility district counts): Chinook, Jack Chinook, Steelhead, Wild Steelhead, Sockeye, Coho, Jack Coho, Chum, Pink, plus Shad, Lamprey and Bull Trout, one row per project x year x species. 17 projects on the Columbia, Snake, Yakima, Wenatchee and Willamette rivers; Bonneville back to 1938. This is the closest keyless run-size signal for WA and OR salmon (Bonneville is the first dam up the Columbia, so its Chinook/Steelhead/Sockeye counts approximate the total Columbia return); it is a passage count at a dam, not a per-stock escapement estimate. Adults counted at Lower Granite and the other Snake dams are headed to Idaho spawning grounds but the dams are in Washington, so state_abbrs gives the dam's location, and spans_states = true marks Columbia dams on the WA/OR border (BON, TDA, JDA, MCN): do not add those to a by-state sum. Counts are not additive across dams in the same river (the same fish is counted at each). Hatchery fish are included except where the species column says Wild.

Column Type Null Description
project_code string no DART project code (BON, TDA, JDA, MCN, IHR, LMN, LGS, LWG, PRD, WAN, RIS, RRH, WEL, WFF, PRO, ROZ, TUM)
project_name string no Dam or counting station name, e.g. Bonneville, Lower Granite, Willamette Falls
river string no River the project sits on (Columbia, Snake, Yakima, Wenatchee, Willamette)
state_abbrs string no Comma-separated 2-letter state(s) the dam sits in, e.g. 'WA' or 'OR,WA' for border dams; join to geo.state_ref
spans_states boolean no true for Columbia dams on the Oregon/Washington border
count_year integer no Calendar year of the count
species string no DART species/category, e.g. Chinook, Jack Chinook, Steelhead, Wild Steelhead, Sockeye, Coho, Jack Coho, Chum, Pink, Shad, Bull Trout, Lamprey (daytime)
adult_count bigint no Net fish counted passing the project that year (fallbacks are subtracted, so a few rare years show -1 to -4); species with no count that year are absent, not zero-filled. The current calendar year is partial

adfg_fish_counts · table

Alaska Department of Fish and Game, Sport Fish Division escapement and run counts of adult Chinook, Sockeye (incl. early/late run), Coho and Steelhead at ~40 weirs, towers and sonar sites (Kenai, Kasilof, Russian, Anchor, Ninilchik, Situk, Gulkana, Copper, Chena, Salcha, Karluk, Ayakulik, Buskin, Nushagak, Deshka, Little Susitna and more), one row per count site x species x year, summed from the daily counts, 1960s onward (start year varies by site). state_abbr is always AK. This is the Alaska counterpart to dart_adult_counts: the Division's own in-river counts at monitored sites, not a statewide run-size estimate (Bristol Bay, Yukon and Kuskokwim commercial-area escapement belong to the Commercial Fisheries Division and are not in this table), and a site's count is only comparable to the same site's other years. Counts for a year are only the days the site operated (days_counted, first/last_count_date); the current year is partial. Use noaa_commercial_landings for statewide harvest.

Column Type Null Description
adfg_location_id bigint no ADF&G countLocationID of the weir/tower/sonar site
location_name string no Count site name as ADF&G publishes it, e.g. 'Kenai River (Chinook)', 'Situk River'
adfg_species_id bigint no ADF&G speciesID (410 Chinook, 411/412 Chinook early/late, 420 Sockeye, 421/422 Sockeye early/late, 430 Coho, 540 Steelhead)
species_name string no Species label, e.g. Chinook, Sockeye - Early Run, Coho, Steelhead
state_abbr string no Always AK; join to geo.state_ref
count_year integer no Calendar year of the counts
total_count bigint no Sum of the daily fish counts for the year at this site (days the site did not operate are absent, not zero)
days_counted integer no Number of days with a reported count that year
peak_daily_count bigint no Largest single-day count that year
first_count_date string no First day with a reported count (yyyy-MM-dd)
last_count_date string no Last day with a reported count (yyyy-MM-dd)

cdfw_grandtab_escapement · table

California Department of Fish and Wildlife GrandTab adult Chinook salmon escapement for the Central Valley (Sacramento River system), served by SacPAS (Columbia Basin Research): annual escapement, i.e. adult fish that returned from the ocean to spawning areas or hatcheries, for the four runs (Winter, Spring, Fall, Late-Fall) split by origin (In-River natural spawning vs Hatchery), one row per run x origin x year with an estimate, 1952 onward (years with no estimate are absent, not zero). state_abbr is always CA. This is the California run-size series for Chinook; add In-River and Hatchery for a run total, and sum the four runs for the Central Valley total (the SacPAS 'All' selections are those sums and are not stored again). Values for the latest years are preliminary (is_preliminary = true) and are revised. Sacramento system only: San Joaquin tributaries and per-stream breakdowns are not in this table, and the Klamath and Smith basins are not covered by GrandTab. Estimates mix methods (carcass mark-recapture, video weirs, redd expansion, hatchery counts), so year-to-year jumps can partly reflect method changes.

Column Type Null Description
run_name string no Chinook run - Winter, Spring, Fall or Late-Fall
origin_type string no In-River (natural spawning areas) or Hatchery
state_abbr string no Always CA; join to geo.state_ref
count_year integer no End year of the monitoring period (return year)
escapement bigint no Estimated adult Chinook returning (escapement) for the run, origin and year, Sacramento River system
is_preliminary boolean no true when CDFW marks the year's estimate as preliminary (not final)
rolling_3yr_geomean bigint yes 3-year rolling geometric mean of escapement as SacPAS computes it (this and the two previous years); null when SacPAS leaves it blank because an estimate is missing

esa_salmonid_listings · table

Endangered Species Act status of every Pacific salmon, steelhead and Atlantic salmon listing entity from the U.S. Fish and Wildlife Service ECOS species report (NOAA Fisheries is the lead agency for these): one row per Evolutionarily Significant Unit (salmon) or Distinct Population Segment (steelhead, Atlantic salmon), covering Chinook, coho, chum, sockeye, pink, steelhead and Atlantic salmon. esa_status gives the designation (Threatened, Endangered, Experimental Population, Non-Essential, Under Review, Resolved Taxon, Status Undefined, Not Listed), status_category the listed / not listed / petitioned bucket, and listing_date, ECOS's listing date as published (blank for three of the four experimental populations, present on a few Resolved Taxon rows). Use it to read population trends against recovery status, e.g. which states have listed salmon: state_abbrs is the comma-separated states each ESU/DPS spans (ECOS has no state column, so this is derived from the ESU name; null where ECOS gives no geography). A snapshot of current status, not a history of listing changes. Pink salmon and landlocked sockeye (kokanee) have no listed units. Join to geo.state_ref by splitting state_abbrs.

Column Type Null Description
common_name string no Common name in one canonical spelling per species - Chinook salmon, Coho salmon, Chum salmon, Sockeye salmon, Pink salmon, Steelhead (Rainbow Trout) or Atlantic salmon
scientific_name string no Scientific name as ECOS records it, e.g. Oncorhynchus (=Salmo) tshawytscha
species_group string no Normalised species - chinook, coho, chum, sockeye, pink, steelhead or atlantic; matches salmon_species in noaa_commercial_landings except steelhead
population_name string yes ESU or DPS name, e.g. Snake River spring/summer-run ESU, Puget Sound DPS; null where ECOS gives none
esa_status string no ECOS ESA listing status, stored exactly as - Threatened, Endangered, 'Experimental Population, Non-Essential' (with the comma), Under Review, Resolved Taxon, Status Undefined or Not Listed
status_category string yes Listing status category - Listed, Not Listed or Petitioned for Listing, Under Review; rows whose esa_status is Not Listed carry Not Listed even where ECOS leaves the category blank
cfr_citation string yes 50 CFR section that lists the unit (223.102 threatened, 224.101 endangered); null where the entity name carries none
listing_date string yes Listing date exactly as ECOS publishes it (yyyy-MM-dd); null where ECOS has none, which includes three of the four experimental populations, while the Middle Columbia River steelhead experimental population and two Atlantic salmon Resolved Taxon rows carry a date
lead_agency string no Federal agency responsible - NMFS, FWS or FWS and NMFS
state_abbrs string yes Comma-separated 2-letter states the ESU/DPS spans (e.g. 'ID,OR,WA' for Snake River units); derived from the ESU name; null where ECOS gives no geography

stock_smart_assessments · table

NOAA Fisheries Stock SMART assessment summaries for federally managed stocks: one row per stock assessment (about 3,500 assessments of ~430 stocks, assessment years 2005 to the latest), carrying the assessment's fishing mortality and biomass against the MSY reference points. f_fmsy_ratio above 1 means the assessed fishing rate exceeded Fmsy; b_bmsy_ratio below 1 means biomass was below Bmsy. A stock has several rows, one per assessment_year, so for current condition take each stock_id's latest assessment_year (or latest assessment_id); do not average across assessments. f_fmsy_ratio and b_bmsy_ratio are null where the assessment did not report an MSY proxy (many index-based and data-limited stocks), and f_unit / b_unit say what estimated_f and estimated_b are measured in (they are not comparable across stocks). is_fssi marks the Fish Stock Sustainability Index stocks. This is NOT the official Status of Stocks determination: NOAA publishes the overfished and overfishing flags only in PDF report tables, and they use per-stock thresholds (MSST, MFMT) that this table does not carry, so those flags are not here and must not be inferred from the ratios. Joins to noaa_commercial_landings on tsn (ITIS taxonomic serial number; null for some complexes) or scientific_name. Stocks span waters, not states: stock_area names the area (e.g. 'Gulf of Maine / Georges Bank') and jurisdiction the managing council or commission, so there is no state_abbr and a by-state rollup would double count; use region_name from the landings table to relate areas.

Column Type Null Description
stock_id long no Stock SMART stock identifier
stock_name string no Stock name with its area, e.g. 'Acadian redfish - Gulf of Maine / Georges Bank'
jurisdiction string yes Managing council or commission (e.g. NEFMC, PFMC, ASMFC, Atlantic HMS)
fmp string yes Fishery management plan the stock falls under
science_center string yes NOAA Fisheries Science Center that assesses the stock (may list several, '/'-separated)
regional_ecosystem string yes NOAA regional ecosystem of the stock (may list several, '/'-separated)
is_fssi boolean no true when the stock is part of the Fish Stock Sustainability Index
tsn long yes ITIS taxonomic serial number of the species; null for multi-species complexes. Joins to noaa_commercial_landings.tsn
scientific_name string yes Scientific name; null or a genus/group for complexes
common_name string yes Common name of the species or complex
stock_area string yes Geographic area of the stock (e.g. 'Gulf of Maine / Georges Bank', 'Bering Sea / Aleutian Islands')
assessment_id long no Stock SMART assessment identifier; unique per row
assessment_year integer no Year the assessment was completed
assessment_month integer yes Month the assessment was completed (1-12)
last_data_year integer yes Last year of data used in the assessment
update_type string yes Assessment type (e.g. Benchmark, Full Update, Operational); null where the source leaves it blank
review_result string yes Peer review outcome (e.g. Full acceptance)
assessment_model string yes Stock assessment model used (e.g. BAM, SS3, ASAP)
f_year integer yes Year the estimated fishing mortality refers to
estimated_f double yes Estimated fishing mortality in f_unit
f_unit string yes What estimated_f measures (e.g. Average F, Fully-selected F, Apical F, Exploitation rate)
fmsy double yes Fishing mortality reference point at maximum sustainable yield, in f_unit
f_fmsy_ratio double yes Estimated F divided by Fmsy; above 1 means the fishing rate exceeded the MSY level
b_year integer yes Year the estimated biomass refers to
estimated_b double yes Estimated stock biomass (or abundance) in b_unit
b_unit string yes What estimated_b measures and its unit (e.g. Metric Tons, Billion Eggs)
bmsy double yes Biomass reference point at maximum sustainable yield, in b_unit
b_bmsy_ratio double yes Estimated B divided by Bmsy; below 1 means biomass was under the MSY level
msy double yes Maximum sustainable yield estimate, in msy_unit
msy_unit string yes Unit of msy; null where the source leaves it blank

wdfw_salmonid_escapement · table

Washington Department of Fish and Wildlife Salmonid Population Indicators (SPI, the SCoRE / State of Our Salmon data): annual adult spawner and escapement estimates for wild and hatchery salmon, steelhead, bull trout and cutthroat stocks across Washington (Puget Sound, coast, Columbia basin), one row per stock x data series x year x data_type, 1938 to the latest completed return year. Species are Chinook, Coho, Chum, Pink, Sockeye, Steelhead, Bull Trout and Cutthroat. abundance_qty is a count of fish (or redds where data_type is 'Spawner Redds'); data_type says what is counted (Spawner Fish, Escapement Fish, Spawner Redds, or the SPI codes NOSAEJ natural-origin spawners, HOSAEJ hatchery-origin spawners, TSAEJ total spawners; IJ variants include jacks, EJ exclude them), production_type is Natural / Hatchery / Composite and calculation_type is Expanded / Unexpanded. A stock can appear under several data_types and series, so filter to one data_type (and production_type) before summing or comparing years; do not add across data_types. The state is always WA (state_abbr); this is the stock-level counterpart to dart_adult_counts (dam passage) and adfg_fish_counts (Alaska). Years with no estimate are absent, not zero (zero-fish estimates are kept). The source itself repeats 13 stock x series x year x data_type keys with slightly different values.

Column Type Null Description
stock_number bigint no WDFW SPI stock identifier (e.g. 3273 Discovery Bay Coho)
population_name string no Stock name including species, e.g. 'Skagit River Summer/Fall Chinook'
sub_population_name string yes Sub-population within the stock where the series is split; null when the stock is not subdivided
data_series_num bigint no Series number within the stock; a stock may carry several series (methods or eras)
species string no Chinook, Coho, Chum, Pink, Sockeye, Steelhead, Bull Trout or Cutthroat
year bigint no Return / spawning year of the estimate
abundance_qty double no Estimated count of fish (redds when data_type is 'Spawner Redds'); zero is a real estimate
data_type string no What is counted - Spawner Fish, Escapement Fish, Spawner Redds, or SPI codes such as NOSAEJ, HOSAEJ, TSAEJ, NOSAIJ, HOSAIJ, TSAIJ, NOBroodStockRemoved
production_type string no Natural, Hatchery, Composite, Unknown or NA - origin of the fish counted
calculation_type string no Expanded (extrapolated from index surveys to the whole stock), Unexpanded, Unknown or NA
escapement_methodology string no How the count was made, e.g. Trap Count, Total Natural Spawners, or the SPI data_type code
report_types string yes WDFW report the series feeds - SCoRE or 'SOS, SCoRE' (State of Our Salmon); null where WDFW lists no report (about 11% of rows)
last_update string yes Timestamp WDFW last updated the row (ISO 8601, no zone)
state_abbr string no Always WA; joins to geo.state_ref

noaa_feus_economic_impacts · table

NOAA Fisheries Economics of the United States (FEUS): the economic footprint of fishing by state, one row per geography x sector x impact measure (x imports basis for the commercial industry). industry is commercial (the seafood industry: commercial harvesters, seafood processors and dealers, seafood wholesalers and distributors, retail and importers) or recreational (marine recreational fishing expenditures: for-hire, private boat and shore trips, plus durable-goods expenditures). impact_type is jobs (unit jobs), or sales, income or value_added (unit thousand_usd, thousands of dollars), all modelled economic impacts including multiplier effects rather than direct landings revenue: use noaa_commercial_landings for pounds and dollars landed. Commercial rows come in two bases, imports_basis with_imports (counts the importer sector and the activity it supports) and without_imports; the two must not be added together, and a recreational row has no imports_basis. row_level separates the components from the rollups so nothing is double counted: for a state, the component rows (sectors, or for recreational the three trip modes) sum to the total row (sector 'Total Impacts' commercial, 'Total State Economic Impacts' recreational) within rounding. Recreational durable-goods spending is published only for the United States, where the national total ('Total United States Economic Impacts') equals the trip modes plus durable_expenditures; state durable_expenditures values are confidential (null) and a state total excludes them. Sum the components or read the total, not both. Geography is 23 coastal states plus the United States (geo_level national, state_abbr null); recreational reports East and West Florida separately and commercial reports Florida as a whole. noaa_region is the NOAA region of the state (null for the national rows and commercial Florida). impact_value is null where NOAA withholds a confidential value (about 22% of recreational rows, chiefly state durable expenditures). data_year is the year NOAA states for that geography (2021, except 2020 for commercial Florida); this is the latest-year snapshot published in the data tool, not a time series. Inland states and non-coastal territories are not covered. Join to geo.state_ref via state_abbr.

Column Type Null Description
industry string no commercial (seafood industry) or recreational (marine recreational fishing); never mix their jobs or dollars into one total, they overlap in the economy
geography string no Geography as NOAA names it - a state, East Florida or West Florida (recreational only), or United States
geo_level string no state or national
state_abbr string yes 2-letter state code; East and West Florida are both FL; null for the national rows; joins to geo.state_ref
noaa_region string yes NOAA region of the state (North Pacific, Pacific, Western Pacific, Gulf of America, South Atlantic, Mid-Atlantic, New England); null for national rows and commercial Florida, which spans two regions
data_year integer no Year of the estimates for this geography as stated in NOAA's table title (2021; 2020 for commercial Florida)
sector string no Commercial - Commercial Harvesters, Seafood Processors & Dealers, Seafood Wholesalers & Distributors, Retail, Importers, Total Impacts; recreational - For-Hire, Private Boat, Shore, Total Durable Expenditures, Total State Economic Impacts, Total United States Economic Impacts
row_level string no component (a sector or trip mode), total (the rollup of the components) or durable_expenditures (recreational equipment spending, published nationally only, part of the national total); add components or read the total, not both
impact_type string no jobs, sales, income or value_added
unit string no jobs for impact_type jobs, thousand_usd (thousands of dollars) for the other three
imports_basis string yes with_imports or without_imports for commercial rows (do not add the two); null for recreational rows
impact_value double yes Impact in jobs or thousands of dollars per unit; null where NOAA withholds a confidential value

rmis_releases · table

Hatchery and wild salmon, steelhead and trout release groups recorded in the Regional Mark Information System (RMIS, Regional Mark Processing Center / PSMFC, PSC format v5.0), one row per coded-wire-tag release group (tagged) or untagged release group, brood years 1950 onward, about 190,000 records from 17 reporting agencies (WDFW, CDFO, ADFG, ODFW, NWIFC, USFWS, CDFW, IDFG, NMFS and tribes) across Alaska, British Columbia, Washington, Idaho, Oregon and California. Gives how many fish were released (total_released, cwt_tagged_count, non-CWT mark counts), species, brood year and release dates, release stage, rearing type, broodstock origin, average weight and length, and the release / hatchery / stock location codes (join to rmis_locations for site name, basin, region and coordinates). Use it to set hatchery stocking against the adult returns in dart_adult_counts, adfg_fish_counts, cdfw_grandtab_escapement and wdfw_salmonid_escapement. Counts are as submitted by each agency: tagged groups carry both tagged and untagged-fish counts, so total_released is the group size, not the CWT count alone. Canadian (CDFO, state_abbr BC) releases are included. Mark counts are null when the agency did not report them. RMPC refreshes the files as agencies submit validated data.

Column Type Null Description
record_type string no tagged (coded-wire-tag release group, T record) or untagged (release group with marks only, N record)
reporting_agency string no Agency that submitted the record to RMIS (WDFW, CDFO, ADFG, ODFW, NWIFC, USFWS, CDFW, IDFG, NMFS, tribes)
release_agency string no Agency that made the release
tag_code_or_release_id string no CWT tag code for tagged records, or the agency release identifier for untagged records
species_code string no PSC species code 1-9
species string no Chinook, Coho, Steelhead, Sockeye, Chum, Pink, Masu, Cutthroat or Atlantic Salmon
run_code string yes PSC run code as submitted (numeric code, see PSC format v5.0 run table); null when the agency left it blank
brood_year integer yes Brood year of the release group
first_release_date date yes First release date
last_release_date date yes Last release date
release_year integer yes Calendar year of last_release_date
release_location_code string yes RMIS release location code; join to rmis_locations.location_code for site name, basin and region
hatchery_location_code string yes RMIS location code of the rearing hatchery; join to rmis_locations.location_code
stock_location_code string yes RMIS location code of the stock of origin
state_abbr string yes State/province of the release location from the first character of its code: AK, BC, WA, ID, OR, CA, or HS for high-seas locations (BC is Canada and HS is not a state; neither joins to geo.state_ref); null when no release location. Join to geo.state_ref for US states
release_stage_code string yes PSC release stage letter as submitted
release_stage string yes Zygote, Emergent fry, Fed fry, Fingerling, Advanced fingerling, Yearling, Pre-smolt, Smolt, Adult or Multiple
rearing_type string yes Hatchery, Wild, Mixed or Unknown rearing method
broodstock_origin_type string yes PSC broodstock origin letter (H hatchery, W wild, M mixed, N natural, C captive, O other, U unknown)
release_strategy string yes FR forced, VO volitional, MX mixed, NP net pen, BG barge; null when not reported
avg_weight_g double yes Average weight at release in grams
avg_length_mm double yes Average fork length at release in millimeters
cwt_1st_mark string yes Mark code applied to the coded-wire-tagged fish (for example an adipose clip)
cwt_tagged_count bigint yes Number of fish released with a coded-wire tag (both CWT mark groups); null when not reported
non_cwt_1st_mark string yes Mark code of the first group of released fish without a CWT
non_cwt_1st_mark_count bigint yes Fish released without a CWT in the first mark group
non_cwt_2nd_mark_count bigint yes Fish released without a CWT in the second mark group (commonly the unmarked fish)
total_released bigint yes Sum of the reported CWT and non-CWT counts for the release group; null when none is reported

rmis_locations · table

RMIS location lookup (RMPC/PSMFC, PSC format v5.0): about 38,800 rows of release, recovery, catch, hatchery and stock locations with name, latitude/longitude, PSC basin and PSC region, as defined by each reporting agency. Join rmis_releases.release_location_code, hatchery_location_code or stock_location_code to location_code (and filter location_type = 1 release, 4 hatchery or 5 stock to get one row per code).

Column Type Null Description
location_code string no RMIS location code; the first character gives the state (1 AK, 2 BC, 3 WA, 4 ID, 5 OR, 6 CA, 7 HS high seas)
location_type string no PSC location type: 1 release, 2 recovery, 3 catch, 4 hatchery or 5 stock location
reporting_agency string no Agency that defined the location
name string yes Location name, for example a stream, hatchery or fishery
state_abbr string yes State/province from the code prefix: AK, BC, WA, ID, OR, CA, or HS for high-seas locations
latitude double yes Latitude, decimal degrees
longitude double yes Longitude, decimal degrees
psc_basin string yes PSC basin code (for example SMIT, SNAK, LOCR)
psc_region string yes PSC region code (for example NOCA, UPCR, SEAK)
description string yes Free-text location description