Ask Where the Thing You Want Already Is
After establishing that the enrichment everyone wanted could not help, the question changed from "how do we produce pictures?" to "do we already have pictures we are not showing?" That is a different query, and it is the one that ended the investigation.
Broken down by source, the answer was stark. Feeds coming directly from a publisher delivered an image with nearly every entry — a dozen of them at essentially one hundred percent, and a wire service in the nineties. Sources built from an aggregator's search query delivered images with almost none. The pictures were not missing from the store. They were sitting in it, on rows that never reached a screen.
Why the Good Rows Lose a Purely Chronological Shelf
The mechanism is volume, and it is worth stating as a general property rather than as a quirk of news. A broad search-query source publishes hundreds of items a day; a specialist publication publishes a few dozen. On a shelf ordered strictly by time, the loud source owns essentially the entire first screen — not because its articles are better or newer in any meaningful sense, but because it emits more per hour.
One shelf showed the shape perfectly: a dozen imageless rows from a query source on screen, while dozens of picture-bearing articles from two specialist publications sat on the same shelf, unseen, a scroll away. Chronological order is not neutral. It is a ranking function that weights by publication rate, and nobody chose it.
The Fix Costs Nothing
Because the material already exists, the correction is a render-time projection rather than a fetch: inside a recency window, let picture-bearing articles fill up to a floor of the visible region. Zero requests. No change to what enters the store, no change to what the fetch rounds do.
Two constraints keep it honest. The recency window stops it from promoting stale pictures — a shelf full of old images is a worse failure than a shelf of fresh headlines. And it reports how many rows it moved, so the shelf can say what it did rather than silently reordering.
The Other Half: Fix the Inputs Too
A render-time fix can only redistribute what exists, so the measurement also produced a shopping list. Several shelves turned out to have no picture-bearing source at all — every one of their sources was a search query. No projection can rescue those, and the answer is editorial rather than technical: add real publisher feeds, each one measured with the system's own parser before being added rather than assumed to work.