← All Tools

Why the Read Time Calculator Counts Characters, Not Words, for Korean

Guide · Last verified Aug 27, 2026

For English text, read time is a simple calculation: word count ÷ words-per-minute (WPM). Apply that same formula to Korean, Chinese, or Japanese text, though, and you get a wildly wrong number. This guide explains why, and walks through the actual logic the read time calculator uses to switch its calculation method depending on the language.

1. Why "word count" breaks down for CJK text

English separates words with spaces, so a single line like text.split(/\s+/) gives you an accurate word count. Korean, Chinese, and Japanese (CJK) are different. Chinese and Japanese don't use spaces between words at all. Korean does use spacing, but the unit it separates is not the English "word" — it's an "eojeol" (어절), a noun with particles attached. "학교에" ("to school") is one eojeol, but it's actually made of two morphemes: "학교" (noun, "school") + "에" (particle, "to"). Without a morphological analyzer, a few lines of code can't make that distinction accurately. As a result, applying space-based word counting straight to CJK text either collapses an entire Chinese or Japanese paragraph (no spaces) into "1 word," or, for Korean, mistakes eojeol count for word count — producing a number that has nothing to do with the actual amount of information in the text.

2. The workaround: count characters instead of words

The standard way around this is to count characters (excluding spaces) instead of words. Individual characters are a unit that can be counted precisely regardless of language. But using character count directly requires a new baseline: how many characters does a person read per minute (CPM, Characters Per Minute)? Studies on Korean silent-reading speed report a wide range — roughly 500 to over 1,000 characters per minute — depending on text difficulty and individual differences, so there's no single "correct" number to settle on. Practical tools instead convert the WPM value users are already familiar with into CPM by multiplying by a fixed factor.

3. The actual threshold this tool uses: 40% CJK

Looking at the actual code behind the Read Time Calculator, the text is automatically routed into one of two calculation modes. First, the regular expression /[一-鿿㐀-䶿가-힣぀-ゟ゠-ヿ]/g counts Han characters, Hangul, Hiragana, and Katakana. If this CJK character count exceeds 40% of the total non-space character count, the tool switches to CJK mode. In CJK mode, characters-per-minute (CPM) is derived as WPM × 2.5 — at the default 200 WPM, that's a CPM of 500, and read time is calculated as "non-space character count ÷ 500." Below 40%, the original English-style "word count ÷ WPM" calculation applies. Speaking time is split the same way: English mode uses 130 words per minute (average adult speaking rate), while CJK mode uses 65% of the reading rate (CPM) as the speaking rate.

Why 40% specifically: There's no absolutely correct answer for what percentage should serve as the "threshold." Text that's mostly English with a few Korean words mixed in (e.g. "AI 챗봇 서비스") is still reasonably measured by space-based word counting. But once a Korean sentence has occasional English terms mixed in (e.g. "이 API는 REST 방식을 따릅니다"), there's a point where character-based counting becomes more accurate. 40% is a practical threshold set at that crossover point.

4. A real example of the calculation method switching on mixed text

Example textCJK ratioMode applied
"The quarterly report covers Q3 성과" (mostly English + 1 Korean word)Low (<40%)Word count ÷ WPM
"이번 분기 실적 보고서는 API 응답 속도를 다룹니다" (mostly Korean + some English terms)High (>40%)Character count ÷ CPM

Even for sentences of similar length, whether the CJK character share crosses 40% determines which calculation formula gets applied — and it's a different formula entirely. If you write bilingual Korean-English content (technical blogs, translated manuscripts, etc.), keep in mind that the estimated read time can shift dramatically depending on the overall language mix of the text.

5. Practical tips for content writers

Frequently Asked Questions

Q. Where does the 40% threshold come from?

A. It isn't derived from a specific paper — it's a practical threshold set at the point where word-based counting starts to lose reliability on mixed text. The tool's actual source code hardcodes this value as exactly 0.4 (40%).

Q. Are Japanese and Chinese handled the same way?

A. Yes. The regular expression recognizes Han characters, Hiragana, Katakana, and Hangul all as CJK characters together, so Chinese, Japanese, and Korean text all share the same 40% threshold and CPM formula.

Q. Is 500 characters per minute an accurate CPM baseline?

A. It's an approximation derived by multiplying the default 200 WPM by 2.5. Actual research on Korean silent-reading speed reports a much wider range depending on text difficulty and individual differences. It's best treated as a rough estimate for general orientation, not an absolute figure.

Q. Wouldn't morphological analysis count Korean words more accurately?

A. It would. A morphological analysis library like KoNLPy can separate particles and count actual words (nouns, verbs, etc.) precisely. But that requires server-side NLP processing, which is too heavy for a lightweight browser tool — and character-count approximation is usually sufficient for the purpose of estimating reading time.