Meet the “menu engineers” helping restaurants retool during the pandemic

In a changing dining economy, restaurants are turning to a small group of experts who specialize in the science of menu design.

Consider the restaurant menu. 

By design, menus aren’t meant to spark conversation. But as restaurants take drastic steps to weather COVID-19, they are revamping their menus in a big way — and it’s hard not to think twice about the piece of paper in your hands.

IHOP is ditching its 12-page behemoth for a much cleaner 2-page menu. McDonald’s has slashed several items off its all-day breakfast menu. Applebee’s, Taco Bell, and Subway are all slimming down their offerings.

These high-profile shifts reflect what’s happening on a much more local level across the industry: 28% of restaurateurs are shrinking their menus because of the pandemic. That number is so large that New York Magazine recently asked, “Is It Time To Get Rid of Menus For Good?” 

The underlying reasons for this are financial: Restaurants can’t bother with low-margin dishes. They have fewer employees on the payroll, so they want to be more efficient with a smaller set of meals. They’re prioritizing fewer — and cheaper — ingredients. 

But rewriting a menu is no simple task. Every inch of text, from the typeface down to the order of items, must be workshopped for maximum profitability. 

And when restaurants need help, they turn to a niche, little-known cadre of professional “menu engineers.” 

When restaurant menus are the family businesses

You’d be hard-pressed to find many people who have thought more about restaurant menus than Michele Benesch.

In 1968, her grandfather, Walter Baker, started Menu Men, Inc., a creative consultancy that specializes in infusing menus with fanciful designs.

At the time, says Benesch, the art of the menu was largely neglected. Sensing some room for disruption, Baker convinced restaurateurs to invest in fully customized designs.

Enjoying this article?

Get the Hustle’s 5-minute weekday roundup that keeps you hip to happenings in tech, business, and internet… things.

Benesch, with a variety of menus she’s worked on (Michele Benesch)

Benesch never expected to enter the family business. But she couldn’t fully escape it, either. When she went out to dinner as a kid in Miami, her father, who ran the company at the time, always pointed out little menu tricks. He’d ask her about the materials used (“Why did this client choose a parchment?”), the fonts, the placement of each item. 

“My whole life, I was being an apprentice for the job I never realized I wanted,” Benesch says. 

By the time Benesch took over the business in 2006, the menu engineering trade had begun to gain wider recognition, with a growing number of hospitality schools funding research into the psychology of menus. 

Consultants like Benesch realized they could use this research to get customers to spend more money.

Today, Benesch blends design, psychology research, and general food knowledge to build a more scientific menu. With a bit of tinkering, she can increase the odds of, say, a diner picking the highest-margin meal on the menu.

A few simple tricks engineers sometimes employ to optimize menus (The Hustle)

Considering how small restaurant profits are (typically 3% to 5%), the right menu can mean the difference between success and failure. 

When a Las Vegas restaurant recently hired Benesch to revamp its menu, she cut their 4-page layout down to a simple 2-page panel, upped the font size, did some dish repositioning, and cut loose some of the dishes that weren’t selling well.

The new menu led to a spending bump equivalent to $9 more per customer

The subtle power of a restaurant menu

An engineered menu won’t convince you to order something you normally wouldn’t. The point is to reach you at a moment of indecision. Torn between 3 different dishes? A well-designed menu is laid out so that your eyes gravitate toward the priciest dish.

Say you unfold a two-page menu. Your eyes will almost always follow the same reverse “Z” pattern: Top right, top left, bottom right, bottom left.

One-page menus are different; most people’s eyes land about ⅓ of the way down from the top, then move up, then scroll back all the way down.

The Hustle

In the hands of someone like Benesch, this knowledge can be a powerful revenue generation tool.

The prime real estate of a menu — that upper-right corner — is often reserved for high-margin dishes or supplemental items like appetizers.

Benesch will often draw more attention to these items by adding design details, like a box or a touch of bolding. Highlighting certain items, though, is a delicate dance: overdo it, and the whole menu just winds up looking chaotic.

Benesch relies on a few ground rules. When she’s working with a particular section — say, “Sandwiches” or “Appetizers” — with under 8 items, she’ll only add a box around 1 dish. If the category has between 10 and 12 items, she’ll bring that up to 2. 

