How Food Listers documents global cuisine and ranks dishes on the map.
Mission
Food Listers is built to promote and share global cuisine. We believe food can bring people together, create
cultural understanding, and highlight the beauty of traditions outside our own. Our goal is to document the
world’s dishes in one place and make discovery easy through a map-first experience.
Data Sources
The base dish catalog was built by extracting and consolidating cuisine lists from Wikipedia at scale,
including pages like
https://en.wikipedia.org/wiki/List_of_Spanish_dishes
.
Records were deduplicated and cross-verified across sources to reduce errors, with internal manual QA checks
reporting error rates below 1% on sampled records.
After building the canonical list, we enriched rows by scraping structured and semi-structured food metadata
from public food references, including AtoZ World Food, TasteAtlas, and other comparable sites, then
normalized these fields into a single schema for ranking and mapping.
How Dishes Are Ranked
Each dish is ranked from a vote profile containing likes, neutral votes, and dislikes. These aggregates are
seeded from the initial dataset and continue to update as community voting data is incorporated.
Step 1: We convert vote sentiment to an NPS-style base score out of 10.
NPS = Like% - Dislike% Score = (NPS + 100) / 20
Step 2: We apply Bayesian averaging with vote count to reduce low-sample bias.
weighted = (v / (v + m)) * R + (m / (v + m)) * C
Where R is the dish score, v is vote count, C is the global mean
score, and m is the Bayesian prior weight.
This prevents dishes with very high scores but very low vote counts from dominating the ranking.
Step 3: We scale the Bayesian score to the production range and store it as
ranked_score (out of 10), then convert it to a 5-star value.
star_rating = ranked_score / 2
Final ordering is deterministic and sorts by higher ranked_score, then higher
TotalCount on ties.
What We Show on the Map
To create the interactive map, we process the full dataset into both a sidebar dataset and a map tileset.
| Step | Result |
| 1. Consolidated source records | 10,833 total dish records |
| 2. Deduplicate by location |
Many dishes share the same coordinates (often country-level origins). We keep the highest-ranked dish
as the primary map point and attach a count of additional dishes at that location.
|
| 3. Final map layer |
2,055 unique map points render on the map; all 10,833 dishes remain available in the sidebar and
filters.
|
Dish Categories
We group raw dish types into higher-level categories used in map filters. This keeps navigation readable while
preserving detail in the underlying taxonomy.
| Category Group | Sample Subcategories |
| Meat & Poultry Dishes | Beef Dish, Chicken Dish, Lamb Dish, Sausage, Barbecue |
| Seafood Dishes | Fish Dish, Crab Dish, Oyster Dish, Shrimp/Prawn Dish, Seafood |
| Rice, Noodles & Pasta | Rice Dish, Noodle Dish, Pasta |
| Pizza | Pizza |
| Sandwiches, Burgers & Wraps | Sandwich, Burger, Wrap, Hot Dog |
| Soups & Stews | Soup, Stew, Noodle Soup, Seafood Soup |
| Desserts & Sweets | Cake, Cookie, Pastry, Sweet Pie, Ice Cream |
| Bread & Flatbreads | Bread, Flatbread, Rye Bread, Corn Bread |
| Appetizers & Side Dishes | Appetizer, Side Dish, Cheese Dish |
| Dumplings & Savory Pastries | Dumplings, Savory Pie, Savory Pastry, Phyllo Pastry |
| Salads & Vegetable Dishes | Salad, Vegetable Dish, Vegan Dish, Bean Dish |
| Sauces, Dips & Condiments | Sauce, Dip, Salsa, Dressing, Relish |
| Street Food & Snacks | Street Food, Snack, Deep-fried Dish |
| Breakfast Dishes | Breakfast, Pancake, Egg Dish |
| Comfort Foods | Casserole, Porridge |
| Specialty & Traditional Foods | Technique, Beef Cut, Insect Dish, Snail Dish |
Dish Origin Assignment
Country origin is assigned by cross-verifying structured origin data across Wikipedia and Wikidata. Historical
entities (for example, “Russian Empire” or “Ming Dynasty”) are mapped to modern equivalent countries for
consistent filtering and map behavior.
When sources conflict, priority is given to structured Infobox-style data. In approximately 95% of records,
source agreement is direct.
Voting Integrity
As of February 18, 2026, the active corpus contains 366,364 validated votes across all 10,833 dishes in the
dataset. Total raw vote events logged across ingestion and community activity exceed 2 million.
The integrity layer uses rule-based filtering to identify and exclude invalid voting patterns, including bot
behavior, nationalist brigading, and statistically unreasonable rating activity. Rating impact can be weighted
by user trust signals so contributions from more reliable, knowledgeable profiles carry greater influence.