Graded Readers

Method

How the readers were written and checked, and what that does not prove.

The five levels

Every story is a plain, literal retelling of a public-domain tale, written so a learner meets the same small core of words many times. Each level has hard limits. Chapters at every level are 300 to 600 words, aiming for about 400.

LevelLongest sentenceGuiraud ceiling per chapterGuiraud ceiling for the whole story
Very Easy10 words6.26.0
Easy12 words6.46.1
Medium15 words6.56.3
Hard20 words6.66.5
Very Hard24 words7.07.0

One story, Jack and the Beanstalk, is a one-off with its own limits: 10 words per sentence and ceilings of 5.5 (chapter) and 6.0 (whole story). The limits live in scorer/difficulty_constraints.csv. There are ceilings only, no floors: a low score is never a failure.

The writing rules on top of the numbers: every word in its most literal sense (no metaphors), character names preferred over pronouns, and a lean toward dialogue over reported speech.

What Guiraud is

Guiraud lexical diversity is the number of different word stems divided by the square root of the number of words, so a text that keeps reusing its words scores low and a text that keeps bringing in new words scores high.

How the scorer checks a story

scorer/score.py reads a story file and splits it into chapters. It sets aside character and place names, then reduces each remaining word to its base form (so "ran" and "runs" both count as "run"), using a word list, a table of irregular forms and a set of suffix rules. It then works out the Guiraud score for each chapter and for the story so far, and flags anything outside the level's limits: a chapter under 300 or over 600 words, a sentence over the level's cap, or a chapter or whole-story score above its ceiling. Nothing in it calls a network or a model.

Limitations