A few of the myriad strategies employed by menu engineers like Benesch:

  • Using words like “signature,” “original,” and “famous” to make high-margin items more appealing.
  • Removing the dollar sign ($) from the dish prices. Studies show that customers spend more when the price is presented as a standalone number.
  • Enlisting the magic number for items per food category. At fast-food joints, it’s 6; for snazzier joints, it’s 7 appetizers/desserts and 10 main courses. 
  • Retooling design elements: menus with big fonts and no more than 20% white space improve the dining experience.

Another strategy: If you’ve noticed shops selling dishes that feel particularly over-the-top — say, the $1k “Golden Opulence Sundae” from Manhattan’s “Serendipity 3” dessert shop, or Ben & Jerry’s 20-scoop Vermonster — you might have stumbled across a “decoy item.” 

As Gregg Rapp, a prominent menu engineer who has worked in the industry for 38 years, explains it, decoy items are not actually designed to be ordered.

The goal, he says, is to “get dopamine kicked into your brain.” You probably can’t afford to buy a golden sundae, but its mere existence excites you about the rest of the menu.

Gregg Rapp has worked on hundreds of restaurant menus all across America (Gregg Rapp)

All of these design strategies generally serve one overarching goal: making a menu as accessible as possible.

Not every restaurant follows these principles.

Take the Cheesecake Factory, whose 21-page menu is the stuff of fast-food legend. Its menu is bulky, confusing, and riddled with a hellscape of fonts and garish-looking ads.

“What that menu does is it overwhelms a person,” Rapp says.

But even this menu mayhem is by design: unless you’re a Cheesecake Factory aficionado, you will usually turn to your servers for help — and servers can point you to higher-price items.

Can you engineer a smartphone menu?

In the before times, when Benesch walked into a new client’s restaurant, she could quickly identify what needed fixing. 

But COVID-19 has thrown even the most astute of menu engineers for a loop. Since the spring, she’s been commissioned by dozens of restaurants looking to refashion their menus to be more delivery-friendly.

The strategy of a delivery menu is different from that of a table menu: It must be easy to digest, short, and focused on items that keep well, rather than those that are the highest priced.

“Someone could make a beautiful beef wellington that could melt in your mouth,” Benesch says. “It’s not going to travel 12 city blocks and taste the same.”

COVID-19 has shifted the focus of menu engineers to delivery and takeout menus (Joe Raedle/Getty Images)

For menu engineers, the more dramatic change is the shifting medium.

Restaurants are investing heavily in QR codes. Instead of thinking of a customer unfurling a basic two-page menu, Benesch has to ask herself, “How will this look on a smartphone menu?”

That shift has called the fundamental truisms of menu design — like the trajectory of a diner’s eyeballs — into question.

Benesch has attempted to pivot quickly. She’s one of a handful of engineers already offering QR code menu designs. And when designing a smartphone menu, she has decided to cast aside some longtime no-nos. 

She used to avoid using multiple font sizes on the same menu page, but when she’s dealing with a QR code, she’ll just up the size of the item she wants to highlight by 2 point sizes. She’s adding more boxes and color differentials than usual — anything that will grab attention. 

“We go back to pictures, we go back to colors, we go back to a more stylish approach,” she says. “We’re in uncharted waters. The psychology of how you open up a menu no longer applies.”

Get the 5-minute roundup you’ll actually read in your inbox​

Business and tech news in 5 minutes or less​



How'd Bezos build a billion dollar empire?

In 1994, Jeff Bezos discovered a shocking stat: Internet usage grew 2,300% per year.

Data shows where markets are headed.

And that’s why we built Trends — to show you up-and-coming market opportunities about to explode. Interested?

