How This Typing Test Works (and Why We Built It)
A typing test looks simple from the outside: some text appears, you type it, a number comes out. Underneath, there are real decisions about what counts as a “word,” when the clock starts, and how mistakes should affect your score — decisions that determine whether the number you see is a meaningful measurement or just an arbitrary readout. This page walks through exactly how our test calculates your results and why it's built the way it is.
The core formulas
Words per minute is conventionally defined using a fixed unit: five characters equal one “word,” regardless of what you actually typed. This test's final WPM is calculated as:
WPM = (correct characters ÷ 5) ÷ minutes elapsed
Only characters you typed correctly count toward this number — that's the deliberate choice that makes it a measure of usable output rather than raw finger speed. Separately, the test also tracks raw WPM, which uses the same formula but counts every character you typed, correct or not:
Raw WPM = (total typed characters ÷ 5) ÷ minutes elapsed
The gap between your raw and final WPM is a direct readout of how much your errors are costing you. If the two numbers are close, your accuracy is high and few characters are being discarded. If raw WPM is noticeably higher than final WPM, you're typing quickly but sloppily, and slowing down slightly would likely raise your final number rather than lower it — a phenomenon we cover in more detail in how to type faster.
Accuracy itself is calculated as a straightforward percentage: accuracy = (correct characters ÷ total typed characters) × 100, capped at 100% and returning 0 rather than an error if you haven't typed anything yet. All three numbers — WPM, raw WPM, and accuracy — are computed from the same underlying counts of correct, incorrect, and total characters typed, so they always tell a mutually consistent story about a single run.
Where the passage text comes from
The text you type is generated on the fly from a pool of roughly 220 common short English words — everyday words like “the,” “time,” “water,” and “system” rather than obscure vocabulary, chosen so the test measures typing mechanics rather than reading comprehension or vocabulary recognition. Words are picked at random from that pool, with one rule: the same word is never allowed to repeat back-to-back, so you don't get an unrepresentative run of “the the the” that would be trivially easy to blast through.
Rather than generating one long fixed passage up front, the test builds an initial passage sized generously for your chosen duration — enough words that a fast typist won't run out — and then extends it on the fly as you approach the end of what's currently rendered. Whenever the remaining unseen text drops below a small buffer, more randomly chosen words get appended in the background, so the passage effectively never ends no matter how fast you type or how long the test runs. You should never actually notice this happening; it's designed to be invisible.
Why the timer starts on your first keystroke, not on page load
The clock for a timed run doesn't start when the page loads or when you click into the typing box — it starts on your very first keystroke. This matters because the alternative genuinely inflates scores: if the timer started earlier, every second you spent reading the passage, getting comfortable, or simply reacting to the page appearing would be silently counted against your typing time, understating your real speed. Starting on the first keystroke means the full duration you selected is spent purely typing, which is the fairer and more comparable measurement.
Time itself is tracked continuously and the on-screen countdown and live WPM/accuracy readouts update several times per second, but that display refresh rate is purely cosmetic — your keystrokes are what get counted and timestamped, independent of how often the numbers on screen redraw. When the selected duration elapses, the test locks in your final counts at that moment.
Why backspace only works within the current word
You can correct mistakes with backspace, but only back to the start of the word you're currently on — you can't backspace into a previous, already-completed word. This is a deliberate constraint rather than a limitation of the code. Unlimited backspacing across word boundaries would let a typist continuously re-edit earlier text throughout the entire test, which turns a typing-speed measurement into something closer to a proofreading-and-editing exercise, and makes it much harder to compare one run to another since the “editing budget” each run allows becomes unpredictable. Constraining correction to the current word keeps the test measuring forward typing speed and in-the-moment accuracy, which is what words per minute is supposed to represent.
Tracking your results honestly
At the end of a run, the test records your final WPM, raw WPM, accuracy, and a breakdown of correct, incorrect, and characters you never reached (“missed”) before time ran out. Your best score is tracked separately for each duration rather than as one global personal best, because a 15-second burst and a 120-second sustained run measure meaningfully different things, as explained in what's a good WPM score — comparing them as if they were the same metric would be misleading. Your last ten results are also saved so you can see a trend over time, not just a single score in isolation.
All of this — your history, your per-duration bests — is stored only in your browser's local storage on your own device. Nothing about your typing, your results, or your history is ever sent to a server. There's no account system, because the test doesn't need to know who you are to tell you how fast you type.
Why we built it this way
We wanted a typing test with three properties. Honest measurement — formulas that follow the long-established words-per-minute convention rather than an invented scoring scheme, so your number here means the same thing it would mean anywhere else. Instant and free — no sign-up, no install, nothing between you and the passage. And private by default — everything runs locally in your browser, and your results live only on your device.
If you're curious where the words-per-minute convention this test follows actually came from, our history of typing tests traces it back to 19th-century stenography contests. Otherwise, the passage is waiting: take the test and see your number.