Skip to content
beginthings.
Blog

Home › Blog › Writing

Writing

Readability Formulas Explained: Flesch Reading Ease vs Flesch–Kincaid Grade

By Sourav Mahapatra · · Last updated · 6 min read

Same inputs, opposite directions
Reading Easehigher is easier
Grade Levelhigher is harder
Inputswords, sentences, syllables
In this guide
  1. The two formulas
  2. Worked example 1: plain instructions
  3. Worked example 2: the same idea in legalese
  4. A minimal implementation
  5. Why different tools give different scores
  6. What the scores are good for, and what they're not
  7. Quick editing moves that actually move the numbers
  8. Try it without writing code
  9. Tools for this
  10. Keep reading

"Aim for a Flesch score of 60+." "Keep it at grade 8." You've probably heard both pieces of advice, sometimes in the same style guide, without anyone explaining where the numbers come from. They come from two formulas that are older than personal computers, use exactly the same inputs, and point in opposite directions.

This post walks through both formulas, computes them by hand on two short texts, shows a minimal JavaScript implementation, and covers the edge cases that make different tools disagree.

The two formulas

Both use just three counts from your text: words, sentences and syllables. From those they derive two ratios:

Flesch Reading Ease (FRE), Rudolf Flesch, 1948:

FRE = 206.835 − 1.015 × ASL − 84.6 × ASW

Higher is easier. Long sentences and long words both pull the score down. Typical everyday prose lands somewhere between 50 and 80.

Flesch–Kincaid Grade Level (FKGL), J. Peter Kincaid and colleagues, 1975, developed for the US Navy:

FKGL = 0.39 × ASL + 11.8 × ASW − 15.59

Higher is harder. The result maps roughly to a US school grade: 8.0 means a typical eighth-grader (age 13–14) should follow it.

Same inputs, different weights, opposite direction. That's why one guide says "go up" and another says "go down", and they're asking for the same thing.

Worked example 1: plain instructions

Send the invoice today. Ask the client to pay within seven days. Keep a copy for your records.

Counts: 18 words, 3 sentences, 24 syllables (using a typical heuristic counter, more on that below).

Very easy, roughly second-to-third-grade level. Exactly what you want for an instruction someone reads on their phone.

Worked example 2: the same idea in legalese

Remittance of the outstanding consideration should be effectuated within seven calendar days of receipt, notwithstanding any intervening administrative circumstances.

Counts: 19 words, 1 sentence, 47 syllables.

Yes, negative. Flesch Reading Ease isn't capped at 0 to 100. That range is where most real text falls, but nothing in the formula enforces it. A grade of 21 means "beyond postgraduate". Both numbers are telling you the same thing: split the sentence and use shorter words.

A minimal implementation

function countSyllables(word) {
  word = word.toLowerCase().replace(/[^a-z]/g, '');
  if (word.length <= 3) return 1;
  word = word.replace(/(?:[^laeiouy]es|ed|[^laeiouy]e)$/, ''); // silent endings
  word = word.replace(/^y/, '');
  const groups = word.match(/[aeiouy]{1,2}/g);
  return groups ? groups.length : 1;
}

function readability(text) {
  const sentences = text.match(/[^.!?]+[.!?]+/g) || [];
  const words = text.split(/\s+/).filter(Boolean);
  const syllables = words.reduce((n, w) => n + countSyllables(w), 0);
  if (!sentences.length || !words.length) return null;

  const asl = words.length / sentences.length;
  const asw = syllables / words.length;
  return {
    readingEase: +(206.835 - 1.015 * asl - 84.6 * asw).toFixed(1),
    gradeLevel: +(0.39 * asl + 11.8 * asw - 15.59).toFixed(1),
    words: words.length, sentences: sentences.length, syllables,
  };
}

This takes about 20 lines, and it's also why no two readability tools agree exactly.

Why different tools give different scores

The formulas are fixed. The counting isn't.

  1. Syllables are guessed. English spelling doesn't map cleanly to sound, so almost every tool uses a heuristic like the one above. It counts "client" as one syllable (it's two) and "effectuated" as three (it's five). Dictionary-based counters do better on common words and worse on names and jargon. A difference of 0.1 in ASW moves FRE by about 8.5 points.
  2. Sentence detection varies. The regex above only counts text ending in ., ! or ?. A bullet list with no full stops can collapse into one giant "sentence" and tank the score. Some tools split on line breaks too, and abbreviations like "e.g." or "Dr." can add fake sentences.
  3. What counts as a word. Numbers, URLs, hyphenated words and emoji are handled differently everywhere.

Practical rule: compare scores from the same tool, before and after an edit. Don't compare your score in one tool with a target someone measured in another.

What the scores are good for, and what they're not

They're useful for:

They're not useful for:

Quick editing moves that actually move the numbers

Try it without writing code

If you just want the two numbers for a draft, use the free readability calculator. It runs these two formulas in your browser and shows Flesch Reading Ease, Flesch–Kincaid Grade and the word, sentence and syllable counts behind them, with no signup and nothing uploaded. It deliberately does just these two formulas, so it's handy for before-and-after comparisons.

This guide was drafted with AI assistance; the formulas, counts and code were checked by hand and against the calculator's source before publishing.

Score your own text

Paste a draft to see its Flesch Reading Ease and Flesch–Kincaid Grade, plus the word, sentence and syllable counts behind them.

Open the readability calculator

Free, no sign-up, runs in your browser.


Written by Sourav Mahapatra, who builds BeginThings: free browser tools and BeginRooms, a 3D workspace you can walk through. Take the 30-second tour or start a free 11-day trial, no card needed.