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.
A few edge cases worth understanding:
- Mid-word stop. If the timer ends partway through a word, the characters you typed correctly so far are counted; the not-yet-typed remainder is not. The trailing space credit only applies if the word was fully completed before the buzzer.
- Backspaces. Backspacing removes the character from the input but doesn't undo the fact that you typed an incorrect one in the first place — character accuracy is calculated against your full keystroke history, not just the final state. Word accuracy, by contrast, looks at the submitted word, so backspacing to fix a word before submitting it does help your word-accuracy stat.
- Excess characters. Typing more characters in a word than the expected word contains is counted as incorrect characters against you, not as bonus typing.
Where "5 characters = 1 word" comes from
The five-characters convention dates from typewriter benchmarking in the early twentieth century, when standardised speed contests needed a measure that didn't reward writers of short words over writers of long ones. Five was a deliberate compromise: long enough to capture something like a real English average, short enough that punctuation, spaces, and short function words pulled the average down to roughly that. The convention stuck because it became the basis on which records were compared.
Modern critiques are valid — average English word length is closer to 4.7 characters, German averages closer to 6, Chinese romanised input is something else entirely — but the convention has the same status as measuring rope in fathoms: legacy, but everyone uses it. TypeFast keeps the convention so a 70 WPM here is a 70 WPM somewhere else.
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. A 60 WPM English reading is structurally similar to a 60 WPM German reading, but the German one represents more raw keystrokes per minute, which CPM exposes.
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.
Both metrics exist because they measure different skills. Character accuracy is a measure of keystroke precision — your nervous system's aim. Word accuracy is a measure of self-correction — whether you noticed your mistakes in time to fix them. Strong typists tend to be high on both; less experienced typists are often high on character accuracy and low on word accuracy (small mistakes that go unnoticed) or the reverse (sloppy typing aggressively backspaced).
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.
A rough decision tree: pick word mode when you want to push raw speed and isolate finger mechanics; pick sentence mode when you want to test how well your typing holds up under the conditions of real prose. Most typists are noticeably slower in sentence mode. The gap between your word-mode and sentence-mode speeds is a useful diagnostic — if it's small, you're carrying your speed into real typing. If it's large, your word-mode score is flattering you.
How TypeFast's word lists are constructed
The built-in word lists are derived from publicly available frequency corpora for each language, filtered to remove obvious junk (URLs, non-words, partial tokens) and to keep words within a sensible length range so that the test doesn't hand you "supercalifragilistic" every third word. The selection is biased toward common-but-not-trivial words — the long-tail of rare words is dropped, and the very most common function words are de-emphasised to avoid making every test feel like "the of and it is".
Within those constraints, individual word selection is uniform-random rather than frequency-weighted. Frequency-weighted random feels more like real text but produces tests dominated by the same handful of short words; uniform-random gives a broader exercise of the word list at some cost to realism. Sentence mode is where real-text frequency distributions show up.
For programming mode, the corpus is built from the keywords, common identifiers, and punctuation patterns of the major programming languages. The licensing of the underlying corpora is detailed on the terms page; in short, everything is either public-domain or under a permissive open-source licence.
Comparing TypeFast results to other sites
Different typing tests measure different things and produce different numbers, so a 90 WPM on TypeFast and a 90 WPM on another site aren't automatically the same skill. Differences worth knowing about:
- Word lists differ. A site that drills only the 200 most common English words will produce inflated scores compared to a site with a longer tail. Switching from a top-200 site to TypeFast's broader list often drops a typist's headline number 5–10 WPM at the same actual skill.
- Accuracy treatment differs. Some sites force you to correct every error before moving on (which inflates accuracy at the cost of speed). TypeFast lets you proceed with errors and counts them, giving you a faster but more honest measurement.
- Rolling speed displays differ. Some sites show your best-N-second speed as the headline. TypeFast shows the full-test WPM. The two can differ by 10+ points in the same test.
- Word vs sentence default. Several popular sites default to word mode, where you'll likely score higher than in sentence mode. If you're comparing screenshots, compare like with like.
None of this is to say one site is right and the others are wrong. They're measuring different cuts of the same skill. The most useful benchmark is consistency on the same site over time; cross-site comparisons should come with an asterisk.
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
cafewhen the expected word iscafé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.
Limitations and known biases
A few things the test doesn't measure well, in the interest of honest framing:
- Touch-screen typing. The test runs on a software keyboard if you're on a phone, but touch-screen typing has different mechanics — autocorrect, swipe input, no tactile feedback — that the test doesn't account for. Numbers on a phone are not directly comparable to numbers on a physical keyboard.
- Autocorrect interactions. If your browser or OS is autocorrecting your input, the input field receives the corrected version, not your raw keystrokes. Autocorrect is disabled in the test input where browsers respect the setting, but on some platforms it can still trigger.
- Long-tail vocabulary. Because the word list is filtered toward common-but-not-trivial words, very rare words and proper nouns aren't represented. If your real-world typing is heavily technical (medical terms, code, specific jargon), the test under-represents that bottleneck.
- Stamina. Most tests are 60 seconds or less, which doesn't capture how fast you can sustain typing for ten minutes. Real-world typing is closer to a marathon than a sprint.
Want to put this into practice? See the typing tips page for techniques that improve real-world speed.