Why I Built My Own Readability Checker Instead of an English-Only Score
Every free readability checker I found either paywalled the score or sent my text to a server. The worst ones ran the English Flesch formula on German text and called it dense academic prose. I built one that picks the right formula per language, client-side.
I write for this site in English and for my other site in German, and before either goes out I want a readability score, not a vibe check, an actual number. Every free checker I tried had a catch. The score sat behind a paywall or a sign-up, or the text went to someone else's server before I got an answer. And the worst ones only understood English, rating my German like it was reading a legal brief.
That last one is what actually bothered me. So I built my own: a readability checker that picks the right formula for the language it's looking at, not just the language it assumes.
English-only formulas overstate how hard German is
Most free readability checkers assume you're writing English and never check. Paste in a German paragraph and they still run it through the Flesch Reading Ease formula, because that's the only formula they have, calibrated on English sentence and syllable patterns.
I tested this on a real paragraph about readability itself, written in German: 17 words per sentence, 2.06 syllables per word on average. Score it with Toni Amstad's German adaptation of the formula and you get 42.6, difficult but fair for a paragraph about linguistics. Feed the exact same sentence-length and syllable numbers into the original English formula instead, and the score drops to 15.4, into "very difficult, academic" territory. Same text, same measured stats, 27 points and a full difficulty band apart, purely because of which formula did the math.
The gap is baked into the coefficients. The English Flesch formula docks 84.6 points for every syllable per word. Amstad's German version docks 58.5. German words carry more syllables on average than English ones, so the steeper English penalty stacks up fast, and perfectly normal German prose starts reading like a dissertation to a formula that was never built to score it.
Two formulas, one detector deciding which to use
The fix isn't picking a formula once and hardcoding it. The tool reads the language from whatever you actually paste, every time.
Detection counts hits against two stopword lists: German words like der, die, das, und, ist against English ones like the, and, is, of, to. Whichever list scores higher wins. Umlauts and ß count double toward German, since they almost never show up in English text. Paste German, you get Amstad. Paste English, you get the original Flesch formula. Switch languages mid-edit and the label above the input updates on its own.
Both formulas boil down to the same two inputs regardless of language: average sentence length and average syllables per word. That's genuinely the whole trick behind Flesch-style formulas. No vocabulary lists, no semantic analysis, just sentence and syllable arithmetic with weights tuned per language.
Counting syllables is a heuristic, and I'm not pretending otherwise
Syllables get counted by matching vowel groups in each word, not by a dictionary lookup. It's fast and it runs entirely in the browser, but it's an approximation, and I'd rather say so than let the number look more precise than it is.
English words get a couple of extra rules on top. Anything three letters or shorter always counts as one syllable, and a trailing silent e or es gets stripped before counting, so a word like "care" doesn't count as two syllables just because it has two vowel groups. German skips that rule and treats umlauts (ä, ö, ü) as vowels in their own right, so diphthongs like ei, ie, au, eu, and äu naturally collapse into one syllable, since they sit inside the same unbroken vowel run.
It's accurate enough to score a paragraph, not accurate enough to hyphenate one. The odd compound word or loanword gets miscounted here or there. For a metric that's already an approximation of reading difficulty, that's a rounding error I can live with.
The score is the headline, the list underneath is the actual answer
Under the score, the tool lists your five longest sentences by word count, pulled straight from your own text, nothing paraphrased. If the score is bad, that list is almost always where it's coming from.
One 40-word sentence with four subordinate clauses drags the average down more than five clean 12-word ones ever could pull it back up. That's the part I actually use day to day: I open the list, find the worst offender, and split it.
My own bar, in real numbers
I aim for 60+ on German web copy. Below 50, I start splitting sentences, no exceptions, no "but this one reads fine to me." I picked that threshold after enough passes through my own drafts to notice where dense turns into actually annoying to read.
It doesn't measure whether the writing is any good, and it was never supposed to. You can hit 90 with content-free filler, and some genuinely clear technical writing sits in the 40s because the terminology runs long. Sentence mechanics is all it measures. I run it early, before the real edit, the same way I run my humanizer-en checklist: a first pass that flags where to look.
The readability checker is free, runs in your browser, and is one of 12 tools I've built and open-sourced the same way, scoped to a problem I actually had rather than a general audience. It's the same instinct behind building my own N5 trainer instead of fighting Duolingo's curriculum. Write in German, you get Amstad's formula. Write in English, you get the original Flesch formula. That's the whole tool.
FAQ
- How does the tool know if my text is German or English?
- It counts how many words match a German stopword list (der, die, das, und, ist) against an English one (the, and, is, of, to), and whichever count is higher wins. Umlauts and ß count double toward German, since they almost never appear in English. Switch languages mid-paste and the detection updates immediately.
- Why can't the same formula just work for both languages?
- Because it doesn't score them fairly. German words average more syllables than English ones, and the original Flesch formula penalizes each syllable per word by 84.6 points. Run that on German text and normal, readable prose starts scoring like an academic paper. Amstad's German adaptation uses a lighter 58.5 penalty for exactly that reason.
- What score should I actually aim for?
- I aim for 60+ on German web copy, and below 50 I start splitting sentences without arguing about it. English readers can use the same instinct: 60 to 70 is plain, everyday English.
- How accurate is the syllable counting?
- It's a heuristic, matching vowel groups per word, with a few language-specific rules like stripping a silent trailing e in English and treating umlauts as vowels in German. The odd compound word gets miscounted by a syllable, which is fine for a readability score and not something I'd trust for anything more precise.
- Does a high score mean the writing is actually good?
- No, and I wouldn't trust a tool that claimed it did. The score only measures sentence mechanics, average length and syllable density. You can hit 90 with filler that says nothing, and solid technical writing can sit in the 40s because the terminology runs long.
