The numbers behind the numbers

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.

The headline number

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.

Everything you typed

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

What we show you

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.

Not every language uses WPM

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.

Precision

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.

The maths

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.

The maths

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.

Steadiness, not just 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.

Quick reference

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.
Applied to this tool

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.
Applied to this tool

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.
Applied to this tool

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.
Applied to this tool

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.
Applied to this tool

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.
Side by side

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
FAQ

Frequently asked questions

Why is my WPM different here than on another typing test site?
Two things usually explain it: the 5-characters-per-word convention (some sites count differently), and whether a site shows Gross WPM (everything typed) or Net WPM (only what you got right, minus an error penalty). For the main Typing Test, TypingFix uses Net WPM by default — other tools and languages use their own appropriate metric (CPM, KPM, or a correct-only WPM), as covered tool by tool below.
What's the difference between Net and Gross WPM?
Gross WPM counts every character you typed, including ones you later corrected. Net WPM counts the characters you committed, then subtracts a small penalty for every error — it's always equal to or lower than Gross, and it's the number we display and record.
How is a wrong letter scored — the whole word, or just that letter?
It depends on which number you're looking at. Accuracy and Net WPM count every character you attempt, then apply the mismatches as a penalty: type an 8-character word with 1 wrong letter, and it adds 8 to your attempted total and 1 to your error count — your accuracy reads as 7 out of 8, not a total loss. CPM and KPM are stricter: they only add a text unit to the count once it's typed completely and exactly right, so that same 1-letter mistake means the whole unit contributes nothing to your CPM or KPM, even though it still counts toward your attempted total and error tally for accuracy. This is a difference between metrics, not between languages — it works the same way for every script, including CPM as a secondary metric on space-separated languages.
How are errors actually calculated?
When a submitted word doesn't match the target exactly, every character position that differs — including any extra or missing letters — counts as one error. Those errors are what Net WPM subtracts per minute, and what your accuracy percentage is measured against.
How are spaces handled?
Pressing space is what submits your current word for scoring and moves you to the next one — the space itself isn't a scored character. For IME languages (Japanese, Chinese, Korean), a word is submitted the moment your input method finalizes it, so a space press isn't always required.
What happens to a word I didn't finish typing?
Whatever's still sitting in the input box when the timer runs out is never submitted, so it's neither counted as correct nor as an error — it simply doesn't factor into your score. Only words you actually finished and committed (space, or the IME) count.
Why does accuracy affect my WPM score?
Because Net WPM subtracts a penalty for errors, a fast but sloppy run scores lower than a slightly slower, cleaner one. This rewards typing you can actually sustain, not just a fast burst full of corrections.
Why do some languages show CPM instead of WPM?
In non-space scripts like Chinese, Japanese, and Thai, "word" isn't a stable typing unit the way it is in English, so we measure characters per minute (CPM) instead — a fairer, more meaningful number for those scripts. Arabic is a separate case: it is genuinely space-separated, but TypingFix still uses CPM as its primary metric there by deliberate choice, not because Arabic words are unstable.
What is KPM, and why does Korean use it?
KPM stands for keystrokes per minute. A single Hangul syllable on screen is actually built from 2 or 3 separate keystrokes (jamo) combined together, so counting the character alone would understate how much typing really happened — KPM counts the real keystrokes instead.
How is consistency different from accuracy?
Accuracy measures how much of your committed text was entered correctly. Consistency measures how steady your pace stayed throughout the test — two typists can have identical accuracy and WPM but very different consistency if one sprints-then-stalls and the other holds an even pace.
Does correcting a mistake hurt my score?
Not as a lingering penalty — if you catch a typo and fix it with backspace before submitting the word, it's never logged as an error at all. But the extra keystrokes spent fixing it still cost you time, which is exactly the gap between your Gross WPM (everything you typed, corrections included) and your Net WPM (what you actually submitted). If you go back and fix an already-submitted word, that word is rescored from scratch based on your final entry — including reversing any error it had counted.
What happens if I pause during a test?
The timer freezes completely — pausing (manually with F2 or the pause button, or automatically after a few seconds of inactivity or switching tabs) never costs you time, and it never resumes on its own. You have to explicitly press a key or click Resume before the clock starts again.
How does lesson progress work in the Typing Tutor?
Each lesson checks your accuracy against that lesson's own minimum bar and awards 0 to 3 stars accordingly. Earning at least 1 star counts the lesson as passed and automatically unlocks the next one — your points for that lesson are stars × 50 plus WPM × 2.
Is my certificate speed the same as my regular test result?
Yes. A certificate uses the same Net WPM formula as the Typing Test: committed typing is converted using the 5-characters-per-word convention, with an error penalty applied. It is generated from a real test run, not a separate or simpler calculation, so the number on your certificate matches your recorded 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.