Translate from a timed source-language subtitle file, one cue in and one cue out, then run three checks before delivery: timing (reading speed and minimum duration), line length (Netflix's English limits are 42 characters per line, two lines, 20 characters per second) and meaning, through back-translation and a native reviewer who also reads a sample.
Those limits are English figures. Netflix's Japanese guide allows 13 full-width characters per line and up to 4 characters per second, so a spec copied across languages fails. The machine bill is tiny, well under a dollar per language for a 20-minute video, which means the real cost and the real risk both sit in the checks.
Start from a timed template, not from raw audio
A subtitle template is the timed source-language file that every translation is built from. Netflix's template guide describes it as an edited, positioned and checked subtitle file, timed to the shots and the audio, that serves as the basis for subtitling in other languages. Ask the client for one. If they have only a script or a video, make the template first using the checks in the tutorial on accuracy and delivery checks for AI subtitles, because an error in the source is copied into every language.
One cue in and one cue out is the starting point because each cue is already tied to a shot and a stretch of speech. Keep the boundaries and you can compare source and target row by row, run automated checks per cue, and let a reviewer watch in sync. Netflix's guide lets each language re-time and re-segment where reading speed demands it, so one-to-one is not a law. It does mean every change is a decision rather than an accident.
The guide also sets English templates slower than English subtitles: up to 17 characters per second for adult programmes against 20, and 15 for children's. My reading is that a template already running at 20 leaves a longer language no room, so check the source file's reading speed before you pass it on.
When nobody on the team speaks the source language, agencies sometimes translate through an English pivot. Netflix asks for a fluent, linguistically correct back translation with extensive annotations so translators can still work from the source audio. Treat a pivot as a last resort, since each hop adds errors.
The running example is a 20-minute software training video with an English template of 310 cues, to be subtitled into Spanish. Everything below applies to any pair.

The Complete Excel Course with AI Integration
From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.
By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner
Buy nowThe same limits do not travel between languages
Write the spec on a job sheet before any translation starts, and take each number from the guide for that language and platform, not from the English one. These figures come from Netflix's published guides, which are a convenient reference when a client provides nothing:
| Subtitle type | Characters per line | Lines | Reading speed |
|---|---|---|---|
| English subtitles | 42 | 2 | Up to 20 per second (adult), 17 (children's) |
| English templates | 42 | 2 | Up to 17 per second (adult), 15 (children's) |
| Japanese subtitles, horizontal | 13 full-width (half-width counts as 0.5) | 2 | Up to 4 per second |
| Japanese SDH, horizontal | 16 full-width | 2 | Up to 7 per second |
| Any other language | Set in that language's own guide | 2 (a general requirement) | Set in that language's own guide |
The arithmetic shows why the gap matters. At 4 characters per second, a 2.4-second cue holds about 9 or 10 characters (4 multiplied by 2.4 is 9.6). A language running at 20 characters per second holds 48 in the same time. A Japanese job therefore means far heavier condensing, or far more screen time, than an English-to-Spanish job built from the same template.
The job sheet for the Spanish film might read as follows. Every value is illustrative, and the register, UI-label and number lines are the ones teams forget:
JOB SHEET: Software training video, 20:12, 310 template cues
TARGET: Spanish, regional variant: [as briefed by the client]
SPEC SOURCE: client's platform guide (42 chars/line, 2 lines, 20 chars/sec)
DURATION: min 5/6 s (20 frames at 24 fps), max 7 s; gap of at least 2 frames
REGISTER: informal "tú" throughout
DO NOT TRANSLATE: product name, feature names, [list]
UI LABELS: use the client's own localised strings, never invent them
NUMBERS: follow the chosen variant's separators; units as in the picture
FORMATS: SRT and WebVTT, UTF-8, file name pattern title_es.srt
REVIEWER: native [language] linguist, not the person who prompted the draft
A translation prompt that keeps cue numbers and counts honest
Pasting a whole SRT file into an assistant invites trouble. Models can alter timestamps, merge two cues or silently skip one. Send numbered text lines instead, with the display time beside each, in batches of 40 to 60 cues with five lines of context before and after. Put the original timecodes back by cue number afterwards, and compare the number of lines in with the number out before anything else. If the counts differ, rerun the batch instead of hunting for the missing line.
You are translating subtitles for a software training video.
Source: English. Target: Spanish, informal "tú" throughout,
regional variant: [as briefed].
Rules:
- Output exactly one line per input line, with the same numbers.
Never merge, split, skip or add lines.
- Keep each line to 42 characters or fewer. If a cue cannot fit on
one line, use one line break at a natural point (two lines at most).
- The display time is in brackets after each number. Aim for no more
than 20 characters per second. If the translation runs over, shorten
the wording but keep every fact, name, number and negation.
- Translate meaning, not words. For idioms use the natural equivalent.
- Do not translate: [list]. Use these fixed translations: [glossary].
- Lines marked (context) are for reference only; do not output them.
INPUT:
(context) 044 [2.1s] ...
045 [2.4s] We'll email you when your files are ready.
046 [1.8s] ...
A first pass is rarely clean. Here is an illustrative set of four problems from the sort of output this prompt returns, with what you would do about each:
| Cue | First-pass target | Problem | Fix |
|---|---|---|---|
| 045 | Te enviaremos un correo cuando tus archivos estén listos. | 57 characters in 2.4 s is 23.8 per second, over the 20 limit | Condense or extend (see the next section) |
| 051 and 052 | One merged line | The line count is 309, not 310 | Rerun the batch and keep the count check |
| 112 | Puede cambiar su contraseña en Ajustes. | Formal "usted" in a file briefed as informal; "Ajustes" may not be the product's real label | Rewrite to "tú" and take the label from the client's localised product |
| 203 | Más de 10,000 archivos | Thousands separator may not match the chosen variant | Apply the job sheet's number rule |
The register row is the one that slips through unless the brief says it. Assistants can drift between formal and informal address inside a single file, and a native reader notices at once. State the register and the regional variant in the prompt, then confirm it in the reviewer's brief.
Fixing reading speed without cutting the meaning
Take cue 045. The English is 42 characters on one line, shown for 2.4 seconds, which is 17.5 characters per second and comfortable. The literal Spanish runs to 57 characters over two lines of 30 and 26, so at 2.4 seconds it reads at 23.75 characters per second. To get to 20, the cue needs at least 2.85 seconds (57 divided by 20). There are three fixes, tried in this order.
- Extend the cue. Showing it for 2.9 seconds gives 19.7 characters per second. That works only if the next cue starts at least two frames later, the cue stays within seven seconds, and the text does not outlast the speech awkwardly.
- Condense the wording. "Te avisaremos por correo cuando estén listos." is 45 characters, which is 18.75 per second at the original 2.4 seconds. It keeps the email and the timing and drops "your files", which the picture already shows. A reviewer should confirm that the picture really does show them.
- Split the cue in two if the speaker pauses, which Netflix's guide permits, giving each half its own timing within the minimum duration of five-sixths of a second.
The rule for condensing is to keep names, numbers, negations and anything the picture does not carry, and to drop repeated words, softeners and phrases such as "you can" where the imperative works. Condense in the translation, not in the template, unless the template itself is over its own limit.
For a sheet-based check, put start and end times in seconds in columns B and C and the cue text in D. The characters-per-second figure needs line breaks removed from the count, and the line lengths need the break position:
Characters per second: =LEN(SUBSTITUTE(D2,CHAR(10),""))/(C2-B2)
Line 1 length: =IFERROR(FIND(CHAR(10),D2)-1,LEN(D2))
Line 2 length: =IF(ISNUMBER(FIND(CHAR(10),D2)),LEN(D2)-FIND(CHAR(10),D2),0)
Flag: =OR(E2>20, F2>42, G2>42, C2-B2<0.834, C2-B2>7)
In that flag formula E, F and G hold the three results above. It uses 0.834 seconds as the minimum duration, which is five-sixths of a second rounded up. Sort by the flag column and you have the list for the next stage. Subtitle Edit, a free open-source editor, has Fix common errors on its Tools menu, which makes a useful second opinion. It does not replace watching the video, because a file can pass every rule and still read badly.
Meaning checks: a blind back-translation, then a native reviewer
Back-translation is a cheap screen for meaning errors. In a fresh conversation, give an assistant only the target-language lines and ask for a literal translation back into the source language. Then give a second prompt both versions, and ask it to mark each cue SAME, DRIFT or FLIP, with a reason in twelve words or fewer. Use a different engine for the return trip than for the forward pass where you can, so both do not share the same blind spot.
| Source cue | First-pass target | Blind back-translation | Verdict and fix |
|---|---|---|---|
| We eventually moved everything online. | Eventualmente trasladamos todo a internet. | Occasionally we moved everything online. | FLIP. "Eventually" means finally, but the Spanish "eventualmente" means possibly or occasionally. Use "Al final lo trasladamos todo a internet." |
| You don't need to restart. | Necesitas reiniciar. | You need to restart. | FLIP. A negation was lost. Restore it. |
| Delivery takes up to 48 hours. | La entrega tarda hasta 24 horas. | Delivery takes up to 24 hours. | FLIP. The number changed. Correct it to 48. |
| Let's get started. | Empecemos. | Let's start. | SAME. Fine. |
These are invented examples, but each failure type is real: false friends, lost negations and altered numbers. A back-translation is a screen, not proof. A model that misread a sentence can translate its own misreading back faithfully, and it also flags harmless rewording. Treat FLIP and DRIFT cues as the reviewer's priority list and do not treat SAME as a pass.
The native reviewer is a different person from whoever prompted the draft. Send them the video with the subtitles in sync (a burned-in preview or the file loaded in a player), the job sheet, the glossary, the source template, and the list of cues flagged by the automated checks and by the back-translation. Ask them to watch the whole film once at normal speed, then work through the flagged cues, and to log each correction with a category and a severity.
A brief for the reviewer's eye covers these points:
- Negations, numbers, units and dates match the picture and the source.
- Names and do-not-translate terms are untouched; glossary terms are used the same way every time.
- Register and regional variant stay consistent from first cue to last.
- Idioms and jokes are carried over by meaning, and references that do not travel are flagged for the client.
- Subtitles do not contradict on-screen text, such as a menu label.
- Sentences split across cues still read as one thought.
- Special characters display correctly in the delivery format, including accented and inverted punctuation.
The glossary this reviewer checks against has to come from somewhere, and the tutorial on keeping terminology consistent with AI is a good place to start building it.
A QC sample sized to the risk
You will not have time for a second full review of every cue in every language. Review all cues flagged by the automated checks and the back-translation. Add a random sample of the rest, around 10% with a floor of 30 cues. In a sheet, add a column of =RAND(), sort by it and take the top rows. Make sure the sample includes cues from the start, middle and end.
A sample is a smoke test, and the arithmetic shows how little it proves. If the true error rate among the unflagged cues were 5%, a clean sample of 30 would still turn up about one time in five (0.95 to the power of 30 is 21.5%). At a 10% error rate it would happen about one time in 24 (4.2%). Doubling the sample to 60 cues cuts the 5% case to 4.6%. So 30 catches a bad file but not a mediocre one. Use 60 for a new language pair, a new reviewer or a high-visibility client.
For scoring, the MQM framework gives the shape: errors typed by category, such as accuracy, fluency, terminology and style, graded by severity, then turned into a score, with accept, revise or reject decisions. The weights below are mine, not MQM's, so set your own after a few jobs.
| Severity | Meaning | Points |
|---|---|---|
| Minor | A better word or comma exists; meaning intact | 1 |
| Major | Meaning shifts, a term is wrong or the register is wrong for the brief | 5 |
| Critical | A negation, number, name or safety instruction is wrong, or the text is offensive | 10 |
Score per 100 cues is the points divided by the cues sampled, multiplied by 100. My pass rule is 10 or below with no critical errors. As an illustration, if the reviewer logs 3 minor errors in the Spanish sample of 31 cues, that is 3 points, or 9.7 per 100, a pass once the corrections are applied. If a second file shows 5 minor and 2 major errors, that gives 15 points, or 48.4 per 100, and the whole file goes back to the reviewer. The lesson is the rule, not the figures, because either file could have been the good one.
What it costs: cents for the machine, hours for the reviewer
These list prices were read on the vendors' pages in October and November 2026, and they change, so check before you rely on them.
| Option | Price | Note |
|---|---|---|
| Google Cloud Translation, Basic | $20 per million characters | First 500,000 characters a month are free |
| Google Cloud Translation, LLM text translation | $10 per million characters in and $10 out | Billed on both input and output |
| DeepL API, Growth | $26 a month billed annually, plus $27.50 per million extra characters | 12 million characters a year included; the free Developer plan gives a one-time credit of 1 million characters |
| ChatGPT Plus or Claude Pro | $20 a month ($17 on Claude's annual billing) | Chat plans with usage limits, no API; business plans start at $20 to $25 a seat and do not train on business content by default |
The 20-minute film has roughly 3,000 words, which I estimate at about 17,000 characters of subtitle text. At list price, one language through Google's basic engine costs 17,000 divided by one million, times $20, which is $0.34, and nothing at all inside the free allowance. Two languages cost $0.68. Now the human side, using made-up rates: two native reviewers at two hours each and $35 an hour is $140, and an hour of internal time to score the samples is $35. The total is $175.68 and the machine is under 0.4% of it.
That ratio is the point of this tutorial. The saving AI offers is in the first draft, and the money goes on the checks, so quote for the checks. The tutorial on subtitling rates when AI drafts first covers how to price it, and DeepL against ChatGPT on client documents compares the engines themselves.
The delivery pack and what the client is told
Send more than the files. A delivery pack contains the subtitle file for each language in the agreed formats, named with the language in the file name; a short QC report with the sample size, the score and the corrections made; the glossary and job sheet as used; and a version number. Confirm the file is saved as UTF-8 and that special characters display in the player or platform the client will use. If a platform requires TTML or IMSC, check its technical rules rather than assuming a general tool's export will pass. Netflix's guide, for example, gives rules such as percentage values instead of pixels.
Say how the work was produced in two sentences: "Subtitles were translated with machine translation from the approved English template, revised by a native [language] linguist against the video, and quality-checked on a sample of [number] cues plus every cue flagged by automated checks." That is honest and gives the client something to point to.
Data terms need their own check before client footage goes anywhere. Business plans of ChatGPT and Claude do not train on business content by default, while personal plans have a training switch to turn off. Translation vendors differ on whether text is stored or used for training, and a security page often does not say which plan its promise covers, so ask for the plan-level terms or a data processing agreement. The tutorial on whether it is safe to put client documents into AI translation tools covers the same ground in more depth.
Subtitle translation questions agencies ask
Can AI subtitle translation go out without a human review?
For client-facing work I would not send it. Machine output can flip a negation, change a number or pick the wrong register without any visible sign. Keep at least a sample check and a native reviewer's pass, sized to the risk, and tell the client how the file was produced. The cost of that review is small next to a public mistake.
How many characters per second should subtitles run at?
It depends on the language and the client's spec. Netflix's English guide allows up to 20 characters per second for adult programmes and 17 for children's, while its Japanese guide allows up to 4. Use the figure published for the target language and platform, and write it on the job sheet before translating.
Should I translate from the audio or from an English subtitle file?
Start from a timed, checked source-language subtitle file, called a template, and keep the source audio to hand for unclear lines. One cue in and one cue out makes automated checks and side-by-side review easy. Translating from raw audio or an unchecked auto-transcript copies the source errors into every language.
How long does a native reviewer need for a 20-minute video?
Budget about two hours per language for the first few jobs, then replace that with your own logged times. Review the whole film once in sync at normal speed, then work through the flagged cues. A reviewer who is rushed will skim, so the brief and the flagged-cue list matter as much as the time allowed.
Further reads
- How Small Translation Agencies Build an AI-Assisted Workflow — The wider AI-assisted workflow for a small translation agency.
- Machine Translation Post-Editing: A Translator's Workflow — How a post-editor works through machine output.
- Does Your Translation Business Need an AI Usage Policy? — Writing the AI usage policy clients increasingly ask for.
- How to Check AI Translations Before Customers See Them — Checks for AI translations that customers read directly.
- AI Video Translator for Corporate Video: Dubbing, Subtitles, Checks — Dubbing and subtitle options for corporate video.
- MTPE Rates per Word: How Translators and Agencies Price Post-Editing — How post-editing is priced per word.
- Translation Memory and AI: How to Combine Them in a Small Agency — Combining translation memory with AI drafts.
- AI-Powered Translation Management System: What a Small Agency Needs — Which translation management system suits a five-person agency: published prices, a ranked shortlist, an exit test and a two-week trial plan.
- AI Tools and AI Development: The Complete 2026 Guide — the AI hub, including every tutorial in the AI-for-business series.
Sources: Netflix partner help timed-text guides (general requirements, English, Japanese, subtitle templates, timing guidelines), MQM framework site, Google Cloud Translation and DeepL API pricing pages, ChatGPT and Claude plan pages (checked October to November 2026).