How TypeFast.io Calculates WPM and Accuracy
Updated
TypeFast.io uses the standard typing-test convention: one "word" equals five characters, so WPM = (correct characters ÷ 5) ÷ elapsed minutes. Accuracy is the share of your typed characters that were correct. Both figures update in real time as you type, and the site's how-it-works page gives the full breakdown of WPM, CPM, and accuracy.
The WPM formula
The calculation has three inputs: the characters you typed correctly, the five-character word convention, and the time you spent.
- Count correct characters only. Mistakes don't add to your character count, so errors lower WPM twice — once by replacing a correct character and once by consuming time.
- Divide by 5. This converts characters into "words." A 250-character correct run counts as 50 words regardless of how many actual words appeared on screen.
- Divide by elapsed minutes. If you typed 300 correct characters in 2 minutes: 300 ÷ 5 = 60 words, 60 ÷ 2 = 30 WPM.
Because the divisor is fixed at five characters, WPM is comparable across languages and word lists even when average word length differs — a useful property given the site supports 18 languages plus a programming mode.
What accuracy measures
Accuracy reflects the proportion of your typed characters that were correct. It is the quality counterweight to WPM: a fast but error-strewn run produces a high raw speed and a low accuracy figure, and the two together describe your real performance. The site's tips page makes the same point from the training side — accuracy comes first, speed follows.
One practical detail: TypeFast.io lets you optionally ignore casing or diacritics in scoring. If you enable those options, a lowercase letter typed where an uppercase was expected, or an unaccented character where an accented one was expected, won't count against you. That matters for languages with case folding and accent handling, and it means two runs on the same text can produce different accuracy scores depending on your preferences.
CPM vs. WPM
CPM (characters per minute) and WPM measure the same output at different granularities:
| Metric | What it counts | Relationship |
|---|---|---|
| CPM | Correct characters per minute | The raw figure |
| WPM | Correct characters ÷ 5, per minute | CPM ÷ 5 |
So 300 CPM equals 60 WPM. CPM is more sensitive to small changes and is often the number to watch during early practice; WPM is the conventional headline figure most people compare. The how-it-works page covers both alongside accuracy.
Why the mode affects your numbers
Word mode generates random words from a dictionary, while sentence mode pulls real sentences from a curated source. Random words remove the rhythm and prediction of natural language, so scores in the two modes aren't directly interchangeable — a sentence-mode result benefits from familiar phrasing and punctuation patterns. Test duration is adjustable from a few seconds up to many minutes, and short tests are noisier: a single stumble weighs more in a 15-second run than in a two-minute one. For tracking progress, keep language, mode, duration, and scoring options constant between attempts.
Checking your own result
To verify a score by hand, run a test, note the duration and your correct-character count, then apply the formula above. If your computed WPM matches the displayed figure, the scoring options in your preferences are behaving as expected. If it doesn't, check whether "ignore casing" or "ignore diacritics" is enabled — those settings change which characters count as correct. Custom word lists loaded from a plain-text file run locally against your own content, which is handy for drilling vocabulary or code snippets, but the same five-character convention still applies, so a list of long technical terms will read differently than everyday prose.