Readability Checker

Runs entirely in your browser

Analyze text readability with real-time statistics. Get Flesch-Kincaid scores, reading time estimates, and syllable counts.

Paste Your Text

Paste or type text to see readability statistics

Runs entirely in your browser. No uploads. Your files stay private.

How the Readability Checker Calculates Scores

The Readability Checker computes the Flesch Reading Ease and Flesch-Kincaid Grade Level scores entirely in your browser. Reading Ease is 206.835 minus 1.015 times the average words per sentence, minus 84.6 times the average syllables per word. Grade Level is 0.39 times the average words per sentence, plus 11.8 times the average syllables per word, minus 15.59. Both formulas come from the 1948 and 1975 papers by Rudolf Flesch and J. Peter Kincaid respectively.
Sentence segmentation is done by splitting on the regex /[.!?]+/ — anything ending with a period, exclamation, or question mark plus surrounding whitespace counts as a boundary. That works for most prose but produces inflated counts when text contains abbreviations like 'Mr.' or 'e.g.', and undercounts when sentences end in ellipsis or are joined with semicolons. If your scores look off, check whether your text uses unusual punctuation conventions.
Word counting strips non-word characters with a regex, splits on whitespace, and filters empty strings. The result matches what most word processors call a 'word' but it counts hyphenated compounds (state-of-the-art) as a single token because hyphens are word characters in JavaScript's \w class. Em-dash separated phrases count as separate words.
Syllable estimation is a heuristic: count contiguous runs of vowels (a, e, i, o, u) in a lowercased word, treat that count as the syllable estimate, then subtract one for a trailing silent 'e' and add one for a trailing 'le' pattern. This matches the dictionary syllable count for common English words within roughly ten percent. Words with unusual phonotactics (rural, choir, fire) and most non-English vocabulary will be miscounted.
The Flesch family of scores was calibrated on twentieth-century English educational material. Applying them to other languages produces nonsense — German has longer compound words, Spanish has different syllable density, and Chinese characters break the per-word and per-syllable assumptions entirely. Use these scores only for English prose.
Reading time uses the standard 238 words-per-minute average for adult silent reading, sourced from the 2019 meta-analysis by Brysbaert. For technical or unfamiliar material, real reading speed is closer to 100 to 150 words per minute, so treat the displayed number as an optimistic floor rather than a precise estimate.
All metrics recompute via a useMemo hook on every text change. Because the calculations are O(n) over the input, even multi-thousand-word essays stay interactive on modest hardware. No request leaves the page — your draft, including unpublished material under embargo or NDA, stays in the tab.

Common Use Cases

01

Content marketing optimization

Target a Flesch Reading Ease of 60 to 70 for blog posts and landing pages so general adult audiences read without fatigue.

02

Academic submission checks

Verify that essays and journal drafts hit the grade level expected by the publication, typically 12 to 16 for peer-reviewed work.

03

Plain-language compliance

Hit the Flesch grade level required by U.S. plain-language regulations for federal communications (typically grade 8 or below).

04

Email and newsletter polish

Run drafts through the checker to surface long sentences and dense vocabulary before sending to a broad customer list.

Frequently Asked Questions

For general adult audiences, target 60 to 70 (Standard). Marketing and consumer copy often aims for 70 to 80 (Easy). Academic writing typically lands at 30 to 50 (Difficult to Fairly Difficult), which is appropriate for that audience. Below 30 is reserved for highly technical or legal text.
By splitting the input on the regex /[.!?]+/ and discarding empty fragments. Period, exclamation, and question mark all terminate a sentence. Abbreviations like 'Dr.' and 'i.e.' are not specially handled, so they will inflate sentence counts. Ellipsis and semicolons do not split sentences.
Each word is lowercased, vowel groups (contiguous runs of a, e, i, o, u) are counted, the result is treated as the syllable estimate, then one is subtracted for trailing 'e' and one is added for trailing 'le'. This matches dictionary syllabification within roughly ten percent for common English words but mishandles 'fire', 'choir', 'rural', and most non-English vocabulary.
The most common cause is a passage that the sentence regex misreads — for example, a list with no terminal periods becomes one giant sentence, sending words-per-sentence sky high. Lots of abbreviations have the opposite effect. Re-punctuate the text, paste a sample without abbreviations, or compare against a longer excerpt for a more stable reading.
No. The Flesch and Flesch-Kincaid formulas were fitted to twentieth-century English text. German compounds, Spanish syllable density, Russian morphology, and CJK character-based writing all violate the per-word and per-syllable assumptions. For other languages, look up language-specific formulas (LIX for Scandinavian, GULPEASE for Italian, Fernandez-Huerta for Spanish).
238 words per minute, the adult silent-reading average from Brysbaert's 2019 meta-analysis. Technical material reads slower (100 to 150 wpm), and skimming runs faster. Treat the displayed minutes as a reasonable mid-range, not a precise number.
No. The page bundles the formulas and runs them in the browser via a useMemo hook on each keystroke. There is no fetch call, no third-party analytics on the input, and no clipboard exfiltration. You can disconnect from the network and the checker keeps working.
Punctuation is required for accurate sentence segmentation, so removing it would destroy the sentence count. Capitalization is irrelevant to the formulas (they only count words and syllables) but the text is displayed verbatim so you can edit in place.
Technically yes, but a single sentence produces unstable scores because words-per-sentence becomes the entire word count. The formulas are calibrated on passages of 100 words or more. For tweets or single sentences, use the raw word and syllable counts rather than the derived scores.
They are two views of the same underlying signal (sentence length and syllable density), but with different output scales. Reading Ease is a 0 to 100 score where higher is easier. Grade Level converts that into a U.S. school grade, where higher is harder. Use Reading Ease for marketing decisions and Grade Level for plain-language compliance.

Advertisement

Runs entirely in your browser — nothing is uploaded