User experience of the performance of a computing device is improved through an operating system that processes inputs from a soft keyboard to provide information that can be used to accurately determine keys a user intended to strike while typing. For each detected tap, the operating system provides a probability that one or more keys were the intended target for the user. These probabilities may be computed from probability distribution functions that are dynamically determined based on user and/or system factors, such as typing rate and keyboard style or layout. Other components may use the probabilities to select a key corresponding to a detected keyboard tap as representing the intended user input. The selection may be made based on the probabilities alone or in combination with contextual factors that yield an overall probability that a detected tap arose from a user targeting a specific key.