Skip to content

fix(recommendations): spend a variety rung per completion, not per genre - #249

Merged
therealahall merged 1 commit into
mainfrom
fix/variety-ladder-per-item
Sep 18, 2026
Merged

therealahall merged 1 commit into
mainfrom
fix/variety-ladder-per-item

Conversation

@therealahall

Copy link
Copy Markdown
Owner

The variety ladder is meant to hold your five most recent completions, so the recommender stops marching through a genre you just finished. It advanced a rung for every genre cluster instead, so one title carrying six clusters filled all five rungs on its own and nothing finished before it ever reached the ladder.

Which cluster got the heaviest penalty fell out of sorting them alphabetically.

On a real library that put the top penalty on the broadest cluster in the vocabulary — one sitting on a tenth of the shelf — while the sharpest cluster from the same book fell off the end of the ladder and paid nothing at all. The next book in a series being actively read, the highest-scoring unread book on the shelf, sat 200 places down behind that penalty. The title that took its place was there because its genre sorted last in the alphabet.

A completion now owns one rung, and every cluster it reaches shares that rung. Five rungs span five completions, a cluster on two completions keeps the fresher one's rung, and a completion whose clusters are all on the ladder already spends none.

Verify

command make check, then recommend --type book --count 20 — the top of the list should reflect what you have actually been reading rather than which genre sorts first.

The variety ladder advanced a rung for every genre cluster it saw, so one finished title carrying six clusters filled all five rungs and nothing finished before it reached the ladder. Which cluster took the top penalty fell out of sorting them alphabetically.

On a library where the last book read was an adventure comedy fantasy post-apocalyptic litrpg, that put the heaviest penalty on the broadest cluster in the vocabulary, sitting on a tenth of the shelf, while the sharpest one fell off the ladder and paid nothing. The next book in a series being actively read sat 200 places down behind it.

A completion now owns one rung and every cluster it reaches shares that rung, so five rungs span five completions and no genre escapes on a technicality.
@therealahall
therealahall merged commit 4f24860 into main Sep 18, 2026
10 checks passed
@therealahall
therealahall deleted the fix/variety-ladder-per-item branch September 18, 2026 04:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant