How we track new menu items
MenuLaunches is built on published sources, not guesswork. Every record you see has at least one source with a quote from the original announcement, linked on the page.
1. Collect
We monitor chain newsrooms, press wires, restaurant trade publications and consumer food media continuously. Sources with short feed windows are polled hourly — several publish a feed that only holds an hour or two of items, so a once-daily crawl would silently miss them. Every document is deduplicated by canonical URL and by a hash of its cleaned text, so an article is never processed twice.
2. Extract
Each document is read by a language model against a strict schema. It returns one candidate per menu item — a roundup naming a dozen chains yields a dozen candidates — with the chain as written, the item name, dates, price, markets, channels, category and flavour tags, plus a quote from the document that supports the launch.
Every quote is verified against the source text before anything is stored. If the quote is a paraphrase rather than a span we can find in the document, the candidate is discarded. This is the single strongest check we run against invented records.
3. Resolve and deduplicate
Chain names are matched against our own chain list; anything we cannot resolve confidently is queued for a human rather than guessed. Item names are normalised — marketing words removed, sizes separated, trademark symbols stripped — and compared against launches from the same chain within three weeks either side. Close matches merge and their sources combine; borderline matches create a separate record and a review task, because a wrong merge is destructive while a duplicate is a visible thing we can fix.
4. Score confidence
Confidence reflects how well a launch is attested. An official chain announcement or a press-wire release starts at 0.9; a single trade or consumer article at 0.65; a single social post at 0.55. Each additional independent source adds 0.1.
Independence is computed, not counted. Food media is heavily syndicated: one chain press release can become six articles in two days, all repeating the same sentences. We cluster sources that share a publisher, or that publish near-identical wording within 48 hours, and count each cluster once. Press pickup alone cannot push a record to the top of the scale — that requires a primary source or genuinely independent reporting.
| Confidence | What it means |
|---|---|
| 0.80 and above | Published. Well attested, usually with an official source. |
| 0.50 – 0.79 | Held for review. Real, but not yet corroborated enough to publish. |
| Below 0.50 | Not published. Kept on file in case better sources appear. |
5. What we refuse to publish
Rankings, reviews and taste tests. Recipes and copycat versions. Price promotions and coupons on items that already exist. Merchandise, toys, packaging and app changes. Rumours and leaks with no chain statement. Grocery products, even when co-branded with a chain. None of these are menu launches, and including them would make the dataset useless for the people who rely on it.
If a fact is not in a source, the field is left empty. We would rather show “not stated” than a plausible guess.
Launch types
| Type | Meaning |
|---|---|
| Limited-time offer | New and explicitly time-limited. |
| New permanent | New and added to the permanent menu. |
| Returning | Sold before and coming back. Returning always beats limited-time, even when the chain calls it new. |
| Seasonal | Tied to a named season or holiday and expected to recur. |
| Test market | A stated test in a limited number of locations. |
| Discontinued | Being removed from the menu. |
Source types
| Source | Weight |
|---|---|
| Chain newsroom | Primary — highest |
| Press wire | Primary — highest |
| Chain social | Supporting |
| Trade media | Secondary |
| Consumer media | Secondary |
| Menu listing | Supporting |
Corrections
If a record here is wrong, tell us and we will fix it. MenuLaunches is built by Tastewise, whose food and beverage AI is used by Kroger, Mars, PepsiCo, Nestlé and Kraft Heinz.