Skip to content
SageChimpSageChimp
BooksGenresEventsBlogPricingChallenges
Sign InSign Up
BooksGenresThemesSeriesEventsForumsBlogBook ClubsChallengesPublishersDatasetsLaunch PadPricingAboutFeedbackContactTermsPrivacyDMCAGuidelines

SageChimp is 100% free for readers. Authors and publishers pay only for optional campaigns. Pricing 路 The pledge

Blog/My recommendation engine told Silence of the Lambs readers to try Matilda

My recommendation engine told Silence of the Lambs readers to try Matilda

r-s-curtis
r-s-curtisOfficial

September 12, 2026 路 4 min read 路 979 words

A few days ago someone looked up The Silence of the Lambs on SageChimp and the site offered six similar books. Top of the list, ahead of every thriller and every crime novel in a catalog of six thousand titles, sat Matilda.

Roald Dahl. Telekinetic child. Terrible aunt situation. Not obviously the next step after Hannibal Lecter.

I would like to tell you I caught this in testing. I did not. It surfaced because someone went digging through the comparable-titles data I publish as an open file, counted which books came up most often, and asked me why one children's novel was being suggested for two-thirds of the catalog.

The numbers were worse than the one example. The file had 33,584 pairs across 5,608 books, six suggestions each. Here is how often the top few appeared as somebody's recommendation:

Matilda was suggested for 3,650 books. The Night Circus, 3,617. The Desert Spear, 3,464. The Name of the Wind, 3,464. The Warded Man, 3,464. The Wise Man's Fear, 2,924.

Six books, carrying most of the recommendations on the entire site.

And it was not subtle once I dug into it. Four books, about as different from one another as four books can be:

The Silence of the Lambs, a serial killer thriller. A Study in Scarlet, the first Sherlock Holmes novel. The Pillars of the Earth, nine hundred pages about building a cathedral. Wool, a post-apocalyptic story set in an underground silo.

All four returned the identical six titles, in the identical order, led by Matilda.

Here is why, and it is duller than you would hope.

The similarity score used two inputs: how many genres two books shared, and how many themes they shared. Straightforward enough. The problem was that the themes table had nothing in it. Not a partial set. Zero of those 33,584 pairs shared a single theme, because no book in the catalog had a theme tag at all. Half the scoring input was absent.

That left genre overlap doing all the work, and my genres were broad buckets. "Fantasy" covers Pratchett and Erikson and Tolkien and a thousand others, which makes it nearly useless as a measure of whether two books resemble each other. Of those 33,584 pairs, 14,038 had a genre overlap score below 0.25. Weak matches, in other words, and the top of a weak list is not meaningfully better than the bottom of it.

Then came another revelation. The code was written to return six suggestions. Not "up to six." Six. When nothing scored well, it filled the remaining slots from whatever ranked highest overall, and the same handful of books ranked highest overall every single time. So a book with no good matches got the default six, and most books had no good matches.

What I keep turning over is that nothing about this looked broken. Every page loaded. Every list was full. No error appeared in any log. The system did precisely what it was built to do, and what it was built to do was wrong. If you had asked me that week whether book recommendations on SageChimp worked, I would have said yes, and I would have been looking at a page recommending Matilda to horror readers while I said it.

The fix came in three parts.

First, themes. I ran an enrichment pass to actually populate the table, and the site now carries forty themes with real coverage. Crime Investigation alone holds 222 books. That restored the missing half of the score.

Second, a quality floor. If the best candidate does not clear a threshold, the page now shows two recommendations, or one, or none. Wool currently offers a single suggestion. That looks thin, and I want it to look thin, because one honest match is worth more than one honest match plus five pieces of filler dressed up to look like the same thing.

Third, a cap on how often any one title can be recommended across the catalog. No book should sit on 3,650 lists. A penalty on over-used suggestions broke the gravity well without touching anything else.

The result, on the same pages:

The Silence of the Lambs now returns A Cat in the Manger, Broken Bones, La Sombra del Viento, Slay Ride and The Door with Seven Locks. Mysteries and thrillers, which is the correct neighbourhood.

The Pillars of the Earth returns historical fiction.

And my favorite of the lot: Orconomics, J. Zachary Pike's comic fantasy satire about the economics of monster-hunting, was tagged in my database as "literary-fiction" and nothing else. After enrichment it reads as high fantasy, epic fantasy, satire and humor, and its top recommendation is now Soul Music, a Discworld novel. Which is the answer. That is the book you hand someone who just finished Orconomics.

There is a wider point here, and it is the reason I am writing this rather than quietly patching it and moving on.

A recommendation list that always returns exactly six items is telling you something. The fixed number is the lie, not the individual titles. Every book on the internet has recommendations tied to it, and a great many of those lists are padded the same way mine was, because an empty space looks like a bug and six filled slots look like a working feature. Nobody complains about a list. People complain about a blank space.

I built SageChimp partially because I got tired of not being able to tell if enthusiasm about a book was real. Separating unpaid reviews from incentivized ones, saying "not enough data yet" instead of inventing a consensus, that is the entire premise of the site. So, there is a certain justice in getting caught doing the exact thing I built the place to expose, in a system I had not thought to check.

The recommendations are honest now. Some of them are also sparse, and I have made peace with that. If SageChimp does not know what you should read after a particular book, it is going to say so.

聽

book recommendationsbook discoveryrecommendation algorithmsopen datasagechimp
126 views

Comments (0)

You Might Also Enjoy

Hello, World

https://www.sagechimp.com/forums/general-discussion/welcome-to-sagechimp-lets-get-started

r-s-curtis 路 Mar 7

What I've Been Building: A SageChimp Update From the Founder

Since launch, I have been shipping fast. New features, new tools, and new ways to connect with the books and people you love. Here is everything that is live right now.

r-s-curtis 路 Mar 14

The Genre Problem Nobody Talks About

SageChimp now lets readers suggest genre corrections on any book page. Here is why clean genre data matters more than you think, and how the community keeps it that way.

r-s-curtis 路 Mar 18

Everyone Loved This Book... Can You Trust Modern Reviews

Last month I bought a novel with a 4.7-star average and eleven hundred reviews. The top review said they had stayed up u

r-s-curtis 路 Aug 15