This is not a difficulty score

A brutally hard question about amortized complexity can and should score as Clear. The point is to hold the computer science demand fixed while bringing the language demand down. Making a question easier costs rigor; fixing its language is free.

The five dimensions

Each is scored out of 100 and contributes a weighted deduction to the composite:

DimensionWeightWhat it looks at
sentence25Sentence length and clause structure — how much has to be held in mind at once
vocabulary25Word rarity, with glossary terms exempt entirely
focus20Whether the question asks one thing or several
figurative15Idiom, metaphor and cultural reference — the parts that don't translate
presentation15Rendered line count and visual structure on the student display

Bands

BandComposite
Clear85–100
Mostly clear70–84
Needs work50–69
High load0–49

Any hard flag caps the composite at 69 regardless of the arithmetic, so a long clean question cannot hide one killer sentence inside a good average.

The glossary is the whole trick

Words in your glossary are exempt from the vocabulary penalty completely. Without that, a stock readability formula flags polymorphism, amortized and idempotent as unreadable — which is useless, because those terms are the assessment. Glossary hits are counted and reported separately as assumed vocabulary, so you can see what a question takes for granted.

Manage the list under Glossary. Terms can be marked student-visible, and the glossary travels with an exported question bank so a recipient inherits your course vocabulary along with the questions it exempts.

The live scorecard

The question editor shows a deduction bar, the five dimension rows ranked by how much they cost, and an actionable flag list — rescoring as you type. The panel never edits your text; it only reports on it.

Rows are ranked by deduction, not by score. Vocabulary at 78 looks fine next to Presentation at 84, but on a 25-point weight it costs three times as much. Every band carries an icon and a word as well as a colour, since colour-only encoding is precisely the accessibility failure this feature exists to catch.

Scores carry their scorer version

Scores are cached on the question rather than recomputed on every list render, and tagged with the cl_version that produced them. A row whose version differs from the running scorer is stale, not wrong — it renders as a neutral “needs rescoring” badge rather than a number.

Tiers are not the same scale

With wordfreq installed the scorer runs at full tier; without it, base. A base-tier score is not comparable to a full-tier one, which is exactly what the version tag prevents. After a glossary change or a version bump, run a rescore so the bank is internally consistent again.

Dismissing a flag

A flag you have considered and rejected can be dismissed with a reason, and stays dismissed. This matters because the alternative — flags you have learned to ignore — makes the whole panel noise after a few weeks.

Where it fits

Comprehension Load is one of three separate measurements kept deliberately unblended; see Difficulty & Calibration for the other two and for what their disagreements tell you.