CER or WER: which one to report, and when the choice flips a ranking
The two metrics are the same calculation with different units. Pick by writing system and by what the product is judged on, and keep the ratio as a diagnostic.
Character error rate and word error rate are one algorithm. Both are the smallest number of substitutions, deletions and insertions that turns the hypothesis into the reference, divided by the length of the reference. The only difference is the unit of the edit, and that difference decides how much a single mistake costs.
Because the units differ, the two metrics can rank two systems in opposite orders. A model that spells words nearly right but picks the wrong word looks strong on CER and weak on WER. A model that gets whole words right but drops diacritics looks strong on WER and weak on CER. Neither number is wrong, which is why the choice has to be made before the model is trained rather than after the results arrive.
One substitution, two very different numbers
Take a five-word reference, "the team shipped the release", and a hypothesis with a single wrong word, "the team shipped the realise". That is one substitution over five words, a WER of 0.20. At character level, release and realise differ by three edits, over a reference of 28 characters including spaces, so the CER is 0.107.
The same single error reads as twenty points or as eleven points depending on the unit. That compression is systematic: CER is almost always lower than WER on English because words are longer than the errors inside them. If a vendor reports a number without the unit, the ambiguity is worth about a factor of two.
One detail that surprises people: the CER default in jiwer does not remove spaces, so the space characters sit in the denominator and inflate the reference length. That is defensible, since the space is real, but it means a CER computed with spaces stripped is not comparable to one computed without, and the difference is a couple of points on short utterances.
When the writing system has no word boundaries, CER is the honest unit
Several widely spoken languages do not put spaces between words, including Chinese, Japanese, Thai, Lao and Khmer. Run a whitespace tokenizer over that text and you do not get words. You get one token per run of characters, which means a WER computed this way measures how well your segmenter agrees with the annotator, not how well the model heard.
The denominator is the problem. If the segmentation changes, the reference word count changes, and a model can score better or worse on identical audio because someone switched segmenters. Two vendors quoting WER for the same language with different segmentation are quoting two different metrics.
The practical rule: report CER for those languages, and if a word-level number is required, name the segmenter, version it, and publish it alongside the score. A word error rate without a segmenter is not reproducible for these languages.
When a whole-word error is what the user actually experiences
For a command interface, a wake word detector, or a keyword search box, a near miss is a failure. A user who says a product name and gets a different product name has hit a bug, and the fact that two characters were right is irrelevant. Word-level and even sentence-level metrics match the product here.
The reverse holds for languages with rich morphology. In Turkish, Finnish, Hungarian or Estonian, one wrong suffix marks an entire word wrong, so WER reports a large error for what a reader would call a typo. If the output is a transcript read by people or fed to a language model, CER tracks the perceived damage more closely.
This is a decision about the product, not about linguistics. Write down which one the product is judged on, and note that the answer can differ between two models inside the same pipeline, such as a command router and a dictation engine.
The ratio between them is the diagnostic nobody reports
Compute both on the same set and keep the ratio of CER to WER over time. The absolute value is not meaningful across languages, but the direction of movement within one language is.
When the ratio falls while WER holds steady, errors are moving inside words: spelling variants, diacritics, accent effects, or a language model that produces plausible words in the wrong form. When the ratio rises, the errors are whole words, which usually means the model is missing words or substituting unrelated ones, and that is an acoustic or segmentation problem rather than a spelling one.
That single derived number is often the fastest way to tell whether last week of training helped the decoder or the acoustic model, and it costs one extra line in the scoring script.
Put the choice in the acceptance criteria
The metric, the unit, the normalization and the reference all belong in the contract, in the same paragraph as the threshold. A vendor asked to deliver under 10% error will select whichever unit passes, and that is a rational response to an underspecified requirement.
One clarification is worth stating because it comes up in negotiations: neither metric can be gamed by saying nothing. Deletions count against the system, and the denominator is fixed by the reference, so a model that outputs less text does not get a discount. The gaming risk is in the reference and the normalization, not in the metric choice.
Finally, report both numbers with their unit attached. A table of bare decimals is not a result, and the reader cannot tell an 0.11 CER from an 0.11 WER.