Characters-Per-Second Limits by Language
English CPS caps wreck German, Finnish, and CJK. Starting CPS and CPL figures by script, and a QC method for cutting captions without changing what was said.
An English characters-per-second cap is not a reading-speed cap. It is a cap on Latin letters, spaces, and punctuation in a language that builds meaning out of short words. Paste that same 20 CPS budget onto German compounds, Finnish case endings, or Japanese full-width glyphs and you either flash an unreadable block or you "fix" it by rewriting the line into something the speaker did not say. Caption readability already covers English pacing, line breaks, and contrast. This is the language table and the QC method that sit on top of that pass.
The figures below are starting points from published subtitle specifications, not laws of perception. Netflix publishes per-language timed-text style guides with explicit CPS and characters-per-line (CPL) numbers. The BBC publishes an English word-per-minute target. Count the way the spec you are matching counts, then edit without lying.
Why an English CPS cap fails other scripts
CPS is character_count / duration_seconds. The unit "character" is the whole argument.
English Netflix timed text for adult programmes is capped at 20 CPS, with 42 characters per line. Children's programmes sit at 17 CPS. Spaces and punctuation count. A 2.0-second cue may therefore hold 40 characters for an adult English file. "We'll ship the order on Tuesday if you confirm tonight." is 55 characters including spaces and the period, already over the cap on a two-second shot, before anyone translates it.
German and Finnish do not get 20 CPS as the default adult cap. Netflix's German guide and Finnish guide both start at 17 CPS for adult programmes and 13 CPS for children's programmes, with a permitted increase to 20 / 17 when the line cannot be timed any other way. The lower default is the point. A German compound is one word and many characters. Finnish stacks case endings onto the same stem. The semantic load of an English 40-character cue often arrives in those languages as a line that will not fit 42 Latin-style slots, let alone a 17 CPS budget on a short shot.
CJK is a different unit again. Netflix Japanese subtitles (interlingual) cap at 4 CPS, 13 full-width characters per horizontal line, 11 per vertical line. Japanese SDH rises to 7 CPS and 16 full-width characters per horizontal line. Full-width counts as 1; half-width as 0.5. Korean interlingual subtitles cap at 12 CPS adult / 9 children's, 16 characters per line, Latin/space/punctuation at 0.5. Korean SDH may rise to 14 / 11. Traditional Chinese subtitles cap at 9 CPS adult / 7 children's, 16 per line, with a permitted increase to 11 / 9.
Four Japanese characters per second is not "slow English." One kanji can carry a whole English word. Applying 20 Latin CPS to a Japanese cue is a category error. BBC English is specified in words: 160–180 words per minute, about 0.3 seconds per word. That floor does not convert to CJK by multiplying by five.
Starting CPS and CPL figures
Use this as a QC lookup, then open the current language guide before you lock a delivery.
| Language / track | Adult CPS | Children's CPS | CPL (per line) | How a character is counted |
|---|---|---|---|---|
| English (Netflix, US) | 20 | 17 | 42 | Letters, spaces, punctuation |
| German (Netflix default) | 17 (up to 20) | 13 (up to 17) | Follow the German guide | Latin; compounds eat the budget |
| Finnish (Netflix default) | 17 (up to 20) | 13 (up to 17) | Follow the Finnish guide | Latin; case endings eat the budget |
| Japanese subtitles (Netflix) | 4 | 4 | 13 horizontal / 11 vertical, full-width | Full-width = 1; half-width = 0.5 |
| Japanese SDH (Netflix) | 7 | 7 | 16 horizontal / 11 vertical, full-width | Same as Japanese subtitles |
| Korean subtitles (Netflix) | 12 | 9 | 16 | Hangul = 1; Latin, space, punctuation = 0.5 |
| Korean SDH (Netflix) | up to 14 | up to 11 | 16 | Same as Korean subtitles |
| Traditional Chinese (Netflix) | 9 (up to 11) | 7 (up to 9) | 16 | Follow the Chinese guide |
| English (BBC, WPM) | 160–180 WPM | — | 37 teletext / width-limited online | Words, not characters |
Two extra constraints. Netflix's minimum subtitle duration is 20 frames at 24 fps (4/5 of a second); Japanese subtitles specify 500 ms. Do not solve a CPS fail by shrinking a cue below the minimum. Netflix Japanese and Korean: two lines maximum. BBC landscape: two lines recommended; 9:16: three. A legal CPS with a three-line wrap on 16:9 can still fail the line limit.
If you dub first, then caption, re-run timing in the target language. Translating an English cue list in place preserves English durations against target-language character counts. Keeping captions in sync with a dub is a timing problem; this table is why the timing cannot be copied.
How to count, then how to edit without lying
Count first, edit second. Guessing "it looks dense" is how teams paraphrase.
Count. For a Netflix-style Latin file, count every character including spaces and punctuation, then divide by the cue duration in seconds. For Japanese or Korean Netflix files, apply the full-width / half-width weights in the table. Do not mix WPM and CPS on the same cue. Do not count only letters.
Worked English example. Cue text: We'll ship the order on Tuesday if you confirm tonight. Character count including spaces and the period: 55. Duration: 2.00 s. CPS: 55 / 2.00 = 27.5. Adult English cap is 20, so this cue is over. A 2.75-second duration would bring it to 20.0 if the picture and the speech both allow the extra 0.75 s. If they do not, you edit the text.
Edit without lying. BBC's editorial rules and Netflix's SDH accuracy rules agree on the direction:
- Prefer verbatim when there is time. BBC: do not simplify; do not strip names used as address; keep the speaker's first and last words in shot, because lip-readers notice. Netflix Korean SDH: when you must cut, "favor text reduction, deletion and condensing but do not paraphrase."
- Cut filler, repeats, and false starts first. A price, a date, a name, a legal qualifier, and a spoken URL are last.
- Do not change the verb tense, the number, or the claim. "We'll ship Tuesday" to "Ships soon" is a lie. "We ship Tuesday" is a tense change BBC tells you to avoid. Reordering a condition can invert it.
- Keep words that can be lip-read. If the speaker is in close-up, do not swap a visible word for a shorter synonym the mouth does not match.
- Split before you crush. Two cues at 16 CPS beat one at 28. If the extra time does not exist, recut the picture or the voice.
Cover the video, read the caption, uncover the video. If a hearing reviewer would say "that is not what was said," you paraphrased. Reduction is allowed. Substitution of meaning is not.
A QC method you can run on a track
Do this once per language, not once per brand.
- Lock the language and the spec. English social burn-in can use BBC WPM or Netflix English CPS. A German, Finnish, Japanese, Korean, or Traditional Chinese delivery should use that language's Netflix numbers unless a broadcaster has given you a different house cap. Write the cap at the top of the review sheet so nobody "uses English 20" by habit.
- Get a cue list, not a screenshot. Pull a transcript if you only have speech. For a sidecar, the file already has in-times, out-times, and text. For Versely burned-in captions, you still need the timed text that went into the burn, because you cannot CPS-check pixels with a ruler.
- Compute CPS and CPL per cue. Flag any cue over the adult cap, any line over CPL, any cue under the minimum duration. A spreadsheet with
=LEN(text)/durationis enough for Latin. CJK needs the weighted count. - Fix in this order: extend the out-time into a real pause; split at a clause; delete filler; then, and only then, condense content words. Recompute. If it still fails, the shot is too short for the sentence — change the edit or the voice, not the truth of the line.
- Re-caption after a dub. A localization pass that translates captions in place will fail this sheet even when every English cue was clean. Time from the target audio.
The AI caption generator will transcribe and burn a style. It will not apply a Finnish CPS cap. That is the human pass this method is for.
FAQ
Can I convert English 20 CPS to Japanese by dividing by five?
No. Netflix Japanese subtitles are 4 CPS because a full-width character is a different unit, not because Japanese readers are one-fifth as fast. Use the Japanese numbers, and count full-width and half-width the way the Japanese guide specifies.
Is the Netflix "up to 20" bump for German a reason to start at 20?
No. German and Finnish default adult caps are 17. The bump is a relief valve after timing and reduction are exhausted, not the starting budget. If you start at 20 you will never notice the compounds overflowing.
Do spaces count?
In Netflix English, yes. In Netflix Japanese and Korean, a full-width space counts as 1 and a half-width space counts as 0.5. BBC WPM counts words, so a space is a word boundary, not a character. Mixing those definitions on one sheet will make a pass look like a fail.
What if the only way to hit CPS is to drop a price or a name?
Then the cue cannot be fixed in text alone. Recut the shot, slow the voice, or split the information across two shots. Dropping a price, a date, or a name to hit a reading-speed number is how caption tracks start lying.