Word Count + Reading Time

Count words, characters, paragraphs, and sentences in any pasted text, plus reading time at 250 / 200 / 150 WPM.

Inputs

Paste any text — emails, articles, blog drafts, transcripts. Tool counts client-side only — your text never leaves the browser.

Adult silent-reading average is ~250 wpm (Brysbaert 2019, Journal of Memory and Language). Audiobook narration ~150; scanning ~400.

Result

19 words
Reading time ≈ 5s at 250 wpm
  • Words19
  • Characters (incl. spaces)100
  • Characters (no spaces)82
  • Sentences2
  • Paragraphs1
  • Lines1
  • Avg word length4.32 chars
  • Avg sentence length9.50 words
  • Flesch reading ease (approx.)Difficult (college / scientific)14.6
Note — Reading speed varies a lot by content type (technical prose < narrative < skimming). 250 wpm is the silent-reading adult mean per Brysbaert 2019; use the slider for non-default contexts.

Step-by-step

  1. Tokenise on whitespace, keep tokens that contain at least one letter or digit.
  2. Sentences ≈ count of [.!?] terminators; paragraphs ≈ runs separated by blank lines.
  3. Reading time = words ÷ wpm. 19 ÷ 250 = 0.076 min ≈ 5s.

How to use this calculator

  • Paste any text into the box.
  • Read the headline word count and the estimated reading time.
  • Adjust the WPM slider for the audience: ~250 silent reading, ~150 for audiobook narration, ~400 for speed-scanning.
  • Use the per-statistic breakdown for editorial-target verification (SEO copy, Twitter limits, etc.).

About this calculator

Editors and writers reach for a word-counter dozens of times a day — for assignment limits, SEO targets (Google recommends ~1,500-word long-form content), social-media size caps, and reading-time labels. This tool gives you the full suite at once: words, characters with and without spaces, sentences, paragraphs, lines, and reading time at a configurable WPM. The Flesch reading-ease estimate is a rough hint at audience accessibility — proper Flesch needs an exact syllable count which is approximated here from average word length.

How it works — the formula

words = |{ tokens by whitespace where token contains letter or digit }| reading_time = words / wpm (min) flesch ≈ 206.835 − 1.015·(words/sentences) − 84.6·(syllables/words)

Word counting is straightforward tokenisation; the interesting numbers are derived. Reading time uses a published mean WPM (Brysbaert 2019). Flesch is a 1948 readability formula still widely used; it requires syllables which are approximated here.

Worked examples

Example 1
Twitter post (≤280 char)
Inputs:
20 words, 130 chars
Output:
~5s read at 250 wpm
Example 2
Email (default)
Inputs:
200 words
Output:
~48s at 250 wpm
Example 3
Blog article
Inputs:
1500 words
Output:
~6 min at 250 wpm

Limitations

  • Sentence detection is regex-based — abbreviations (Dr., U.S., etc.) can split a sentence wrongly.
  • Flesch estimate uses average word length as a syllable proxy; not publication-grade.
  • Word definition matches Microsoft Word convention; specialist counts (CJK character count, etc.) need a dedicated tool.

All counting runs entirely in your browser — no text is uploaded or stored.

Frequently asked

Any whitespace-separated token that contains at least one letter or digit. Pure-punctuation tokens (a bare "—" between words, for instance) are not counted. This matches the convention used by Microsoft Word and Google Docs.

Related calculators

More tools you might like