Breakfast aisle ownership

Who really owns the family farm on your cereal box?

Loading the dataset…

Summary

The tree

Brands on the left, their owners on the right

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 map

Where the brand says it is from, and where its owner sits

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.

The data

Every brand we checked

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.

Method

How this was built

How brands were chosen

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.

How ownership was verified

How the page works

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.

Limits

What this does not show