This is nature, not a zoo.

The incubating eggs are subject to water temperatures. Too cold or too warm and you get less fry. The lake's productivity changes each year depending on the nutrient input, sun exposure, and so all. All these factors, and more, will affect survival. There could have been low levels of disease.

Escapement goals/targets are/were based on "average environmental conditions". Which never are. A freshet or freeze at the wrong time can wipe out a whole spawn, a warm summer with low flows can reduce the fry production, and so on.

In truth, consistent run-sizes are an artificial construction forced on the system to "maximize" the economic benefit. The few really long term data sets show over and over that runs cycle, they boom and bust. Yet, we try to ensure the same number every year.