Loading the dataset…
Each brand is a row on the left. Follow its line to the company at the top of its ownership chain. Colour is the kind of owner. Tap or hover a brand for its branding signal, its full ownership chain, and its sources. Selecting a brand also highlights it on the map below.
The small marker is the brand's self-claimed home, taken from the brand's own page. The larger marker is the parent company's headquarters. Where the two are the same place, the marker sits on its own with no line.
Search by brand, owner, category, or place. Click a column heading to sort. Every ownership claim links to its two sources and carries the date it was checked.
A brand is in the dataset if its name, its packaging, or its own "our story" page leans on a farm, a family, a homestead, a place of origin, or a named founder. The signal has to be something the brand itself puts forward. A company that happens to be family-owned but never says so does not qualify, and a company that says "family-owned since" does qualify whether or not it still is.
The rule is deliberately blind to who owns the brand. The obvious alternative, picking "brands that look small but are not", would build the answer into the selection by excluding every brand that looks small and is small. Those brands are in here, and they are the reason the finding is worth anything.
Scope is the breakfast aisle only: cold cereal, granola, oatmeal and hot cereal, breakfast bars, and pancake and waffle mix. Syrup, yoghurt, coffee, and frozen waffles are breakfast, but they are not this aisle.
The dataset is a hand-curated CSV in the repository. A Python script validates it and cross-checks it against Wikidata. A second script turns it into one JSON file, which is committed. This page reads that file and makes no API calls of its own, so it keeps working regardless of what happens to any service it was built from.