Analyze Text Readability — Flesch-Kincaid and More
Analyze text readability using Flesch-Kincaid, Gunning Fog, Coleman-Liau, and other formulas. Learn how readability scores are calculated, what they mean, and how to improve your writing's accessibility.
Detailed Explanation
Readability Analysis
Readability formulas estimate how easy or difficult a text is to read. They use measurable text features — word length, sentence length, syllable count — as proxies for complexity.
Flesch Reading Ease
The most widely used formula, scoring 0-100 (higher = easier):
Score = 206.835 - (1.015 × ASL) - (84.6 × ASW)
ASL = Average Sentence Length (words per sentence)
ASW = Average Syllables per Word
Score interpretation:
| Score | Level | Audience |
|---|---|---|
| 90-100 | Very Easy | 5th grade |
| 80-89 | Easy | 6th grade |
| 70-79 | Fairly Easy | 7th grade |
| 60-69 | Standard | 8th-9th grade |
| 50-59 | Fairly Difficult | 10th-12th grade |
| 30-49 | Difficult | College |
| 0-29 | Very Difficult | College graduate |
Flesch-Kincaid Grade Level
Converts the Flesch score to a U.S. grade level:
Grade = (0.39 × ASL) + (11.8 × ASW) - 15.59
A grade level of 8.0 means the text is readable by an average 8th grader.
Gunning Fog Index
Emphasizes complex (3+ syllable) words:
Fog = 0.4 × (ASL + percentage of complex words)
Implementation
function syllableCount(word) {
word = word.toLowerCase().replace(/[^a-z]/g, "");
if (word.length <= 3) return 1;
word = word.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/, "");
word = word.replace(/^y/, "");
const matches = word.match(/[aeiouy]{1,2}/g);
return matches ? matches.length : 1;
}
function fleschReadingEase(text) {
const sentences = text.split(/[.!?]+/).filter(s => s.trim());
const words = text.trim().split(/\s+/);
const totalSyllables = words.reduce((sum, w) => sum + syllableCount(w), 0);
const asl = words.length / sentences.length;
const asw = totalSyllables / words.length;
return 206.835 - (1.015 * asl) - (84.6 * asw);
}
Improving Readability
- Shorten sentences — aim for 15-20 words per sentence
- Use simpler words — "use" instead of "utilize", "help" instead of "facilitate"
- Use active voice — "The team built the app" vs. "The app was built by the team"
- Break up long paragraphs — 2-4 sentences per paragraph for web content
- Avoid jargon — or define technical terms when first used
Limitations
Readability formulas have significant limitations. They cannot assess logical coherence, cultural context, or domain knowledge requirements. Technical documentation may score as "difficult" but be perfectly clear to its target audience. These scores are best used as guidelines, not rigid rules.
Use Case
Content marketers target specific readability levels for their audience (grade 7-8 for general web content). Technical writers ensure documentation is accessible to its intended readers. Healthcare communicators verify patient materials are at a 6th-grade level as required by health literacy guidelines, and publishers use readability scores as part of editorial quality assurance.