1. Fix the frame before you collect anything
A benchmark compares like with like, so the first decision is what counts as like. A price segment, a city, and a definition of which businesses are inside it.
The frame has to stay still. If it moves between one reading and the next, any difference you measure describes your own sample rather than the market, and you will not be able to tell the two apart afterwards.
Write the frame down in one sentence and put it on the front of the result. If you cannot, you do not have one.
2. Choose the unit: the item, not the restaurant
Benchmark at the level of the individual menu item, with the price as printed. A restaurant-level average, calculated by averaging each restaurant first and then averaging those, discards most of the information and produces a number that responds to nothing.
The item-level dataset supports a median, a middle half and a range. The restaurant-level one supports an average of averages, which is a weaker claim wearing a similar coat.
3. Compare inside a section, never across the menu
This is where most attempts quietly break. A dish compared against the whole menu is being compared against courses, not against competitors. The same product priced as a starter and priced as a main course is two different products with two different prices, and pooling them produces a number that belongs to neither.
Group by the sections restaurants themselves print. If you invent your own sections, print the definition beside the table, because a group label that hides what is inside it cannot be checked by the reader.
4. Use the median, and state the spread
The median is the middle price: half the items cost less, half cost more. One extremely expensive dish moves an average a long way and moves a median hardly at all, and premium menus are full of such dishes.
A median alone is still not enough. Publish the middle half of the market beside it, so the reader can see whether the market is tight or wide. Two markets with the same median can be completely different places to price into.
5. Decide in advance what you will not publish
Set a floor before you see the results, not after. Below a handful of businesses, a statistic stops describing a market and starts describing individuals, and the temptation to publish it is strongest exactly when the number looks most interesting.
Mark the withheld rows in the table rather than deleting them. A reader who can see where the data stopped will trust the rows that remain.
6. Print the matching rule beside the number
If you compare a named dish across restaurants, the rule you used to decide that two dishes are the same dish determines the answer. A strict rule and a broad one can differ by a factor of three on the same data, and both are defensible.
Whichever you pick, print it next to the table. Otherwise the buyer cannot check the figure and you cannot defend it a month later.
What invalidates a benchmark
- Mixed sources. Delivery listings pooled with dine-in menus. Two different markets in one column.
- Inferred prices. Any item whose price was estimated rather than printed.
- A moving frame. Coverage that changed between readings without being stated.
- An unnamed denominator. A percentage with no stated base cannot be checked by anyone.
- Averages on skewed data. Almost every menu category is skewed.
MenuIndex produces this as a report for the Dubai premium segment, but the method above is worth applying whoever does the work. If you want to check whether the dataset covers your question, send it: we check the count before quoting.