How we calculate your score
Every WPM, CPM, KPM, accuracy, and consistency number across every TypingFix tool comes from a real, specific formula — not a rough estimate. Here's exactly how each one works, in plain language.
Words per minute — Net vs Gross
Most typing tests, including this one, use the same starting convention: 5 keystrokes count as one "word," regardless of the actual word's length. That's what makes scores comparable across a test full of short words and one full of long words.
Gross WPM
Gross WPM counts every character you typed, including mistakes you later went back and corrected. It answers "how much did your fingers move," not "how much of it was actually right."
In plain terms: take every character you typed, count each group of five as one word, and divide that by the number of minutes the test ran.
Net WPM
Net WPM counts every character you committed — each word you submit with a space, or that your IME finalizes — then subtracts one word for every word you got wrong. The penalty is per word, not per keystroke: a word you submit with four wrong letters costs you the same one word as a word with one wrong letter. This is the number displayed on your result and recorded to your history.
In plain terms: start from your gross speed, then take away one word for each word you submitted incorrectly, spread over the same minutes. If the mistakes ever outweigh the typing, the score stops at zero rather than going negative.
Net WPM is always equal to or lower than Gross WPM — the gap between the two is a direct read on how much your mistakes are costing you. A typist who corrects constantly will see a much wider gap than one who types cleanly the first time.
Worked through on a real run, with the gap between the two numbers explained word by word: Net WPM vs Gross WPM. And for what the top of that scale actually looks like across 3,483 recorded tests: is 500 WPM possible?
CPM and KPM, explained
CPM — Characters Per Minute
In non-space scripts like Chinese, Japanese, and Thai, "word" isn't a stable typing unit the way it is in English — a single character can carry as much meaning as an entire English word, so we measure characters typed correctly per minute directly instead of forcing an artificial word count. Arabic is a different case: it is genuinely space-separated, but TypingFix still uses CPM as its primary metric there — a deliberate choice for that script's input and scoring model, not because Arabic words are unstable units.
Which unit each language is scored on, and why a word is the wrong unit for Chinese, Japanese and Korean: WPM, CPM and KPM by language.
KPM — Keystrokes Per Minute
Korean is a special case even among character-based scripts: a single Hangul syllable block on screen is actually built from 2 or 3 separate keystrokes (jamo) that combine together as you type. Counting the finished character alone would understate how much typing really happened — so Korean is measured in real keystrokes instead, as KPM.
Which metric is "primary" for a given language is set per-language in our catalog, not chosen at random: alphabetic, space-separated languages are generally WPM-primary, non-space character-based scripts default to CPM, Korean defaults to KPM, and Arabic is a deliberate CPM exception despite being space-separated. Every language also shows a secondary metric alongside its primary one.
CPM and KPM also score differently from Net WPM, not just in what they count. Net WPM counts everything you attempt toward your total, then subtracts a penalty for the mismatches. CPM and KPM are stricter: a text unit only adds to the count once you've typed it completely and exactly right — one wrong character in it and that unit contributes nothing to your CPM/KPM, even though it still counts toward your attempted total and error tally for accuracy. That's a difference between metrics, not between scripts — it applies wherever CPM or KPM is the metric in use, including as the secondary figure on space-separated languages.
How accuracy is calculated
Accuracy is the share of the characters you attempted that came out right — everything you attempted, minus the ones you got wrong, measured against everything you attempted. "Attempted" means every character in a word you submit, right or wrong — not each individual keystroke along the way, so a mistake you catch and fix before submitting the word was never counted against you in the first place.
Corrections are the part most people get wrong here — a backspace is never scored as an error, but it still costs you: how backspaces affect your WPM.
Count the characters you got right, measure them against every character you attempted, and read the result as a percentage.
Type 200 characters and get 6 of them wrong, and 194 landed correctly — that reads as 97%. Because Net WPM also subtracts an error penalty, a low accuracy score quietly caps your speed score too — the two are connected, not separate.
We measure how far your speed typically strays from your own average, and score you on how small that spread is. No wandering at all scores 100; the wider your pace swings, the lower it falls, and it never drops below zero.
The series we measure is your speed across each successive group of five typed characters — one standard word-unit, the same five characters WPM itself is defined on. "Mean" is the plain average of those speeds; "standard deviation" is how far, on average, they wander from it. A perfectly steady typist has a standard deviation near 0 and scores near 100; one who sprints, then stalls, then sprints again has a wide spread and scores lower — even with an identical final average speed. Time spent paused is excluded; time spent backspacing is not, because a correction really does interrupt your rhythm.
The five-character window is fixed on purpose, because every other way of slicing the test adds a bias that has nothing to do with rhythm. Measured per second, a bucket holds roughly two characters at 25 WPM and nine at 110 WPM, so counting noise alone scores an identically steady typist 87% at 25 WPM but 96% at 110. Measured per word, the window is the word's own length, so the same small hesitation swings "a" or "if" far more than it swings "people". Five typed characters always take five keystrokes, so nothing but your actual pace moves the number. Fewer than fifteen characters is too little to measure, and shows as "—".
Why five characters and not one second, and what a low score is actually telling you about where your speed leaks: how typing consistency is calculated.
How consistency is calculated
Two typists can post the exact same WPM and accuracy, yet type very differently — one holds a smooth, even pace, the other bursts and pauses. Consistency is what tells those two runs apart: a useful indicator of how steadily you maintained your pace during the test.
How stalls are detected
Consistency tells you that your pace wandered. It cannot tell you where, or why. The rhythm view is the same measurement at a resolution you can act on: every gap between two keystrokes, and the handful that were far longer than your own normal.
You will find it in the advanced result of every typing test, under Rhythm & replay.
A stall is a gap more than 2.5× your own typical gap for that kind of move. Nothing here is a fixed number of milliseconds.
The baseline is the median gap, not the average. The average is dragged upward by the very pauses we are looking for, so a run full of stalls would quietly raise its own bar until they stopped looking unusual. The median does not move like that.
There are two baselines, not one. Space is not recorded as a keystroke, so the gap from the last letter of one word to the first letter of the next quietly contains the space press — making word gaps structurally larger than gaps inside a word. Measured against a single median, almost every word boundary would be flagged as a hesitation that never happened. Each kind is judged against its own kind.
Anything over three seconds is not a hesitation, it is a break, and the test's own pause system already owns it — the clock freezes there. Those are drawn separately and never counted as stalls. Backspacing is excluded from the timing too: correcting is a different behaviour from hesitating.
What the three kinds of stall mean, and how to read the strip itself: the rhythm & replay guide.
Terminology, in one place
One canonical definition per term — the same meanings used everywhere on TypingFix. For the full formulas, see the sections above.
- WPM
- Words per minute, using a fixed 5-characters-per-word convention.
- Net WPM
- Committed typing converted at 5 characters per word, minus one word for every word you submitted incorrectly. This is the score TypingFix displays and records.
- Gross WPM
- Everything you typed — including characters you later corrected — before the error penalty. Always equal to or higher than Net WPM.
- CPM
- Characters per minute. The primary metric for languages such as Thai, Arabic, Chinese and Japanese.
- KPM
- Keystrokes per minute. The primary metric for Korean, where each Hangul syllable is composed from several keystrokes.
- CWPM
- Code words per minute — the Code Typing Test's speed measure, where symbols, punctuation and whitespace all count.
- Accuracy
- The percentage of your committed text that was entered correctly.
- Consistency
- How steadily your typing pace held throughout the test, measured across each successive five typed characters — a steadier pace scores higher — measured separately from accuracy.
Typing Test
Every Typing Test result uses the same Net WPM (or CPM/KPM) and accuracy formulas explained above — the other tools each apply their own scoring, covered in their own section below. What changes per language on the Typing Test is only the primary metric shown, the script's direction, and how a keystroke is committed — never the underlying maths.
- Primary metric is chosen per language: WPM for alphabetic scripts, CPM for character-based scripts, KPM for Korean.
- Four error-handling modes change how mistakes are handled while typing — not how the final score is calculated.
- Advanced results add consistency, a per-finger breakdown, and a full keyboard heatmap on top of the base score.
Code Typing Test
Uses the same Net/Raw WPM idea, but every character — including brackets, semicolons, and whitespace — counts equally toward accuracy, with one deliberate exception.
- Auto-indent is never scored against you: the leading whitespace after a new line is pre-filled and doesn't count as a keystroke either way.
- Symbol accuracy is tracked as its own number, separate from overall accuracy, since code has far more punctuation than ordinary prose.
- Final accuracy is measured against the full snippet's length, not just the characters you'd typed when you stopped.
Typing Tutor
Speed only counts characters you actually type correctly — a wrong key never advances your position — so tutor WPM is already a "net" number by design, before any formula is applied.
- Each lesson also earns Stars, from 0 to 3, based on your accuracy against that lesson's own minimum bar.
- Points combine both numbers: each star is worth fifty points, and every word per minute adds two more.
- A lesson counts as passed the moment you earn at least 1 star — the course unlocks the next one automatically.
Typing Race
Race speed isn't Net WPM — it's correct-progress WPM, measured continuously. A wrong key is rejected outright rather than logged as an error to subtract later, so your position on the track only ever advances on a correct keystroke.
- Speed counts only the characters you typed correctly, five of them to a word, spread over the minutes elapsed — sampled continuously so your car's position always matches your live pace. There is no separate error penalty the way Net WPM has.
- Placement is decided by finish order first; anyone still racing when the leaderboard is shown is ranked by how far along they are.
- Bot opponents follow the same pacing math a human would, so races feel realistic rather than mechanically perfect.
Certificates
A certificate shows the exact same Net WPM (or CPM/KPM) as your Typing Test — it is generated from a real test run using the identical formula explained above, not a separate or simpler calculation. What's printed is the metric your test language is measured in — Net WPM for English, or that language's own metric such as CPM or KPM.
- Your certificate prints in the speed metric your test language is measured in — Net WPM for English, or CPM or KPM for languages measured that way — with the live number shown before you generate it.
- To qualify, you need at least 95% accuracy and a minimum speed in your test language's own unit (for example, 20 WPM for English, or the equivalent in CPM/KPM for other scripts).
- Every certificate carries a unique ID and a public verification link, so the numbers on it can be independently confirmed by anyone you share it with.
How scoring differs across tools
Every tool shares the same 5-characters-per-word convention. What differs is how strictly each one penalizes errors.
| Tool | Speed formula | Notes |
|---|---|---|
| Typing Test | Net WPM (or CPM / KPM by language) | Subtracts one word for every word submitted incorrectly |
| Code Typing Test | Net WPM + separate symbol accuracy | Auto-indent characters are never scored against you |
| Typing Tutor | Correct-only WPM | Already "net" by design — wrong keys never advance you |
| Typing Race | Correct-progress WPM, sampled live | No separate error penalty — a wrong key just doesn't advance you |
| Certificates | Same Net WPM (or CPM / KPM) as the test | Identical formula and error penalty — printed from your real test result |
Put it into practice
Frequently asked questions
Why is my WPM different here than on another typing test site?
What's the difference between Net and Gross WPM?
How is a wrong letter scored — the whole word, or just that letter?
How are errors actually calculated?
How are spaces handled?
What happens to a word I didn't finish typing?
Why does accuracy affect my WPM score?
Why do some languages show CPM instead of WPM?
What is KPM, and why does Korean use it?
How is consistency different from accuracy?
Does correcting a mistake hurt my score?
What happens if I pause during a test?
How does lesson progress work in the Typing Tutor?
Is my certificate speed the same as my regular test result?
Now go see your own numbers.
Formulas are more interesting when they're measuring you. Take a test and watch every one of these numbers update live.