A grain-scale model of fluvial bed load transport is described, with particular emphasis on the equilibrium between the saltating grains and the near bed flow, and its role in determining transport rate. The model calculates, explicitly, the modification of the velocity profile by the moving grains, together with the consequential reduction in surface fluid shear stress. As the surface fluid shear stress is reduced by the moving grains, so the entrainment rate decreases and the model reaches a steady state. The results provide insight into two important questions at a macroscopic level. First, they show that, in the absence of large static roughness, the dynamic roughness caused by the moving grains may be a significant contributor to flow resistance. Secondly, the model indicates the manner in which transport may be limited by a combination of the transport capacity of the flow and the availability of sediment for entrainment. Only in the case of high sediment availability does the fluid shear stress acting at the surface approach the critical entrainment value, reproducing the behaviour suggested by Bagnold (1956) and Owen (1964). This suggests that prediction formulae based on this assumption only describe the bed load transport system under particular conditions.