Home › Everyday Life › Reading Level Calculator
Reading Level Calculator
Counts the words, sentences, syllables and letters of an English text and computes five readability scores (Flesch Reading Ease, Flesch–Kincaid grade, Gunning fog index, Coleman–Liau index, Automated Readability Index) plus their average US grade level.
When to use
You want to know how hard a passage is to read, which school grade it targets, or need to compare drafts for plain-language editing.
Do not use when: The text is not English (syllable and formula constants are English-specific), is under about 100 words (scores are unstable), or you only need reading time (use reading-time).
Formula
FRE = 206.835 − 1.015 × (words / sentences) − 84.6 × (syllables / words); FK grade = 0.39 × (words / sentences) + 11.8 × (syllables / words) − 15.59; Fog = 0.4 × [(words / sentences) + 100 × (complex_words / words)]; Coleman–Liau = 0.0588 × L − 0.296 × S − 15.8 with L = letters per 100 words and S = sentences per 100 words; ARI = 4.71 × (letters + digits) / words + 0.5 × words / sentences − 21.43; average_grade = mean(FK, Fog, Coleman–Liau, ARI)
Syllables are estimated by counting vowel groups (a, e, i, o, u, y) and subtracting a silent final -e, -ed or -es under common spelling rules; complex words are simply those with three or more estimated syllables (the strict fog definition also excludes proper nouns and compound words). Expect ±1 grade versus manual counts.
Inputs
| Parameter | Type | Unit | Required | Description |
|---|---|---|---|---|
text | string | yes | The passage to analyse (up to 20,000 characters). Sentences end at . ! or ? followed by a space. |
Outputs
| Output | Type | Unit | Description |
|---|---|---|---|
word_count | integer | Whitespace-separated tokens containing a letter or digit. | |
sentence_count | integer | Segments ending in . ! or ? (minimum 1). | |
syllable_count | integer | Estimated with a vowel-group heuristic. | |
complex_word_count | integer | Words with three or more syllables (Gunning fog). | |
words_per_sentence | number | word_count / sentence_count. | |
syllables_per_word | number | syllable_count / word_count. | |
flesch_reading_ease | number | 0–100 scale; higher is easier (60–70 is plain English). | |
flesch_reading_ease_label | string | Flesch's descriptive band for the score. | |
flesch_kincaid_grade | number | US school grade level. | |
gunning_fog | number | Years of formal education needed. | |
coleman_liau | number | Grade level from letters and sentences per 100 words. | |
ari | number | Grade level from characters per word and words per sentence. | |
average_grade | number | Mean of the four grade-level indices. | |
audience | string | Schooling band for the average grade. |
Example
Two simple sentences (18 words, 23 syllables): {"text":"The cat sat on the mat. It was a sunny day and the children played outside until dinner."} → {"word_count":18,"sentence_count":2,"syllable_count":23,"complex_word_count":0,"words_per_sentence":9,"syllables_per_word":1.278,"flesch_reading_ease":89.6,"flesch_reading_ease_label":"Easy","flesch_kincaid_grade":3,"gunning_fog":3.6,"coleman_liau":3.45,"ari":1.13,"average_grade":2.79,"audience":"Elementary school"}
Two technical sentences (22 words, 45 syllables): {"text":"Readability formulas estimate the education level needed to understand a document. They rely on sentence length and syllable counts rather than meaning."} → {"word_count":22,"sentence_count":2,"syllable_count":45,"complex_word_count":7,"flesch_reading_ease":22.62,"flesch_reading_ease_label":"Very difficult","flesch_kincaid_grade":12.84,"gunning_fog":17.13,"coleman_liau":15.99,"ari":11.69,"average_grade":14.41,"audience":"College"}
GET https://tttkmbb.com/api/v1/calculate/reading-level?text=The+cat+sat+on+the+mat.+It+was+a+sunny+day+and+the+children+played+outside+until+dinner.
Machine access
- API:
GET https://tttkmbb.com/api/v1/calculate/reading-level(query parameters) orPOSTwith a JSON body{"inputs": {...}} - Schema: https://tttkmbb.com/api/v1/calculators/reading-level · Markdown: https://tttkmbb.com/everyday/reading-level.md · JSON definition: https://tttkmbb.com/everyday/reading-level.json
- MCP: server
https://tttkmbb.com/mcp, toolrun_calculator with calculator_id="reading-level" - OpenAPI operationId:
estimate_reading_level - Freshness:
static. Authentication: none. Rate limit: fair use (see rate limits).
Sources
- Flesch–Kincaid readability tests (Wikipedia) (reference)
- Gunning fog index (Wikipedia) (reference)
- Coleman–Liau index and Automated readability index (Wikipedia) (reference)
FAQ
Why do the indices disagree?
They weight different proxies: Flesch–Kincaid and fog use syllables, Coleman–Liau and ARI use letters per word. Differences of 2–3 grades on short texts are normal; the average is a fairer single figure.
What score should I aim for?
Plain-language guidance for the general public is Flesch Reading Ease 60 or higher and grade 8 or below; legal and academic texts often score 30–50 (college level).
Do abbreviations break sentence counting?
Yes: 'e.g. ' or 'Dr. ' followed by a space ends a sentence. Remove the periods from abbreviations for an accurate count.
Related calculators
- Reading Time Calculator — How long the same text takes to read.
- Typing Speed Calculator — Words per minute for typing.