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."
Gross WPM = (all characters typed ÷ 5) ÷ minutes
Net WPM
Net WPM counts every character you committed — each word you submit with a space, or that your IME finalizes — then subtracts a penalty for every error you made along the way. This is the number displayed on your result and recorded to your history.
Net WPM = max(0, (characters you typed ÷ 5) ÷ minutes − errors ÷ minutes)
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.
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.
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 compares your attempted characters against your errors: (attempted − errors) ÷ 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.
accuracy = (correct ÷ total) × 100
Type 200 characters with 6 wrong, and your accuracy is 194 ÷ 200 = 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.
consistency = max(0, 100 × (1 − standard deviation ÷ mean))
We sample your net WPM once every second during the test, giving a series of numbers. "Mean" is the plain average of that series; "standard deviation" is how far, on average, those samples wander from the mean. 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.
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.
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 a penalty for every error. 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 — 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: stars × 50, plus WPM × 2.
- 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.
- WPM = (correct characters ÷ 5) ÷ elapsed minutes, sampled continuously so your car's position always matches your live pace — there's no separate error-rate penalty term 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 a small penalty for every error |
| 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.