I set my dad a challenge: find me a documentary that’s on next weekend. I wanted to see how discoverable Clusterflick‘s filters were, and I’ll admit it was a bit contrived. He ignored the filters entirely, typed “documentary” into the search box, and got nothing back.
He wasn’t doing anything unusual. I do much the same thing myself. When I’m checking whether we’re picking up everything from a venue, I’ll spot an event on Eventbrite, copy the title and search for it, and it comes up empty because an Eventbrite title rarely matches the film’s title. When I’m just using the site to see a film a friend has mentioned, I search for it and get nothing because it isn’t on in the next seven days, even though it’s on the week after.
In all three cases the answer was in the data, but the site just wasn’t looking in the right place.
Fewer Films by Default
Clusterflick pulls listings from 400+ venues across London, and if you show all of it at once you get a wall: today that’s 1,820 movies (out of 2,044 events in total). So the default view is narrower: just movies (including shorts, double bills and marathons), at every venue, over the next seven days. Today that brings it down to 477.
A smaller grid is much easier to browse, but it comes with a cost when you go looking for something specific. The seven-day window becomes an invisible reason a search comes up empty.
Every Option, at a Price
The current filters are summarised at the top of the page, and clicking the summary opens an overlay where you can change them.
The overlay starts with quick selects like “near me today” and “this week”, followed by the common filters (title, event type, venue, date and time), each with a few presets such as “near me” or “this weekend”. Everything else is there too, one click further down.
👆 The filter overlay, with the less-used options expanded
The idea is that you can get any level of control you want, but the less-used filters take a little more effort to reach. It works reasonably well for people who open it, but my dad never did.
What Might Someone Type?
Those three searches, “documentary”, an Eventbrite event title and a film showing in a fortnight, are three different things typed into the same box. That made me come at the problem from the other end: rather than steering people towards the overlay, what might someone put into the search box, and could the site meet each of those with a suggestion?
The search box itself stays simple and still filters on film title, and the work happens when that query comes up short. When there are no results, Clusterflick tries other readings of what you typed, and if any of them would return something, it offers them as buttons with a count of what you’d get.
Four Ways to Read an Empty Result
Not every suggestion asks the same thing of you. Some take your query exactly as typed and just look for it somewhere else, while others give up something you asked for. The suggestions fall into four kinds, ordered by how much they cost you.
It’s a filter, not a title
“Documentary” is a genre, “IMAX” is a presentation format and “Mark Hamill” is an actor. None of them are film titles, but each matches a filter value, so the suggestion reads your query as that filter instead: Show Documentary films, or Show films starring Mark Hamill. This kind concedes nothing, because it’s your query exactly as you typed it, so it goes first.
👆 Searching “documentary” now offers the Documentary genre instead of showing an empty page
It’s also forgiving about how you type it; names are matched fuzzily, so “Mark Hammell” still finds him, and a query can match part of a longer value, so “IMAX” offers both “IMAX” and “IMAX 70mm“. Those are two separate offers with different counts, and you pick the one you meant.
Venues are deliberately left out. Their names are full of ordinary words (Rio, Castle, Everyman, Garden) that collide with film titles too often to be useful.
Right query, wrong field
This is the Eventbrite case. Venues often title a screening differently from the film, for example “Bar Trash presents” or a festival strand name (I wrote about cleaning those titles up in an earlier post). If your query finds nothing in film titles but does match the original venue title, the suggestion offers to Search original venue titles instead. The same applies to performance notes, so searching “Strobe” finds screenings where a venue has flagged strobe lighting.
The offer quotes back the text that actually matched, which shows your query was right and was just pointed at the wrong field. The query is only ever moved into an empty field. If you’d already typed something into the performance notes search yourself, overwriting it would lose your input without you noticing.
👆 Searching “Bar Trash presents” now offers to search original venue titles instead of showing an empty page
Did you mean…
“Inglorious Bastards” gets you Did you mean “Inglourious Basterds”?. This kind ranks below the others because it changes your words, so it only appears when the query as typed matches nothing, anywhere. If you’ve spelled a title correctly, you’ll never be offered a correction.
Ties turned out to be the normal case rather than the exception. “dummer” is one edit away from a whole run of titles through the word “summer” (“A Summer’s Tale”, “I Know What You Did Last Summer” and so on), and only two get offered. Alphabetical order was the obvious tie-break and the worst one, because it favoured whatever happened to start with a digit or an A. Instead, the film with the most screenings wins a tie, since a film showing across London all week is a better guess than one with a single late-night slot. If that’s level too, the soonest showing decides.
👆 Searching for a film title with a typo now offers to search with a corrected title instead of showing an empty page
Giving something up
This is the friend’s-recommendation case, and it’s the one I use most. You search for a film, it’s not on in the next seven days, and the suggestion offers Any date, along with when the next showing is.
Deciding which widening to offer first took the most thought. The simple approach would be to offer whichever widening returns the most results, but that goes wrong quickly. If you’ve got the subtitles filter on, dropping it will often free up the most screenings, so it would sit at the top, and it’s the one suggestion a subtitles user can’t act on. If you’ve narrowed to venues near you, dropping that might return more than dropping the date, but I’d guess most people would rather wait a week than cross London.
So the order is an editorial judgement. Date comes first, because “I want to see this film” rarely means “tonight or never”. Venues sit lower, because travelling further is a real cost. Accessibility comes last, is only ever offered on its own, and never gets any detail, because any detail would read as an argument for giving up a requirement. It’s listed at all only so that someone who can be flexible isn’t left guessing.
The typed query itself is never widened away. It’s the clearest statement of what you want on the whole page, so it gets moved to another field, never dropped.
👆 Searching for a movie not showing in the next 7 days now offers to widen the date window instead of showing an empty page
Counting Against the Real Data
Every count on every suggestion comes from probing. The code builds a candidate set of filters, runs it through the same filtering code the page uses, and counts what survives. That means the number on the button is the number you’ll get, and there’s no second copy of the filter logic to drift out of sync.
Candidates are tried in rounds, cheapest first: redirects and filter readings, then single widenings, then pairs. The search keeps going until it has enough offers, rather than stopping at the first round that finds something, because a cheap redirect and an expensive widening often point at entirely different films. There’s no third round. Relaxing three filters at once is a reset with extra steps, and there’s already a reset button.
The full logic is in suggest.ts if you want to see the details.
When There Are Results, Just Not Many
There’s a quieter version of the same problem. Sometimes a search does work, but the answer is narrower than it looks. You filter by a director, see one film, and assume that’s all there is, when three more are on next month.
For that there’s a separate notice, which states that the date window is hiding more films rather than offering a rescue. It only appears when the grid holds three films or fewer. That’s the point where the grid looks like the complete answer but isn’t. I checked this limit against every cast and crew filter in a live release: 71% show nothing at all (that’s the suggestions’ job), 27% show exactly one film, and under 1% show more than three. The limit keeps the notice off a grid that’s genuinely full, where it would just be noise.
👆 Searching for a director only shows a few movies in the next 7 days, but more over the next fortnight
Rough Edges
There’s still plenty I haven’t worked out, mostly in the overlay.
Venues are the hardest. There’s “near me” and a quick toggle for building a custom list, but I don’t yet know what people actually want here: set groupings, their own curated list, a map to search, etc.
Event types (TV, quizzes, comedy and so on) sit prominently in the overlay because of a time when I wasn’t confident in how events were classified. I am now, so that filter could probably move down and something more useful take its place.
Genre is the filter I’m most likely to keep buried, because I don’t think anyone opens the overlay to use it. The one unprompted search I watched was a genre, though. I think both are true: nobody goes looking for the genre filter, but people do type genres, and because the search box now catches them, keeping the filter out of the way is much safer than it would have been before.
Source format splits people. For some it’s the most important filter on the page (35mm, 70mm), and for others it’s noise. I’m not sure which group is bigger.
Exclusion isn’t possible. Filters only add, so you can’t say “no horror”, and I don’t know whether that’s worth supporting.
If you use Clusterflick, or you’ve wrestled with the same problems in your own filters, I’d like to hear how you’d answer any of these.
Desire Lines
Planners have a name for the dirt track worn across a lawn where people keep cutting the corner: a desire line. The paved route works fine, but nobody takes it, and the sensible response is to pave the track they’ve worn.
The filter overlay is the paved route, and it’s still there for anyone who wants it. The search box is where people actually walk. The filters haven’t changed, but they now appear at the point someone needs them, with a count showing they’ll get something back. My dad would have found his documentary.





