How TypeFast.io works

This page describes exactly what the test does, and how each number on the results screen is computed. If you want to interpret your scores rather than just chase a higher WPM, the formulas below are the source of truth.

The test loop

When the page opens, a stream of words is generated from the active word list. The first word is centered under your cursor. As soon as you type your first character the timer starts. Each space (or Enter) you press submits the current word, marks it correct or incorrect, and advances to the next word. The stream auto-extends, so you never run out of words before the timer ends.

When time is up, the input is disabled, your final stats are shown, and you can click the reload icon (or press Tab + Enter) to start a fresh test with a freshly generated word stream.

Words per minute (WPM)

The standard typing-test convention defines one "word" as five characters, including spaces and punctuation. TypeFast.io uses that convention so your scores are comparable to other tests:

WPM = (correct characters / 5) / (elapsed seconds / 60)

Only correct characters count. A character is "correct" if it matches the expected character at its position in the expected word. A character that appeared in the right position but inside an otherwise-incorrect word is still counted as correct, so you get partial credit for typos you noticed too late. The trailing space that completes a fully-correct word counts as one extra correct character. The trailing space of an incorrect word does not.

Characters per minute (CPM)

CPM is the same idea without the divide-by-five step: CPM = correct characters / (elapsed seconds / 60). WPM is just CPM divided by 5. CPM is more useful when comparing performance across languages with different average word lengths.

Character accuracy and word accuracy

Character accuracy is correct characters / (correct + incorrect characters). This rewards careful typing per-keystroke. Mistyping then correcting still counts the wrong character against you. Backspaces don't erase history.

Word accuracy is fully correct words / total submitted words. This is harsher: one stray character makes the whole word incorrect. Backspacing to fix a word before submitting it does help word accuracy, because the final submitted word is what's checked.

Word mode vs sentence mode

Word mode (the default) generates random words from the active word list. Use it to drill raw speed without punctuation getting in the way.

Sentence mode pulls real sentences from a separate sentence list, with capitalisation and punctuation intact. Use it to practice realistic typing rhythm: capital letters, commas, periods, apostrophes, the way you'd actually write an email or report.

Languages and custom word lists

TypeFast.io ships with built-in word and sentence lists for several languages. You can also load your own text file (any plain .txt) via the preferences menu. Custom files are processed locally in your browser and cached for the session; the file never leaves your device. See the privacy page for the full picture.

Ignore accents and ignore casing

Two optional rules in preferences relax what counts as "correct":

  • Ignore accents. Typing cafe when the expected word is café is counted as correct. Useful when you're using a keyboard layout that doesn't easily produce diacritics.
  • Ignore casing. Character comparisons become case-insensitive. Useful for sentence mode if you don't want to chase shift keys for capitalisation while building base speed.

Both rules apply to the live colour feedback as you type and to the final accuracy calculation. If you enable them, your "ignore" settings appear next to your results so you don't accidentally compare a relaxed score to a strict one later.

Want to put this into practice? See the typing tips page for techniques that improve real-world speed.

Theme
dark
dark
light
Word mode
words
sentences
words
Language
English (US)
Custom
Arabic
Chinese
Catalan
Dutch
English (US)
English (UK)
English (200)
French
German
Hindi
Hungarian
Indonesian
Italian
Japanese
Korean
Portuguese
Romanian
Russian
Spanish
Uyghur
Programming
Text size
medium
Scrolling options
Reset preferences
Clears the preferences from the browser.