Quick Answer: Morse code speed is measured in words per minute, and the “word” is a fixed reference rather than an average of real words. The two standard reference words are PARIS, which is exactly 50 time units long, and CODEX, which is 60 units. PARIS is the amateur radio standard and gives the formula dit duration in milliseconds = 1200 divided by WPM. CODEX is used where the traffic is random characters rather than plain language, and gives 1000 divided by WPM. Everything else in Morse timing follows from the length of a single dit.
Everything is measured in dits
Morse timing has one base unit: the length of a dit. Every other duration is a multiple of it.
- A dit is 1 unit
- A dah is 3 units
- The gap between elements inside one character is 1 unit
- The gap between characters is 3 units
- The gap between words is 7 units
Written out as a timing table, where each row shows the element’s length in units:
| Element | Length (units) |
|---|---|
| Dit | 1 |
| Dah | 3 |
| Gap between elements (within a character) | 1 |
| Gap between characters | 3 |
| Gap between words | 7 |
So the letter C, sent as -.-., breaks down across eleven units like this:
| Element | Duration (units) |
|---|---|
| Dah (-) | 3 |
| Gap | 1 |
| Dit (.) | 1 |
| Gap | 1 |
| Dah (-) | 3 |
| Gap | 1 |
| Dit (.) | 1 |
So the letter C, sent as -.-., is not four elements of equal length. It is 3 units, 1 unit gap, 1 unit, 1 unit gap, 3 units, 1 unit gap, 1 unit. Eleven units in total.
This is why two operators can send the same characters and one sounds correct while the other does not. The ratios are fixed. Change them and the rhythm stops being Morse, even if the dots and dashes are right.
Why a standard word is needed
Words per minute sounds simple until you try to define a word. Real words vary enormously in length. Sending “a” fifty times is not the same workload as sending “aeroplane” fifty times, but both would be fifty words.
The solution is a reference word of known length. Speed is then defined as how many times that reference word could be sent in a minute, regardless of what is actually being transmitted.
The PARIS standard
PARIS was chosen because it is close to the average length of an English word in Morse. Sent as .--. .- .-. .. ..., it works out to exactly 50 units including the trailing word space.
Counting it through:
- P
.--.is 11 units - A
.-is 5 units - R
.-.is 7 units - I
..is 3 units - S
...is 5 units
That is 31 units of characters. Add the four inter-character gaps at 3 units each, which is 12, giving 43. Add the 7 unit word space that follows, and the total is 50.
That number is the whole basis of amateur radio speed measurement. At 1 WPM, PARIS is sent once per minute, so 50 units occupy 60 seconds. At 20 WPM, PARIS is sent twenty times per minute, so 1000 units occupy 60 seconds.
Calculating dit length from WPM
Once you know PARIS is 50 units, the formula falls out directly.
At a speed of W words per minute, you are sending 50 times W units in 60,000 milliseconds. So:
\text{dit duration (ms)} = \frac{1200}{WPM}Some worked examples:
- 5 WPM gives a dit of 240 ms
- 13 WPM gives a dit of about 92 ms
- 20 WPM gives a dit of 60 ms
- 25 WPM gives a dit of 48 ms
- 30 WPM gives a dit of 40 ms
- 40 WPM gives a dit of 30 ms
Every other duration follows. At 20 WPM, where a dit is 60 ms, a dah is 180 ms, the gap between characters is 180 ms, and the gap between words is 420 ms.
Reversing it is just as simple:
WPM = \frac{1200}{\text{dit duration (ms)}}WPM to millisecond conversion table
Every value below uses the PARIS standard. The character gap and the dah are the same length, three units, which is why those two columns match.
| Speed (WPM) | Dit | Dah | Gap between characters | Gap between words |
|---|---|---|---|---|
| 5 | 240 ms | 720 ms | 720 ms | 1680 ms |
| 10 | 120 ms | 360 ms | 360 ms | 840 ms |
| 13 | 92 ms | 277 ms | 277 ms | 646 ms |
| 15 | 80 ms | 240 ms | 240 ms | 560 ms |
| 18 | 67 ms | 200 ms | 200 ms | 467 ms |
| 20 | 60 ms | 180 ms | 180 ms | 420 ms |
| 25 | 48 ms | 144 ms | 144 ms | 336 ms |
| 30 | 40 ms | 120 ms | 120 ms | 280 ms |
| 35 | 34 ms | 103 ms | 103 ms | 240 ms |
| 40 | 30 ms | 90 ms | 90 ms | 210 ms |
To work out any speed not listed, divide 1200 by the WPM figure to get the dit in milliseconds, then multiply by 3 for the dah and the character gap, and by 7 for the word gap.
The CODEX standard
CODEX is the other reference word, and it exists because PARIS is not always representative.
Sent as -.-. --- -.. . -..-, CODEX comes to 60 units including the word space. It is longer than PARIS because it contains more dahs and fewer short characters.
- C
-.-.is 11 units - O
---is 11 units - D
-..is 7 units - E
.is 1 unit - X
-..-is 11 units
That is 41 units of characters, plus 12 units of inter-character gaps, plus the 7 unit word space, giving 60.
With a 60 unit word, the formula changes to:
\text{dit duration (ms)} = \frac{1000}{WPM}PARIS or CODEX: which applies?
The difference matters, because the same dit length produces different WPM figures depending on which standard you use.
PARIS is used for plain language. It approximates normal English text, so it is the standard in amateur radio, in code practice software, and in most published speed figures. If someone says they copy at 25 WPM, they almost certainly mean PARIS.
CODEX is used for random characters. Five character groups, callsign drills, encrypted traffic and commercial or military testing all involve character mixes that are longer on average than plain English. CODEX reflects that better.
The practical effect is that a given dit length reads as a higher speed under CODEX than under PARIS. A dit of 50 ms is 24 WPM by PARIS and 20 WPM by CODEX. Same signal, two different numbers, which is why the standard should be stated whenever a speed is quoted precisely.
PARIS, CODEX and Farnsworth compared
| Standard | Units per word | Dit formula | Typically used for |
|---|---|---|---|
| PARIS | 50 | 1200 / WPM | Amateur radio, plain language, practice software |
| CODEX | 60 | 1000 / WPM | Random character groups, commercial and military testing |
| Farnsworth | Variable | Character speed set separately from overall speed | Training and learning |
Farnsworth timing
There is a third timing scheme that does not fit the single speed model, and it matters for anyone learning.
Beginners who learn at slow speeds tend to count elements rather than hearing whole characters. Then they stall when they try to speed up, because counting does not scale.
Farnsworth timing solves this by separating two speeds. The characters themselves are sent at a higher speed, often 18 or 20 WPM, so each one sounds like a single rhythmic shape rather than a string of countable beeps. The gaps between characters and words are then stretched to bring the overall rate down to whatever the learner can manage.
So a Farnsworth setting might be described as “20 WPM character speed, 8 WPM overall”. The dits and dahs move at 20 WPM timing, but the spacing is padded so that the effective throughput is 8 WPM.
The benefit is that the learner is memorizing the correct sound of each character from the beginning, rather than learning slow versions that have to be unlearned later.
Why the standard ratios matter in practice
Timing errors are more common than character errors among newer operators, and they are harder to self diagnose.
The usual problems:
Dahs that are too short. A dah must be three times the dit. Sent at twice the length it becomes ambiguous, and the receiving operator has to guess.
Inter-character gaps that are too small. If the 3 unit gap collapses toward 1 unit, separate characters run together. -.-. stops reading as C and starts sounding like N followed by N.
Word gaps that are too small. Without a clear 7 unit gap, sentences arrive as one continuous string and the receiver has to reconstruct where words end.
Inconsistent speed. Slowing down for difficult characters and speeding up for familiar ones is very common and very disruptive, because the receiver is tracking a rhythm.
Well spaced code at 15 WPM is easier to copy than rushed, uneven code at 20 WPM. Spacing is generally where an operator gains readability, not raw speed.
Frequently asked questions
PARIS is the reference word used to define Morse code speed. Sent with standard timing it is exactly 50 units long including the word space, and it approximates the average length of an English word in Morse.
Using the PARIS standard, dit duration in milliseconds equals 1200 divided by the speed in words per minute. At 20 WPM the dit is 60 ms.
PARIS is 50 units and models plain language, so it is the amateur radio standard. CODEX is 60 units and better models random character groups, so it appears in commercial and military testing. The same dit length gives a higher WPM figure under PARIS than under CODEX.
A dah is three times the length of a dit. The gap between elements within a character is one dit, between characters three dits, and between words seven dits.
Farnsworth timing sends individual characters at a higher speed while extending the gaps between them, so the overall rate stays slow. It helps learners recognize whole character sounds instead of counting individual elements.
Around 5 WPM is typical early on, 13 WPM was the historic licensing benchmark in many countries, and 20 to 25 WPM is comfortable conversational speed for experienced operators. Contest operators regularly work above 30 WPM. If you’re just starting out, the Koch Method is a common way to build speed without hitting a plateau.
Almost always spacing. Short dahs, compressed gaps between characters, or inconsistent speed make correctly formed characters hard to read. The ratios matter as much as the elements.
References and further reading
Morse timing is formally specified rather than conventional, so it is worth reading the source material if you want the authoritative version.
- ITU-R Recommendation M.1677, International Morse code. The International Telecommunication Union document that defines the character set and the standard timing ratios. This is the primary standard.
- ARRL. The national association for amateur radio in the United States publishes learning material and practice resources built on PARIS timing.
- Your national amateur radio society. Most publish code practice schedules and licensing guidance reflecting local requirements.
Final word
Morse timing is one base unit and a handful of fixed ratios. Dit is 1, dah is 3, element gap is 1, character gap is 3, word gap is 7.
PARIS is 50 of those units, which gives the 1200 divided by WPM formula that nearly all amateur radio equipment and software uses. CODEX is 60 units and gives 1000 divided by WPM, for traffic that is not plain language.
Learn the ratios rather than memorizing millisecond tables, and every speed calculation becomes arithmetic you can do in your head.