Currently, the WPM (words per minute) score is calculated as such:
wpm = (correctly typed characters / minutes) / (number of words / number of chars)
The (number of words / number of chars) is an estimate of the average number of chars in a word.
This has a few issues:
Among a sentence with shorter words (A bit of bet of bat of beet) and a sentence with same number of words but with words being larger (Exceptional extraordinary excitable pepperoni paggliacci postmodern extravagant audacious), the WPM will be disproportionately higher in the former as the number of chars in a word is shorter even though a lot less characters have been typed.
This does not consider uncorrected errors. There is no penalty for uncorrected errors. There is no incentive to correct errors as it takes some time and disrupts the rhythm.
A change will have to be made in correctly typed characters since currently the counter will keep increasing if the same char is backspaced and typed repeatedly.
What and why?
Currently, the WPM (words per minute) score is calculated as such:
The
(number of words / number of chars)
is an estimate of the average number of chars in a word.This has a few issues:
A bit of bet of bat of beet
) and a sentence with same number of words but with words being larger (Exceptional extraordinary excitable pepperoni paggliacci postmodern extravagant audacious
), the WPM will be disproportionately higher in the former as the number of chars in a word is shorter even though a lot less characters have been typed.A big thank you to Darrien Glasser (author of terminal-typeracer) for explaining the issue thoroughly and providing the solution: https://www.reddit.com/r/rust/comments/tvamfz/comment/i3ewppb/
How?
A good way to calculate the WPM can be found here. To summarize, the final WPM will be:
A change will have to be made in
correctly typed characters
since currently the counter will keep increasing if the same char is backspaced and typed repeatedly.