Op-Ed Insight

Counting syllables: why software disagrees and how much it matters

Most readability formulas depend on syllable counts, and no two programs count syllables quite alike. Here is where the disagreements come from and how much they move your score.

4 min read · Readability

Flesch Reading Ease, Flesch–Kincaid, Gunning Fog, and SMOG all need to know how many syllables each word has. People count syllables by ear. Software has to count them from spelling, and English spelling is a poor guide to sound. That gap explains many of the differences you see between readability tools.

How people count syllables

A syllable is a beat of sound built around a vowel sound. The usual classroom tricks all find those beats: clap along as you say the word, or rest your hand under your chin and count how often your jaw drops. “Wa-ter” is two beats. “Strength” is one, despite its eight consonants.

The key is vowel sounds, not vowel letters. “Boat” has two vowel letters and one vowel sound. “Rhythm” has no a, e, i, o, or u, yet most people hear two syllables.

Even people disagree. Accent and speed change the count. Many speakers say “ev-ry” (two), and others say “ev-er-y” (three). “Fire” is one syllable for some and “fi-er” for others. Neither is wrong.

Why software disagrees

The simplest counter treats each run of vowel letters (a, e, i, o, u, and often y) as one syllable. It is right surprisingly often and wrong in predictable places.

Word Usual spoken count Vowel groups What trips up the counter
make 1 2 silent final e
jumped 1 2 -ed said as “t”
wanted 2 2 -ed said as “id” (correct by luck)
created 3 2 “ea” is two sounds here
create 2 2 “ea” is two sounds; a silent-e rule then drops it to 1
idea 3 2 “ea” split across two syllables
being 2 1 “ei” split across two syllables
poem 2 (often 1) 1 “oe” split, or not, by accent
fire 1 or 2 2 depends on the speaker
every 2 or 3 3 middle vowel often dropped in speech
business 2 3 the “i” is silent

Real counters add rules on top of the vowel-group count:

  • Silent final e: subtract one for a word ending in “e” (“make,” “smile”). But keep it for “the,” “be,” “recipe,” and “apostrophe,” and keep the “-le” in “table” and “candle.”
  • The -ed ending: count it only after “t” or “d” (“wanted,” “needed”), not otherwise (“jumped,” “called”).
  • Vowel pairs that split: “ia” in “piano,” “eo” in “video,” “ua” in “actual.”
  • Prefixes and suffixes: “re-” before a vowel (“reapply”), “-ism,” “-ian.”

Each rule fixes a batch of words and exposes problems in others. “Create” is the classic case. The raw count of 2 is right by luck: the counter took “ea” as one sound (it is two, “cre-ate”) and the silent final e as another. Apply the silent-e rule, which is correct here, and the hidden vowel-pair error surfaces. The count drops to 1. A counter needs a list of vowel pairs that split, then exceptions to that list.

Dictionary versus rule-based counting

There are two main approaches, and good tools combine them.

Dictionary lookup. Pronouncing dictionaries list how words are said, and syllables follow from the vowel sounds. The Carnegie Mellon University Pronouncing Dictionary, a free resource used widely in speech research, covers well over 100,000 English words. A lookup is accurate for the words it knows. It still has to choose between listed variants (“every” with two syllables or three), and it knows nothing of new words, brand names, typos, or most surnames.

Rules. A rule-based counter handles any string of letters, including words no dictionary has seen. It is fast and small. It is also wrong on a few percent of words, more on unusual vocabulary.

Hybrid. Look the word up; fall back on rules when it’s missing. This is the most accurate practical approach, and the remaining disagreements come down to variant pronunciations, which have no single right answer.

Our methodology page describes how Op-Ed Insight counts syllables and reports our counter’s tested accuracy.

How much the errors matter

Less than you might fear, and you can work it out from the formulas.

Flesch Reading Ease subtracts 84.6 × (syllables ÷ words). One extra syllable per 100 words raises syllables-per-word by 0.01, so the score drops by 84.6 × 0.01 = 0.846 points.

Flesch–Kincaid Grade adds 11.8 × (syllables ÷ words). The same extra syllable per 100 words raises the grade by 11.8 × 0.01 = 0.118 grades.

So a counter that overcounts by 5 syllables in every 100 words lowers Reading Ease by about 4.2 points and raises the grade by about 0.6. That is noticeable if you compare tools, but small next to the gap between a stiff draft and a plain one, which can easily reach 20 points or more.

Two things make the errors bigger:

  • Systematic bias. Random errors partly cancel out. A counter that always overcounts “-ed” words will skew every text that uses many past-tense verbs.
  • Threshold formulas. Gunning Fog and SMOG only care whether a word has three or more syllables. A miscount on “every” (two or three?) or “different” moves the word across the line. In a short text, a handful of these can shift the grade noticeably.

Coleman–Liau and the Automated Readability Index avoid the problem by counting letters instead of syllables.

What this means for you

  • Compare like with like. Scores from the same tool are comparable with each other. Scores from different tools are only roughly comparable.
  • Ignore small differences. A Reading Ease of 62 versus 64, or a grade of 8.3 versus 8.5, is within counting noise.
  • Use the score to find problems, then read the text. Let the readability checker point you at a hard passage, then judge it yourself. Whether a word has two syllables or three matters much less than whether your reader knows it.

Try it on your own text

Open in the editor →

Scores

  • Flesch Reading Ease–

Counts used

Hardest sentences

  1. Paste a few sentences to see which are hardest.

Most frequent long words

Words of three or more syllables appear here.
This tool runs entirely in your browser and needs JavaScript switched on. Nothing you type is sent anywhere.

Open the full readability checker →

Open the example in the editor →