Concepts
Check any passage for decodability
The free decodability checker scores a passage you paste against a UFLI lesson, using the same scorer Cody applies to its own stories.
What it is for
The checker answers one question: can the reader in front of you actually sound out this text, given where they are in their phonics sequence?
That question comes up constantly with material Cody did not write. A decodable reader from a publisher, a passage in a workbook, a story a colleague shared, or something a general chatbot produced when asked for a decodable story. Any of those can look simple and still lean on patterns your reader has not been taught.
You do not need an account, and you do not need a student set up. Pick a lesson and paste the text.
How to use it
- Open the checker.
- Choose the lesson your reader is on. The list is the UFLI Inspired scope and sequence only, grouped by unit. If your students are on one of the other sequences Cody supports, the checker cannot score against it yet. See The curricula Cody supports.
- Type any character names into the Names in the passage box, separated by commas.
- Paste your passage into the text area. It takes up to about 6,000 characters, which is far longer than a decodable passage normally runs.
- Select Check decodability.
You get a percentage, a colored version of your passage, and up to two lists underneath: the challenge words, each with the reason it is a challenge, and any words the checker could not find in its dictionary.
Reading the result
The number is the share of scored words the reader can already handle at that lesson. 90% is the bar Cody measures its own stories against, and it is drawn on the score so you can see where your passage lands next to it.
Every word is colored by what the reader can do with it, and the tags under the score count them up.
| Tag in the checker | Same thing inside Cody | What it means |
|---|---|---|
| Decodable | Known | Every pattern in the word was taught in an earlier lesson |
| Focus | Focus | The word uses the pattern this lesson teaches |
| Sight | Sight | A high-frequency word taught by this point, read from memory |
| Challenge | Unknown | The word needs a pattern this reader has not met yet, or the checker could not find it in its dictionary |
The labels are not the same on both surfaces. The checker says Decodable where the app says Known, and Challenge where the app says Unknown. They are the same four buckets and the same scorer underneath. If you move between the checker and a story page, read the table above rather than the label. See The four kinds of word in a story for how these work inside Cody.
Names have no tag of their own because they are counted inside Decodable: you tell a reader a name once and they carry on, which is why the names box is worth filling in. Numbers are the one thing with no tag and no color at all. Digits have no sounds to blend, so they are left out of the count rather than scored either way.
In short: four tags, two of them named differently from the app, with names folded into Decodable and numbers not counted at all.
Comparing two passages
Switch to Compare two and you get two boxes side by side, scored against the same lesson. This is the quickest way to settle whether a rewrite actually helped, or to see the gap between a passage Cody wrote and one that came from somewhere else.
Sharing a result
Once results are on screen, Copy link to this result appears beside the other buttons. The checker keeps the lesson, the names, the passage and the compare labels in the page address, so the link opens the same check for somebody else. Useful for showing a coach or a colleague exactly which words were the problem. A very long passage will not fit in a link, and the button says so when that happens.
When a real word comes back as a challenge
Sometimes a perfectly ordinary word is marked as a challenge and turns up in the Not in our dictionary list rather than among the challenge words with reasons. That means the checker could not look the word up at all, not that it found a pattern your reader has not met.
Two things cause it:
- It is a name. Put it in the names box and check again. The checker deliberately leaves most names out of its dictionary, which is exactly why the box exists.
- It is a word we are missing. The dictionary is large but not infinite. An unrecognized word counts against the passage rather than for it, which is the cautious choice, so your percentage is a floor rather than a guess.
If an ordinary word is missing, tell us and we will add it. See Get help or report a problem.
In short: a word in the Not in our dictionary list was never checked. Try the names box first.
What the number does not tell you
Decodability is necessary, not sufficient. A passage can score 100% and still be dull, confusing, or wrong for the child in front of you. The checker measures one thing on purpose, so that the comparison between two passages is fair. You still decide whether the text is worth reading.
In short: the checker tells you whether a reader can decode a text at a given lesson, and nothing else about whether it is a good text.
Still stuck? If something is broken rather than confusing, tell us what happened and we will look into it.