Why no two tools agree on the word count
This one splits on whitespace and counts the non-empty runs. That is the most common definition and it has known consequences: a hyphenated compound like state-of-the-art counts as one word, an em dash with spaces around it counts as one, e.g. counts as one, and a numeric range written as 10 - 20 counts as three. Word processors use different rules. Some split on hyphens, some ignore standalone punctuation, some count fields and footnotes, some do not. A 2,000-word draft can easily read as 1,960 or 2,050 somewhere else, and neither number is wrong — they are answers to slightly different questions.
The practical consequence is that if a word limit is binding, check it in the tool the person enforcing it will use. Use this one for the shape of the text, not for clearing a hard cap by three words.
Four different character counts, and when each is the one that matters
The counts panel reports four numbers that are equal for plain ASCII and diverge as soon as the text is interesting.
| Text | Characters | Code points | UTF-16 units | UTF-8 bytes |
|---|---|---|---|---|
| cat | 3 | 3 | 3 | 3 |
| café (precomposed é) | 4 | 4 | 4 | 5 |
| café (e + combining acute) | 4 | 5 | 5 | 6 |
| 👍 | 1 | 1 | 2 | 4 |
| 👨👩👧 (family emoji) | 1 | 5 | 8 | 18 |
Characters here means grapheme clusters — what a person would call one character and what one press of backspace deletes. Code points are Unicode scalar values, which is what Array.from(text).length gives you. UTF-16 units are what JavaScript's .length returns, and the reason an emoji seems to count as two. UTF-8 bytes are what a VARCHAR(255) in a byte-limited column is actually measuring, and the reason a string of 200 visible characters can be rejected as too long.
If you are checking a form limit, find out which of the four it counts before trusting any of them. Twitter-style limits count something close to code points with weighting, database columns usually count bytes, and print layout cares about graphemes.
Where the sentence boundaries go wrong
Sentences are split on a run of . ! ? or an ellipsis followed by whitespace, allowing for a closing quote or bracket in between, and on any line break. That handles ordinary prose and deliberately treats a hard line break as a boundary so that bullet lists and headings do not merge into the paragraph after them.
It over-splits in predictable places. Abbreviations followed by a space — Dr. Chen, e.g. this, Fig. 3 — each register as a sentence end. So does a numbered list where the numbers are written 1. at the start of a line. Decimal numbers are safe because there is no space after the point, but a version number at the end of a clause is not. If the sentence count comes back noticeably higher than you expect, that is nearly always the cause, and the fix is to run the prose without the list scaffolding rather than to distrust the average.
What the readability scores are and are not
Flesch Reading Ease is 206.835 − 1.015 × (words per sentence) − 84.6 × (syllables per word), and Flesch-Kincaid grade level is a rearrangement of the same two inputs onto a US school-grade scale. Both were developed in the mid-twentieth century, the Kincaid version on US Navy training manuals, and both know exactly two things about your writing: how long the sentences are and how many syllables the words have. They cannot see whether a sentence is coherent, whether a technical term is defined before it is used, or whether the paragraph order makes sense. A page of well-formed nonsense scores as well as a clear explanation with identical statistics.
The syllable count is also an estimate. Counting syllables in English properly requires a pronunciation dictionary, because spelling does not determine syllable count — business is two, hyperbole is four, queue is one. The heuristic here counts vowel groups and subtracts a silent trailing e, which is right for most common words and wrong for a scattering of them. On a few hundred words the error mostly cancels; on a single sentence it does not. Read the score as a band, not a number: a Flesch of 62 and one of 58 are the same result.
The scores are also English-only. They will produce a number for text in any language, and that number is meaningless for anything that is not English, because the coefficients were fitted to English syllable and sentence statistics. If a fifth or more of the input is outside the Latin alphabet, the tool says so under the character mix.
Using the spread rather than the average
The average sentence length is the least useful number on the page and the standard deviation next to it is the most. A draft averaging eighteen words with a deviation of three is uniform and will read as monotonous. The same average with a deviation of twelve has short sentences and long ones alternating, which is what readable prose looks like. The count of long sentences and the longest sentence shown in full are there so you can act on that: read the longest one aloud, and if you run out of breath or lose the thread, split it. That single edit does more for a draft than moving the Flesch score four points ever will.
Questions people ask
Why is the word count different from the one in my word processor?
Because there is no single definition. This tool splits on whitespace and counts the runs, so state-of-the-art is one word and 10 - 20 is three. Word processors variously split on hyphens, ignore isolated punctuation, and include or exclude headers, footnotes, captions and tracked changes. Differences of one to three percent between any two tools are normal. If a word limit is being enforced against you, verify it in whatever the person enforcing it uses.
Why do emoji make the character counts disagree?
Because they are one character made of several code points. A thumbs-up is one grapheme, one code point, but two UTF-16 units and four UTF-8 bytes. A family emoji is one grapheme built from five code points joined by zero-width joiners, which is eight UTF-16 units and eighteen UTF-8 bytes. A letter written as e plus a combining accent behaves the same way: one visible character, two code points. The tool reports all four counts because different systems measure different ones, and a form that rejects your text is usually counting bytes.
Is the Flesch score reliable?
It is reliable as a rough band and unreliable as a precise figure. It is computed from two inputs only — average sentence length and estimated syllables per word — so it cannot detect incoherence, undefined jargon or bad structure, and text engineered to score well can still be unreadable. The syllable estimate adds its own error, since counting English syllables correctly needs a pronunciation dictionary rather than a spelling rule. Treat a difference of five points as noise, and use the score to compare drafts of the same document rather than as an absolute grade.
Does it work on languages other than English?
The counting does, for anything that separates words with spaces — words, sentences, paragraphs, characters and bytes are all computed the same way regardless of script. The readability scores do not. Flesch and Flesch-Kincaid were fitted to English syllable and sentence statistics and produce a number for any input, but that number carries no meaning outside English. For scripts written without spaces, such as Chinese and Japanese, the word count degrades to counting punctuation-separated runs and should be ignored entirely.
Is my draft uploaded anywhere?
No. The whole analysis runs as JavaScript inside your browser tab and nothing is transmitted. There is no server call, no logging and no storage — closing the tab discards everything. The input cap of 500,000 characters exists so a very large paste does not freeze the page, not because of any transfer limit.