[email-submission-form button-text="Join Free" include-trends-opt-in="true" success-url="" default-source="thehustleco" default-medium="home-exit-popup" default-campaign="home-page" form-id="exit-popup-general" optinmonster-conversion="true"]
<script type="text/javascript"> var onloadCallback = function() { grecaptcha.render('verify-your-humanity', { 'sitekey' : '6LdddrcZAAAAALyttpvOqiwQGwq5BNhgDz4tMQGE' }); }; function getCookieValue(a) { var b = document.cookie.match('(^|[^;]+)\\s*' + a + '\\s*=\\s*([^;]+)'); return b ? atob(decodeURIComponent(b.pop())) : ''; } function getCookie(name) { var cookieArr = document.cookie.split(";"); for(var i = 0; i < cookieArr.length; i++) { var cookiePair = cookieArr[i].split("="); if(name == cookiePair[0].trim()) { return decodeURIComponent(cookiePair[1]); } } return null; } function setHiddenFieldValue(wrappingDiv, searchParams, className, utmName, cookieName, defaultValue) { var el = wrappingDiv.getElementsByClassName(className)[0]; var existingVal = el.getAttribute('value'); if (utmName == 'ref') { var newVal = searchParams.get(utmName) || getCookie(cookieName); } else { var newVal = searchParams.get(utmName) || getCookieValue(cookieName); } if ((existingVal == null || existingVal == '' || existingVal == defaultValue) && (newVal != null && newVal != '')) { el.setAttribute('value', newVal); } } function setHiddenFieldValueFromUtm( wrappingDiv, searchParams, className, utmName, defaultValue ) { var el = wrappingDiv.getElementsByClassName(className)[0]; if (el != null) { var existingVal = el.getAttribute("value"); var newVal = searchParams.get(utmName); if (newVal != null && newVal != "") { el.setAttribute("value", newVal); } } } function initForm() { var wrappingDivs = document.getElementsByClassName('email-submission');,wrappingDiv => { var sp = new URLSearchParams(; setHiddenFieldValue(wrappingDiv, sp, 'funnel-source', 'utm_source', 'funnel_source', 'thehustleco'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-campaign', 'utm_campaign', 'funnel_campaign', 'home-page'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-medium', 'utm_medium', 'funnel_medium', 'home-exit-popup'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-referral', 'ref', 'funnel_referral', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-a', 'a', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-c', 'c', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-o', 'o', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-oc', 'oc', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-e', 'e', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-f', 'f', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-r', 'r', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-t', 't', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s1', 's1', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s2', 's2', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s3', 's3', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s4', 's4', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s5', 's5', ''); var error_message = getCookieValue('validate-email-message'); if (error_message && error_message.trim() != '') { var error = wrappingDiv.getElementsByClassName('funnel-error')[0]; var prev_email = getCookieValue('funnel_email'); error_message = prev_email + " is not valid. Please try again"; error.innerHTML = error_message; = ''; } }); if (false) { initCaptchaFormV2(); } } function initCaptchaFormV2() { var v3RecaptchaResponseEl = document.getElementById('recaptcha-response-v3'); v3RecaptchaResponseEl.parentNode.removeChild(v3RecaptchaResponseEl); var wrappingDiv = document.getElementById('email-submission'); var subForm = wrappingDiv.getElementsByClassName('email-submission')[0]; var captchaVersion = document.createElement('input'); captchaVersion.class = 'g-recaptcha hidden-input'; captchaVersion.type = 'hidden'; = 'g-recaptcha-response-v2'; captchaVersion.value = 'true'; subForm.appendChild(captchaVersion); var captchaEl = document.createElement('div'); = 'verify-your-humanity'; subForm.prepend(captchaEl); var captchaApiScriptEl = document.createElement('script'); captchaApiScriptEl.src = ''; captchaApiScriptEl.async = true; captchaApiScriptEl.defer = true; document.head.appendChild(captchaApiScriptEl); } window.addEventListener('DOMContentLoaded', (event) => { initForm(); }); if(typeof hp_interval == 'undefined') { var hp_interval = 0; var hp_ts = 0; var hp_try = 0; jQuery(document).ready(function ($) { hp_interval = setInterval(function(){ $('input.hp_ts').val(hp_ts); hp_ts += 1; if(hp_ts >= 180) { clearInterval(hp_interval); } },1000); $('.email-submission:not(.prevent-default)').submit(function (e) { var form = $(this); if(hp_ts < 3 && hp_try < 1) { e.preventDefault(); if (form.find('.email-form-submit-message').length < 1) { form.find('.email-form-wrap').after('<p class="email-form-submit-message" style="padding: 0em 1.5em;">Too fast! Are you a human? Try again please.</p>'); } hp_try += 1; hp_ts = 0; $('input.hp_try').val(hp_try); } }); }); } </script> <div class="email-signup" id=email-submission> <div class="funnel-error" style="display:none;"></div> <form class="email-submission " id="exit-popup-general" action="" method="post" autocomplete="email"> <div class="email-form-wrap"> <input class="funnel-source hidden-input" type="hidden" name="source" value="Revue newsletter"> <input class="funnel-campaign hidden-input" type="hidden" name="campaign" value="#DigitalDeepDive 👋"> <input class="funnel-medium hidden-input" type="hidden" name="medium" value="email"> <input class="funnel-form-id hidden-input" type="hidden" name="form-id" value="exit-popup-general"> <input class="funnel-referral hidden-input" type="hidden" name="referral_code"> <input class="funnel-fail-url hidden-input" type="hidden" name="fail_url" value=""> <input class="funnel-ip-country-wordpress hidden-input" type="hidden" name="ip_country_wordpress" value="US"> <input class="funnel-submission-url hidden-input" type="hidden" name="submission_url" value=""> <input class="funnel-a hidden-input" type="hidden" name="a" value=""> <input class="funnel-c hidden-input" type="hidden" name="c" value=""> <input class="funnel-o hidden-input" type="hidden" name="o" value=""> <input class="funnel-oc hidden-input" type="hidden" name="oc" value=""> <input class="funnel-e hidden-input" type="hidden" name="e" value=""> <input class="funnel-f hidden-input" type="hidden" name="f" value=""> <input class="funnel-r hidden-input" type="hidden" name="r" value=""> <input class="funnel-t hidden-input" type="hidden" name="t" value=""> <input class="funnel-s1 hidden-input" type="hidden" name="s1" value=""> <input class="funnel-s2 hidden-input" type="hidden" name="s2" value=""> <input class="funnel-s3 hidden-input" type="hidden" name="s3" value=""> <input class="funnel-s4 hidden-input" type="hidden" name="s4" value=""> <input class="funnel-s5 hidden-input" type="hidden" name="s5" value=""> <input class="funnel-success-url hidden-input" type="hidden" name="success_url" value=""> <input id="recaptcha-response-v3" class="g-recaptcha hidden-input" type="hidden" name="g-recaptcha-response" value=""> <div class="signup-icon" style="display:none;"> <svg width="24" viewBox="0 0 24 24" fill="none" xmlns=""><path d="M22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6Zm-2 0-8 5-8-5h16Zm0 12H4V8l8 5 8-5v10Z" fill="#848B92"></path></svg> </div> <input type="hidden" name="hp_ts" class="hp_ts" value="0"> <input type="hidden" name="hp_try" class="hp_try" value="0"> <input type="text" name="first_name" placeholder="Enter your name" value=""> <input class="signup-email" type="email" name="email" placeholder="Your email address" required autocomplete="email"> <input class="email-submit om-trigger-conversion" type="submit" value="Join Free"> </div> <div class="validate-mistake-emails-message" style="display:none;"></div> <div class="form-options" style="display:none"> <div class="form-options-wrap"> <div class="trends-opt-in"> <input id="trends_opt_in_email_submission" class="trends-opt-in-checkbox" type="checkbox" name="trends_opt_in"> <label for="trends_opt_in_email_submission" id="trends_opt_in_label" class="trends-opt-in-text">Yes, I’d like to receive additional marketing emails on hot business opportunities from Trends, by the Hustle.</label> </div> <div class="privacy-text"> <p>We're committed to your privacy. The Hustle uses the information you provide to contact you about our relevant content and services. You may unsubscribe from these communications at any time. For more information, check out our <a href="">Privacy Policy</a>.</p> </div> </div> </div> <div submit-success> <template type="amp-mustache"> <p class="c-message c-message--success">Thank you for subscribing.</p> </template> </div> <div submit-error> <template type="amp-mustache"> <p class="c-message c-message--failed">Your submission failed. Please try again!</p> </template> </div> </form> </div>