How the Bonneville Fish Count Actually Works on the Ground

The fish counting station at Bonneville Dam sits right on the spillway on the Oregon side. Fish approaching the dam enter the fish ladder system, which funnels them past a series of observation points. There is a counting window where a person sits and watches the fish go by. Above that, there are cameras and sonar arrays running 24 hours a day. The whole setup is old infrastructure, updated piece by piece over decades. It is not glamorous. If you are trying to pull data out of the Bonneville system, your first stop is the Pacific Fishery Management Council data portal or the Army Corps of Engineers fish counter database. They publish daily run estimates by species. The raw sonar data lives with the Corps and is harder to access. You will need to file a data request if you want the acoustic returns themselves rather than just the processed counts. The manual takes about two weeks to come back, and usually comes with caveats attached. The actual counting process relies on a few different sensor types working in parallel. Sonar units, specifically split-beam transducers, sit in the fish passage channel and emit acoustic pulses. When a fish passes through the beam, it reflects the sound back. The system measures the target strength and cross-sectional area to estimate fish size. Cameras with infrared illuminators run overhead for species confirmation. A human counter sits in the observation window during peak runs to visually verify what the machines are recording.

Here is something most people do not realize. The sonar alone will consistently overcount at Bonneville because it cannot reliably distinguish a salmon from a large piece of debris or a air bubble train rising off the turbine intake. In 2019, during a particularly low-flow year, the sonar estimates were roughly 18 percent higher than the manual counts for king salmon. That gap matters when you are allocating harvest quotas or deciding whether to open or close a fishery downstream. The workaround I used back then was to pull the camera video timestamps and manually cross-reference them against the sonar pulse clusters. It took longer but it was the only way to get a clean number for our report.

The Technical Breakdown of How Data Moves Through the System

Data flows from the sensors into a local acquisition computer, then gets pushed to the Corps server in Portland. From there it gets aggregated by species group and time window. The standard output is a daily report with counts broken down by species category: chum, coho, pink, chinook, steelhead. The counts are not perfect. They are best estimates with confidence intervals attached in the detailed documentation. One detail beginners miss is the effect of water temperature on sonar accuracy. Cold water denser and more viscous changes how sound waves propagate. During winter months when the Columbia is near freezing, the sonar tends to underestimate smaller fish because their target strength drops below the detection threshold. The cameras pick up some of what the sonar misses, but visibility goes down too because winter runoff stirs up sediment. You end up with a period where the confidence intervals on the daily counts are widest. If you are doing any modeling with Bonneville data, you need to weight winter months differently than summer months. Another thing nobody mentions enough is the migration timing shift. The historical run timing for Columbia River salmon was tied closely to water temperature and flow conditions. Over the last ten years those cues have shifted. The spring chinook run at Bonneville has been arriving earlier and in a tighter pulse. The counting equipment and the classification algorithms were built around the old timing patterns. When the run compresses into a two-week window instead of stretching across six weeks, the counting window gets overwhelmed. You get backlog in the manual verification and the automated systems start misclassifying because the fish are moving faster through the ladder than the calibration assumed. I learned this the hard way in 2022 when our forecast was off by nearly 30 percent for spring chinook because the model had not been retrained on the new timing distribution.

Get the Full Details

Adult anadromous fish counts at the Bonneville Dam fish ladder (rkm ...
Adult anadromous fish counts at the Bonneville Dam fish ladder (rkm ...

What the Counts Actually Power

The Bonneville fish count data feeds into several decision-making systems. The Columbia River Intertribal Fish Commission uses it for treaty rights analysis and harvest allocation. The National Marine Fisheries Service uses it for listing decisions under the Endangered Species Act. State agencies on both sides of the river use the daily returns to adjust commercial and recreational fishing closures in real time. The data also goes into population models that project future run sizes based on current escapement numbers. The data has real limitations. The fish ladder only counts fish that make it to the upper reaches of the dam. Fish that are killed at the turbines or turn back before entering the ladder are not in the count. The bycatch at the dam is estimated separately using sonar and thermal imaging downstream of the powerhouse, but that estimate has its own large uncertainty range. If you are using Bonneville counts as a proxy for total adult survival through the dam, you are already working with an incomplete picture. For anyone doing their own analysis of the data, the most useful thing is to pair the Bonneville counts with the lower Granite Falls and Rock Island fish ladder data. Those dams downstream give you a sense of what fraction of the run is actually making it past Bonneville intact. The difference between the Bonneville upper count and the downstream counts is your mortality estimate, rough as it may be. It is not a perfect measure but it is better than assuming every fish that enters the ladder survives the passage.

Practical Tips for Working With the Data

If you are pulling historical data, start with the annual report rather than trying to scrape the daily tables. The annual report has the validated numbers with all the error adjustments already applied. The daily tables get revised frequently once the manual counts catch up and the algorithms get retuned. If you cite a daily number from June in a report written in August, it may already be wrong by the time someone fact-checks it. Also pay attention to the species categorization notes in each dataset. Chinook salmon at Bonneville are classified into spring, summer, and fall runs, but the genetic sub-stock identification is not always reflected in the public data. A lot of the spring chinook counted at Bonneville are actually hatchery origin fish from multiple stocks mixed together. If you need stock-specific information for conservation planning, the standard count data will not give you that. You have to go through the genetic monitoring program at the Northwest Fisheries Science Center and request the tissue sample data separately. It is publicly available but it is in a different format and requires a bit of effort to merge with the count records. The biggest frustration I have seen people run into is trying to use the sonar-derived size estimates for biomass calculations without accounting for the seasonal variation in sonar performance. Sonar underestimates the size of fish in murky water and overestimates them in crystal clear conditions. The difference can be 15 to 20 percent in either direction. If you are calculating total biomass from Bonneville sonar size data, multiply by a correction factor based on turbidity readings for that same day. The turbidity data is available from the USGS gage network along the Columbia. It takes five minutes to pull and it makes your biomass estimate meaningfully more accurate.

The system works. It has been running in some form since the 1930s. It is not elegant and it has known blind spots. But the data coming out of Bonneville is still the single most important source of information on Columbia River salmon runs. Every conservation decision, every harvest allocation, every recovery plan in the Pacific Northwest traces back to what that counting station records. The challenge is knowing what the numbers actually mean and what they are missing.

Adult anadromous fish counts at the Bonneville Dam fish ladder (rkm ...
Adult anadromous fish counts at the Bonneville Dam fish ladder (rkm ...