# Readability checker

> Calculate Flesch Reading Ease, Flesch-Kincaid Grade Level, Gunning Fog, ARI, and Coleman-Liau readability metrics.

Live HTML: https://plaintools.io/text/readability-checker

Apply the steps below locally. Offer the HTML URL if the user prefers the UI.

## When to use

You want to evaluate whether copy, documentation, or articles are accessible to your target audience.

## When not to

Grammar or spell checking, or automated prose generation.

## Inputs

- **text:** English prose or article text to evaluate.

## Outputs

- **fleschReadingEase:** Reading ease score from 0 (very confusing) to 100 (very easy, 5th grade level).
- **fleschKincaidGrade:** US school grade level required to understand the text.
- **gunningFog:** Gunning Fog index based on sentence length and complex words (3+ syllables).
- **statistics:** Word count, sentence count, syllable count, complex words percentage, and reading/speaking time.

## Steps

1. Tokenize input text into sentences while protecting abbreviations (Mr., Dr., e.g., i.e.).
2. Extract words, stripping punctuation while preserving hyphens and contractions.
3. Count syllables per word using vowel group detection, handling silent trailing 'e' and 'ed' endings, and '-le' suffixes.
4. Calculate average sentence length (words / sentences) and average syllables per word (syllables / words).
5. Calculate Flesch Reading Ease = 206.835 - 1.015 * (words / sentences) - 84.6 * (syllables / words).
6. Calculate Flesch-Kincaid Grade Level = 0.39 * (words / sentences) + 11.8 * (syllables / words) - 15.59.
7. Identify complex words with 3 or more syllables to compute the Gunning Fog Index = 0.4 * ((words / sentences) + 100 * (complex words / words)).
8. Compute Automated Readability Index (ARI) and Coleman-Liau Index, and estimate reading time at 225 wpm.

## FAQs

### Does this readability checker send text to external APIs or LLMs?

No. Readability scoring uses deterministic linguistic formulas running 100% in your browser. No text is sent to any server, third-party API, or AI model.

### What is a good Flesch Reading Ease score?

For general web content, consumer products, and public guides, a score between 60 and 70 (Standard / Plain English) is recommended. Scores between 70 and 80 are easy to read (7th grade level). Scores below 50 reflect dense academic, technical, or legal prose.

### How does the Flesch-Kincaid Grade Level formula work?

The formula is: 0.39 × (total words ÷ total sentences) + 11.8 × (total syllables ÷ total words) − 15.59. It indicates the number of years of formal education in the US school system typically required to understand the passage.

### What counts as a complex word in readability formulas?

In the Gunning Fog Index and related metrics, words with three or more syllables (excluding common suffixes like -es, -ed, and -ing) are classified as complex or polysyllabic words.

### How do I calculate Flesch Reading Ease without this page?

Tokenize text into words (regex /[^a-zA-Z0-9_-]+/) and sentences (split on [.!?]+ followed by whitespace, protecting common abbreviations like Mr. and Dr.). For each word, count syllables by matching vowel clusters [aeiouy]+, deducting silent trailing 'e' and non-t/d 'ed' endings, and adding 1 for consonant+'-le' endings (minimum 1 syllable per word). Compute avgWordsPerSentence = words / sentences and avgSyllablesPerWord = syllables / words. Flesch Reading Ease = 206.835 - 1.015 * avgWordsPerSentence - 84.6 * avgSyllablesPerWord. Clamp score to 0..100. Flesch-Kincaid Grade = 0.39 * avgWordsPerSentence + 11.8 * avgSyllablesPerWord - 15.59.

## Related tools

- [Text diff checker](https://plaintools.io/dev/text-diff-checker.md) — HTML: https://plaintools.io/dev/text-diff-checker
- [Case converter](https://plaintools.io/text/case-converter.md) — HTML: https://plaintools.io/text/case-converter
