Skip to content

Levels ​

Two different things carry a CEFR level, and confusing them is the most common integration mistake.

Clip level ​

clip.level describes the clip as a whole: pace, vocabulary spread, how demanding it is to follow. It is useful for sorting and for showing a badge.

It is a poor filter. Every clip in the corpus contains words from several levels at once; in a sample of the English corpus, every clip contained A1 and A2 words, and nine in ten contained B2 words. Filtering a feed to one clip level throws away most of the corpus and buys a beginner almost nothing, because the words they need are inside the clips you just dropped.

Word level ​

word.level describes the word, and this is the one worth acting on. The learning unit is the word, not the clip: the same clip serves an A2 learner and a B2 learner, with a different word highlighted.

How the feed uses them ​

GET /feed takes a learner level, does not filter clips by it, and picks the focus word one step above it. A little above current level is where attention and gain are highest; at level is boring, far above is noise.

If you want the old behaviour of a level-filtered clip list, pass level to GET /words/{word}/clips, which filters clips by level because there the caller has already chosen the word.