A typing speed test measures how many words per minute (WPM) you type and how accurately. Pick 15, 30 or 60 seconds, choose plain text or Code Mode with real JavaScript and Python, then tap the passage and start typing. The clock starts on your first key.
The clock starts on your first key. Press Tab then Enter to restart with a new passage.
Everything runs in your browser. Nothing you type is uploaded, and your personal best is kept on this device only.
Your score shows at the end of the test with your personal best for that time and mode, kept on this device. Press Tab then Enter to go again with a new passage.
How to use it
- Pick a Time: 15 seconds for a sprint, 60 seconds for a steadier score.
- Pick a Mode: Text for sentences, or JavaScript or Python for a code typing test.
- Tap or click the passage and type it. Right characters turn black, wrong ones turn red, and the orange block is where you are.
- Mistakes do not stop you. Backspace to fix one, or carry on and lose it from your WPM.
- When the time is up (or you finish the passage) your result appears in place of the text.
On a phone, the test scrolls to the top of the screen when the keyboard opens and only shows a few lines at a time, so the text you are typing stays above the keyboard.
How WPM and accuracy are worked out
Typing speed uses a fixed "word" of five characters, spaces and punctuation included. A long word and a short word are not treated differently, which is what makes scores from different passages, and different typing tests, comparable.
| Number | What counts | Formula |
|---|---|---|
| WPM | Characters typed correctly and still in place | correct characters / 5 / minutes |
| Raw WPM | Every character typed, right or wrong | all characters / 5 / minutes |
| Accuracy | Keystrokes that were right when pressed | right keystrokes / all keystrokes x 100 |
Two details that trip people up:
- Fixed mistakes still cost accuracy. Type
thw, backspace once and typee, andtheis right on screen, but one of your four keystrokes was wrong, so that word scores 75%. Backspace itself is not a keystroke. - Mistakes left in cost WPM. They count towards raw WPM but not WPM, so a fast, sloppy run scores lower than it feels.
In Code Mode, the indentation filled in after Enter is not counted either way: nobody typed it.
What is a good typing speed?
| WPM | Roughly |
|---|---|
| Under 30 | Still looking at the keys. Accuracy first. |
| 30 to 50 | Around average for adults on a keyboard. |
| 50 to 70 | Comfortably fast; enough for any everyday job. |
| 70 to 90 | Fast. Typical of people who type all day. |
| Over 90 | Very fast. |
On a phone, halve those. For code, expect to be well under your prose speed: brackets, symbols and capitals in the middle of words all sit away from the home row. Compare a Python score with your last Python score, not with a text one.
How to type faster
- Accuracy before speed. Every mistake costs a backspace and a retype. Get to 95% at a steady pace, then push.
- Keep your eyes on the screen. Looking down to find a key breaks your
rhythm. Rest your index fingers on
FandJ(they have bumps) so you can find your way back without looking. - Short and often. A few 60 second tests a day does more than one long session a week.
- Practise the symbols you use. If you write
JavaScript,
{,},=>and`come up constantly; in Python, it is:,_and(. Code Mode drills exactly those.
Related tools
- Word Counter shows reading and speaking time for anything you write, using words per minute the same way.
- Case Converter switches names between camelCase and snake_case, the two you type most in JavaScript and Python.
- Python cheat sheet and JavaScript cheat sheet cover the syntax in the Code Mode snippets.
- Bubble sort visualisation steps through a loop like the ones you just typed, one comparison at a time.
Common questions
How is WPM calculated in this typing speed test?
WPM counts every five characters as one word, spaces and punctuation included, which is the standard every typing test uses. Your WPM is the characters you typed correctly, divided by five, divided by the minutes the test ran. A 30 second test where you type 150 characters correctly scores 150 / 5 / 0.5 = 60 WPM. Mistakes you leave in do not count towards it.
How is typing accuracy calculated?
Accuracy is the share of your keystrokes that were right when you pressed them. Backspace is not counted, but a mistake you go back and fix still counts as a mistake, so typing 99 characters right and 1 wrong gives 99% even if you corrected it. That is what makes accuracy a measure of how cleanly you type, not how carefully you proofread.
What is a good WPM?
Around 40 WPM is the figure usually quoted as average for adults typing on a keyboard, 60 to 70 WPM is comfortably fast, and above 90 WPM is very fast. Phones are slower: 30 to 40 WPM on a touch keyboard is good. Accuracy matters as much as speed, so aim for 95% or better before pushing the pace.
What is raw WPM?
Raw WPM counts every character you typed, right or wrong, and ignores mistakes. The gap between raw WPM and WPM shows how much speed your mistakes cost you. If your raw WPM is much higher, slowing down a little will usually raise your real score.
Is there a typing test for programmers?
Yes. Switch the mode to JavaScript or Python for a code typing test with real snippets: brackets, quotes, operators and indentation. Press Enter at the end of a line and the next line's indentation is filled in for you, as a code editor would, so the test measures typing the code rather than counting spaces. Code is usually typed slower than prose, so compare code scores with code scores.
How do I restart the typing test?
Press Tab then Enter, or tap Restart below the text. Either one gives you a new passage and resets the clock. Changing the time or the mode also starts a fresh test.
Are my results saved?
Only your personal best for each time and mode, and only in this browser on this device. There is no account and nothing you type is uploaded. The site records the settings you chose and your score (WPM and accuracy) so we know how the tool is used, but never the text you typed.