How it works
The clock starts with your first keystroke and stops when time runs out. Each character you type is compared with the text in the same position: correct ones turn green, mistakes turn red. Only correct characters count toward your speed, and accuracy is correct characters divided by everything you typed. Pasting is blocked.
WPM = (correct characters ÷ 5) ÷ minutes · CPM = correct characters ÷ minutes
WPM, CPM and why Chinese, Japanese and Korean use CPM
- WPM (words per minute) treats every 5 characters, spaces included, as one word, so results compare fairly across texts with long or short words.
- CPM (characters per minute) counts characters directly. Chinese, Japanese and Korean text has no spaces between words and packs a syllable or word into one character, so these pages report CPM.
- CPM here counts finished characters on screen (a Hangul syllable or a kanji counts as one), not keystrokes, so it is lower than scores based on keystrokes.
Tips
- Aim for accuracy first; speed follows. Errors cost more time than they save.
- Keep your eyes on the text, not the keyboard, and rest your fingers on the home row.
- Do several 60-second runs; the longer test gives the most stable number.
Standards and sources
- UI Events — keyboard and composition events · W3C
- Unicode Standard Annex #29 — text segmentation · Unicode
Last reviewed October 15, 2026
Frequently asked questions
How is WPM calculated?
WPM is the number of correctly typed characters divided by 5, divided by the minutes elapsed. For example, 1,000 correct characters in 5 minutes is 40 WPM.
What is the difference between WPM and raw WPM?
WPM counts only correct characters. Raw WPM counts everything you typed, mistakes included, so the gap between the two shows how much accuracy is costing you.
Why do mistakes not slow the timer?
The timer always runs for the full length you chose. Mistakes lower your score because wrong characters are not counted and they reduce accuracy.
Is what I type saved?
No. Everything runs in your browser and nothing you type is sent or stored.