ETEvoraTools
Markdown & Document Tools

Document Word Statistics

Document Word Statistics reports words using a Unicode letter/number pattern, characters by Unicode code point, characters after removing whitespace, physical lines, and reading time rounded up at 220 words per minute. These are explicit heuristics, not linguistic tokenization or grapheme counting; emoji sequences, CJK segmentation, hyphenation, apostrophes, and reading ability can change interpretation.

Runs locally — files stay on your device
Quick answer

How is reading time calculated?

Matched word count divided by 220, rounded up, with a minimum of one minute.

“Word” and “character” require counting rules

The tool matches sequences of Unicode letters/numbers plus apostrophe and hyphen characters. Character count uses code points, while a visible grapheme may contain several code points.

How it works

A Unicode regular expression collects word-like sequences. Spread syntax counts code points, whitespace is removed for the compact count, newline splitting counts lines, and words/220 estimates minutes.

Key concepts

Code point is not grapheme

A visible emoji or accented character can comprise multiple code points.

Reading rate varies

Language, complexity, purpose, and reader ability affect actual time.

When to use it

  • Get a repeatable document-size summary.
  • Estimate general prose reading time.
  • Compare revisions under the same counting rules.

When not to use it

  • Do not treat the estimate as an accessibility guarantee.
  • Do not expect language-specific word segmentation.
  • Do not use code-point count as cursor positions or grapheme count.

Worked examples

Short text

Input
Hello world
Expected output
Words: 2; estimated 1 min

The minimum estimate is one minute.

Hyphenated form

Input
state-of-the-art
Expected output
One matched word-like token

Hyphens are allowed inside the pattern.

Emoji sequence

Input
👨‍👩‍👧‍👦
Expected output
Several code points

It is not counted as one grapheme.

Common mistakes

Calling code points visual characters

Combining sequences differ. Correction: Use grapheme segmentation for UI limits.

Assuming universal WPM

220 is only a baseline. Correction: Adjust estimates for audience and material.

Comparing with another editor exactly

Tokenization rules differ. Correction: Document the counting method.

Best practices

  • Use one counting system consistently.
  • Treat reading time as approximate.
  • Use locale-aware segmentation when linguistic accuracy matters.

Related operations and differences

HTML to Markdown Converter

Choose HTML to Markdown Converter when you need to convert common HTML elements into clean Markdown.; use Document Word Statistics specifically for word stats.

Inline Links to Footnotes

Choose Inline Links to Footnotes when you need to convert parenthesized URLs into numbered footnotes.; use Document Word Statistics specifically for word stats.

Markdown to HTML Converter

Choose Markdown to HTML Converter when you need to convert Markdown headings, emphasis, links and lists to HTML.; use Document Word Statistics specifically for word stats.

ASCII Table Generator

Choose ASCII Table Generator when you need to turn CSV rows into an aligned plain-text table.; use Document Word Statistics specifically for word stats.

CSV to Markdown Table

Choose CSV to Markdown Table when you need to turn comma-separated rows into a Markdown table.; use Document Word Statistics specifically for word stats.

Document Link Extractor

Choose Document Link Extractor when you need to extract labeled links from Markdown or HTML.; use Document Word Statistics specifically for word stats.

Limitations and privacy

  • Fixed 220 WPM.
  • Regex tokenization, code-point character counting, and physical-line counting.
  • No pages, sentences, paragraphs, syllables, readability, or locale segmentation.

Document text is transformed locally in this browser.

Frequently asked questions

What WPM is used?

220.

Is reading time exact?

No.

Are emoji counted as one character?

Not necessarily.

Are hyphenated terms kept together?

The matching pattern can keep them in one token.