Accurate estimates of salmonids passing Lower Granite Dam on the Snake River, by species and origin, are a critical input to assessing the status and trends of various populations as well as successful management of fisheries in the Snake River basin. Here, we describe a state‐space model that estimates such escapement past a dam by using window counts, PIT tag observations, and data from an adult fish trap, accounting for issues such as nighttime passage, fallback and reascension, potential observation error at the window, and uncertainty in the adult trap rate. We tested the approach using a simulation framework that mimicked several levels of observation error, differences between nighttime passage and reascension rates, and the possibility of the adult trap being closed for some period of time. Our results demonstrate that the model produced unbiased estimates across all tested scenarios. We also applied this model to empirical data from Lower Granite Dam to produce estimates of wild, clipped hatchery, and unclipped hatchery spring/summer‐run Chinook Salmon Oncorhynchus tshawytscha and steelhead O. mykiss from spawn years 2010–2019.