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."

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.

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 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?

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.

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.

Precision

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.

How it works

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.

How it works

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.

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.

Where the unevenness is

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.

How it works

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.

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 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.
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: 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.
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.

  • 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.
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 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
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 (what you committed, minus a word for each word you got wrong). 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 one word for each word you submitted incorrectly — 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 works letter by letter: 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. Net WPM works word by word: that same word costs you one word off your speed, and it would cost exactly the same one word if four letters had been wrong. 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 your accuracy percentage is measured against. Net WPM works at word level instead: any word containing at least one such error costs you exactly one word, however many characters in it were wrong.
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?
The characters you actually typed into it still count — a wrong key at the buzzer is a wrong key. The letters you never reached do not: running out of time mid-word is not a mistake. So typing "a" of "at" when the timer stops costs you nothing, while typing "zzzz" where "in" was expected adds four errors. Only fully committed words count toward your correct-word total.
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 — each star is worth fifty points for that lesson, and every word per minute adds two more.
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.

Support