🐟 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_ |
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_ |
string | no | NOAA state name in upper case, including FLORIDA-EAST/FLORIDA-WEST and PROCESS AT SEA |
state_ |
string | yes | 2-letter state/territory abbreviation; null for PROCESS AT SEA |
is_ |
boolean | no | false for the PROCESS AT SEA pseudo-state, true otherwise; filter on it for by-state rollups |
region_ |
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_ |
string | yes | NOAA/AFS common name in upper case (e.g. 'SALMON, SOCKEYE'); trailing ** marks a grouped category |
scientific_ |
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_ |
double | yes | Estimated number of fish caught (MRIP recreational rows only) |
is_ |
boolean | no | true when species_name starts with 'SALMON, ' |
salmon_ |
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_ |
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_ |
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_ |
string | yes | MRIP sub-region code (4 North Atlantic, 5 Mid-Atlantic, 6 South Atlantic, 7 Gulf of America, 8 Hawaiian Islands) |
sub_ |
string | yes | MRIP sub-region name |
state_ |
string | no | 2-digit state FIPS code; join to geo.state_ref |
state_ |
string | no | 2-letter state abbreviation; join to geo.state_ref |
state_ |
string | yes | State name in upper case as published by MRIP |
mode_ |
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_ |
string | yes | Fishing mode name (SHORE, PARTY BOAT, CHARTER BOAT, PRIVATE/RENTAL BOAT) |
area_ |
string | yes | Area fished code (1 ocean <= 3 mi, 2 ocean > 3 mi, 3 ocean <= 10 mi, 4 ocean > 10 mi, 5 inland) |
area_ |
string | yes | Area fished (OCEAN (<= 3 MI), OCEAN (> 3 MI), OCEAN (<= 10 MI), OCEAN (> 10 MI), INLAND) |
alt_ |
integer | yes | MRIP alternate-estimate flag (0 for standard estimates) |
species_ |
string | no | MRIP 10-digit species code (1000000000 = unidentified fish) |
species_ |
string | no | MRIP common name in upper case (e.g. STRIPED BASS, RED SNAPPER); grouped categories end in GENUS or SPECIES |
claimed_ |
double | yes | Type A claim: fish harvested and seen/identified by an interviewer (MRIP ESTCLAIM); null when the estimate is not available |
claimed_ |
double | yes | Standard error of claimed_harvest_fish, sqrt of the published variance |
claimed_ |
double | yes | Percent standard error of claimed_harvest_fish (100 x SE / estimate); above 50 the estimate is unreliable |
reported_ |
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_ |
double | yes | Standard error of reported_harvest_fish, sqrt of the published variance |
reported_ |
double | yes | Percent standard error of reported_harvest_fish (100 x SE / estimate); above 50 the estimate is unreliable |
landings_ |
double | yes | Total harvested fish, A + B1 (MRIP LANDING); the recreational harvest number; null when the estimate is not available |
landings_ |
double | yes | Standard error of landings_fish, sqrt of the published variance |
landings_ |
double | yes | Percent standard error of landings_fish (100 x SE / estimate); above 50 the estimate is unreliable |
released_ |
double | yes | Type B2: fish caught and released alive (MRIP ESTREL); null when the estimate is not available |
released_ |
double | yes | Standard error of released_fish, sqrt of the published variance |
released_ |
double | yes | Percent standard error of released_fish (100 x SE / estimate); above 50 the estimate is unreliable |
total_ |
double | yes | Total catch: harvested plus released fish (MRIP TOT_CAT); null when the estimate is not available |
total_ |
double | yes | Standard error of total_catch_fish, sqrt of the published variance |
total_ |
double | yes | Percent standard error of total_catch_fish (100 x SE / estimate); above 50 the estimate is unreliable |
landings_ |
double | yes | Harvest weight in pounds, A + B1 (MRIP LBS_AB1); null when the estimate is not available |
landings_ |
double | yes | Standard error of landings_pounds, sqrt of the published variance |
landings_ |
double | yes | Percent standard error of landings_pounds (100 x SE / estimate); above 50 the estimate is unreliable |
landings_ |
double | yes | Harvest weight in kilograms, A + B1 (MRIP WGT_AB1); null when the estimate is not available |
landings_ |
double | yes | Standard error of landings_kg, sqrt of the published variance |
landings_ |
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_ |
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_ |
string | yes | MRIP sub-region code (4 North Atlantic, 5 Mid-Atlantic, 6 South Atlantic, 7 Gulf of America, 8 Hawaiian Islands) |
sub_ |
string | yes | MRIP sub-region name |
state_ |
string | no | 2-digit state FIPS code; join to geo.state_ref |
state_ |
string | no | 2-letter state abbreviation; join to geo.state_ref |
state_ |
string | yes | State name in upper case as published by MRIP |
mode_ |
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_ |
string | yes | Fishing mode name (SHORE, PARTY BOAT, CHARTER BOAT, PRIVATE/RENTAL BOAT) |
area_ |
string | yes | Area fished code (1 ocean <= 3 mi, 2 ocean > 3 mi, 3 ocean <= 10 mi, 4 ocean > 10 mi, 5 inland) |
area_ |
string | yes | Area fished (OCEAN (<= 3 MI), OCEAN (> 3 MI), OCEAN (<= 10 MI), OCEAN (> 10 MI), INLAND) |
angler_ |
double | yes | Estimated angler trips (MRIP ESTRIPS); null when the estimate is not available |
angler_ |
double | yes | Standard error of angler_trips, sqrt of the published variance |
angler_ |
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_ |
string | no | DART project code (BON, TDA, JDA, MCN, IHR, LMN, LGS, LWG, PRD, WAN, RIS, RRH, WEL, WFF, PRO, ROZ, TUM) |
project_ |
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_ |
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_ |
boolean | no | true for Columbia dams on the Oregon/Washington border |
count_ |
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_ |
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_ |
bigint | no | ADF&G countLocationID of the weir/tower/sonar site |
location_ |
string | no | Count site name as ADF&G publishes it, e.g. 'Kenai River (Chinook)', 'Situk River' |
adfg_ |
bigint | no | ADF&G speciesID (410 Chinook, 411/412 Chinook early/late, 420 Sockeye, 421/422 Sockeye early/late, 430 Coho, 540 Steelhead) |
species_ |
string | no | Species label, e.g. Chinook, Sockeye - Early Run, Coho, Steelhead |
state_ |
string | no | Always AK; join to geo.state_ref |
count_ |
integer | no | Calendar year of the counts |
total_ |
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_ |
integer | no | Number of days with a reported count that year |
peak_ |
bigint | no | Largest single-day count that year |
first_ |
string | no | First day with a reported count (yyyy-MM-dd) |
last_ |
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_ |
string | no | Chinook run - Winter, Spring, Fall or Late-Fall |
origin_ |
string | no | In-River (natural spawning areas) or Hatchery |
state_ |
string | no | Always CA; join to geo.state_ref |
count_ |
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_ |
boolean | no | true when CDFW marks the year's estimate as preliminary (not final) |
rolling_ |
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_ |
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_ |
string | no | Scientific name as ECOS records it, e.g. Oncorhynchus (=Salmo) tshawytscha |
species_ |
string | no | Normalised species - chinook, coho, chum, sockeye, pink, steelhead or atlantic; matches salmon_species in noaa_commercial_landings except steelhead |
population_ |
string | yes | ESU or DPS name, e.g. Snake River spring/summer-run ESU, Puget Sound DPS; null where ECOS gives none |
esa_ |
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_ |
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_ |
string | yes | 50 CFR section that lists the unit (223.102 threatened, 224.101 endangered); null where the entity name carries none |
listing_ |
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_ |
string | no | Federal agency responsible - NMFS, FWS or FWS and NMFS |
state_ |
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_ |
long | no | Stock SMART stock identifier |
stock_ |
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_ |
string | yes | NOAA Fisheries Science Center that assesses the stock (may list several, '/'-separated) |
regional_ |
string | yes | NOAA regional ecosystem of the stock (may list several, '/'-separated) |
is_ |
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_ |
string | yes | Scientific name; null or a genus/group for complexes |
common_ |
string | yes | Common name of the species or complex |
stock_ |
string | yes | Geographic area of the stock (e.g. 'Gulf of Maine / Georges Bank', 'Bering Sea / Aleutian Islands') |
assessment_ |
long | no | Stock SMART assessment identifier; unique per row |
assessment_ |
integer | no | Year the assessment was completed |
assessment_ |
integer | yes | Month the assessment was completed (1-12) |
last_ |
integer | yes | Last year of data used in the assessment |
update_ |
string | yes | Assessment type (e.g. Benchmark, Full Update, Operational); null where the source leaves it blank |
review_ |
string | yes | Peer review outcome (e.g. Full acceptance) |
assessment_ |
string | yes | Stock assessment model used (e.g. BAM, SS3, ASAP) |
f_ |
integer | yes | Year the estimated fishing mortality refers to |
estimated_ |
double | yes | Estimated fishing mortality in f_unit |
f_ |
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_ |
double | yes | Estimated F divided by Fmsy; above 1 means the fishing rate exceeded the MSY level |
b_ |
integer | yes | Year the estimated biomass refers to |
estimated_ |
double | yes | Estimated stock biomass (or abundance) in b_unit |
b_ |
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_ |
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_ |
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_ |
bigint | no | WDFW SPI stock identifier (e.g. 3273 Discovery Bay Coho) |
population_ |
string | no | Stock name including species, e.g. 'Skagit River Summer/Fall Chinook' |
sub_ |
string | yes | Sub-population within the stock where the series is split; null when the stock is not subdivided |
data_ |
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_ |
double | no | Estimated count of fish (redds when data_type is 'Spawner Redds'); zero is a real estimate |
data_ |
string | no | What is counted - Spawner Fish, Escapement Fish, Spawner Redds, or SPI codes such as NOSAEJ, HOSAEJ, TSAEJ, NOSAIJ, HOSAIJ, TSAIJ, NOBroodStockRemoved |
production_ |
string | no | Natural, Hatchery, Composite, Unknown or NA - origin of the fish counted |
calculation_ |
string | no | Expanded (extrapolated from index surveys to the whole stock), Unexpanded, Unknown or NA |
escapement_ |
string | no | How the count was made, e.g. Trap Count, Total Natural Spawners, or the SPI data_type code |
report_ |
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_ |
string | yes | Timestamp WDFW last updated the row (ISO 8601, no zone) |
state_ |
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_ |
string | no | state or national |
state_ |
string | yes | 2-letter state code; East and West Florida are both FL; null for the national rows; joins to geo.state_ref |
noaa_ |
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_ |
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_ |
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_ |
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_ |
string | yes | with_imports or without_imports for commercial rows (do not add the two); null for recreational rows |
impact_ |
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_ |
string | no | tagged (coded-wire-tag release group, T record) or untagged (release group with marks only, N record) |
reporting_ |
string | no | Agency that submitted the record to RMIS (WDFW, CDFO, ADFG, ODFW, NWIFC, USFWS, CDFW, IDFG, NMFS, tribes) |
release_ |
string | no | Agency that made the release |
tag_ |
string | no | CWT tag code for tagged records, or the agency release identifier for untagged records |
species_ |
string | no | PSC species code 1-9 |
species |
string | no | Chinook, Coho, Steelhead, Sockeye, Chum, Pink, Masu, Cutthroat or Atlantic Salmon |
run_ |
string | yes | PSC run code as submitted (numeric code, see PSC format v5.0 run table); null when the agency left it blank |
brood_ |
integer | yes | Brood year of the release group |
first_ |
date | yes | First release date |
last_ |
date | yes | Last release date |
release_ |
integer | yes | Calendar year of last_release_date |
release_ |
string | yes | RMIS release location code; join to rmis_locations.location_code for site name, basin and region |
hatchery_ |
string | yes | RMIS location code of the rearing hatchery; join to rmis_locations.location_code |
stock_ |
string | yes | RMIS location code of the stock of origin |
state_ |
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_ |
string | yes | PSC release stage letter as submitted |
release_ |
string | yes | Zygote, Emergent fry, Fed fry, Fingerling, Advanced fingerling, Yearling, Pre-smolt, Smolt, Adult or Multiple |
rearing_ |
string | yes | Hatchery, Wild, Mixed or Unknown rearing method |
broodstock_ |
string | yes | PSC broodstock origin letter (H hatchery, W wild, M mixed, N natural, C captive, O other, U unknown) |
release_ |
string | yes | FR forced, VO volitional, MX mixed, NP net pen, BG barge; null when not reported |
avg_ |
double | yes | Average weight at release in grams |
avg_ |
double | yes | Average fork length at release in millimeters |
cwt_ |
string | yes | Mark code applied to the coded-wire-tagged fish (for example an adipose clip) |
cwt_ |
bigint | yes | Number of fish released with a coded-wire tag (both CWT mark groups); null when not reported |
non_ |
string | yes | Mark code of the first group of released fish without a CWT |
non_ |
bigint | yes | Fish released without a CWT in the first mark group |
non_ |
bigint | yes | Fish released without a CWT in the second mark group (commonly the unmarked fish) |
total_ |
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_ |
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_ |
string | no | PSC location type: 1 release, 2 recovery, 3 catch, 4 hatchery or 5 stock location |
reporting_ |
string | no | Agency that defined the location |
name |
string | yes | Location name, for example a stream, hatchery or fishery |
state_ |
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_ |
string | yes | PSC basin code (for example SMIT, SNAK, LOCR) |
psc_ |
string | yes | PSC region code (for example NOCA, UPCR, SEAK) |
description |
string | yes | Free-text location description |