textstat
textstat is a free, open-source Python library for measuring readability, text complexity, and grade level.
What textstat is
textstat is a free, open-source Python library for measuring readability, text complexity, and grade level. It calculates scores such as Flesch Reading Ease, Flesch-Kincaid Grade, SMOG, Coleman-Liau, ARI, Dale-Chall, and Gunning Fog. Its text_standard function uses multiple readability tests to estimate the school grade level needed to understand a passage. Other functions count words, sentences, characters, letters, syllables, polysyllables, and monosyllables, and estimate reading time. English is the default language; the project also lists language variants for some formulas and specific measures for Spanish, Arabic, Italian, and German. Installation options include pip, Poetry, Pipenv, pipx, and GitHub source, with pipx available for standalone command-line installation. The package uses the MIT license and requires Python 3.6 or later. Its documentation cautions that SMOG is statistically invalid for texts under 30 sentences, even though the library returns a result from at least three. It also notes limits on Spanish formulas: Gutiérrez de Polini scores are unreliable for more complex writing, and Crawford applies only to elementary-school-level texts.
Good
- Offers several established readability measures.
- Estimates grade level using multiple tests.
- Counts words, sentences, characters, and syllables.
- Includes measures for Spanish, Arabic, Italian, and German.
- MIT-licensed and free to use.
Watch out
- Requires Python 3.6 or later.
- SMOG is statistically invalid below 30 sentences.
- Some Spanish formulas have stated reliability or grade-level limits.
Who it suits
It suits developers, educators, and science or research users who want to calculate readability measures from text in Python. Its command-line installation option may also suit users who prefer pipx.
Verdict
textstat provides a broad set of readability scores and text counts in a free Python package. Check the documented limits for SMOG and the Spanish formulas when interpreting results.
Plans and prices
From textstat's own pricing page, checked 8 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| textstat | Free | Python package · MIT license |
The facts
Each one read from textstat's own pages, with the date it was checked.
What it does
- Command line
- The documentation says Textstat can be installed standalone as a command-line tool with pipx.checked 4 Oct 2026
- Consensus score
- Its text_standard function estimates the school grade level needed to understand text based on multiple readability tests.checked 8 Oct 2026
- Formula limitations
- The documentation says the Spanish Gutiérrez de Polini scores are unreliable for more complex text and the Crawford formula is valid only for elementary-school-level texts.checked 8 Oct 2026
- Installation
- The project documents installation with pip or easy_install, from GitHub source, or from PyPI.checked 8 Oct 2026
- Integrations
- For syllable calculation, it uses Pyphen in most languages and defaults to nltk.corpus.cmudict for en_US.checked 8 Oct 2026
- Language coverage
- English is the default, and the documentation lists language variants for some formulas, including German, Spanish, French, Italian, Dutch, Polish, and Russian.checked 8 Oct 2026
- Language-specific formulas
- The library includes Spanish-specific formulas, an Arabic Osman score, an Italian Gulpease index, and the German Wiener Sachtextformel.checked 8 Oct 2026
- License
- The repository identifies its license as MIT.checked 8 Oct 2026
- Other metrics
- Its functions include reading time, syllable, word, sentence, character, letter, polysyllable, and monosyllable counts.checked 4 Oct 2026
- Purpose
- Textstat is a Python library for calculating text statistics to assess readability, complexity, and grade level.checked 8 Oct 2026
- Readability formulas
- It includes measures such as Flesch Reading Ease, Flesch-Kincaid Grade Level, SMOG, Coleman-Liau, ARI, Dale-Chall, and Gunning Fog.checked 8 Oct 2026
- Reading time
- It estimates reading time using a default assumption of 14.69 milliseconds per character.checked 8 Oct 2026
- Runtime requirement
- PyPI lists Python >=3.6 as a requirement.checked 4 Oct 2026
- Security reporting
- The security policy asks people to report vulnerabilities by email and says Textstat does not offer a paid bug bounty programme.checked 4 Oct 2026
- SMOG limitation
- The documentation says SMOG is statistically invalid for texts under 30 sentences, although textstat requires at least 3 sentences to return a result.checked 8 Oct 2026
- Spanish formula limits
- The project says Gutiérrez de Polini scores for complex text are unreliable and Crawford is valid only for elementary-school-level texts.checked 4 Oct 2026
- Support
- The project asks users to report problems by opening a GitHub issue.checked 4 Oct 2026
- Support and contributions
- The project directs users to open GitHub issues for problems and pull requests for fixes or contributions.checked 8 Oct 2026
- Supported users
- PyPI classifies the intended audience as developers, education, and science/research.checked 4 Oct 2026
- Text counts
- It can count syllables, words, sentences, characters, letters, polysyllabic words, and monosyllabic words.checked 8 Oct 2026
Alternatives to textstat
- 1
Text Inspector
Free planWebAPI7.4From £9.96 a month - 2
Avidemux
Free planOpen sourceWebLinuxmacOSWindows7.3Free plan - 3
Health Literacy Advisor
AndroidiOSWebmacOS7.0From $499 a year - 4

Readable
WebAPI7.0From $12 a month - 5

Hemingway Editor
WebmacOSWindows6.8 - 6

APIVerve Website Readability API
Free planWebAPI6.7From $29.99 a month
