{"id":12690,"date":"2026-09-24T09:00:00","date_gmt":"2026-09-24T09:00:00","guid":{"rendered":"https:\/\/gosnappy.io\/blog\/?p=12690"},"modified":"2026-09-12T11:10:41","modified_gmt":"2026-09-12T11:10:41","slug":"restaurant-menu-engineering-guide","status":"publish","type":"post","link":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/","title":{"rendered":"Menu Engineering for Restaurants: How to Find Your Stars, Plowhorses, Puzzles and Dogs"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"12690\" class=\"elementor elementor-12690 elementor-bc-flex-widget\" data-elementor-post-type=\"post\">\n\t\t\t\t<div class=\"elementor-element elementor-element-964659d0 e-con-boxed snappy-art e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"964659d0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5433ce73 elementor-widget elementor-widget-html\" data-id=\"5433ce73\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style id=\"snappy-v2-css\">\nhtml{scroll-behavior:smooth}\n#snappy-form{scroll-margin-top:110px}\n.snappy-art,.snappy-art .e-con,.snappy-art .e-con-inner,.snappy-art .elementor-widget{min-width:0}\n.snappy-art{max-width:100vw}\n.snappy-art .elementor-widget{max-width:100%}\n.snappy-art .elementor-widget-text-editor,.snappy-art .elementor-widget-html,.snappy-art .elementor-tab-content{overflow-wrap:anywhere}\n.snappy-sources,.snappy-sources *{overflow-wrap:anywhere;word-break:break-word}\n.snappy-prose p,.snappy-prose li,.snappy-lead p,.snappy-lead li{font-size:inherit;line-height:inherit;color:inherit}\n.snappy-hero img{width:100%;height:auto;aspect-ratio:1672\/941;object-fit:cover;border-radius:16px;display:block}\n.snappy-hero .elementor-widget-container,.snappy-hero figure{width:100%;margin:0}\n.snappy-eyebrow-wrap{text-align:center}\n.snappy-pill{display:inline-block;background:#FBEAF4;color:#8C1169;font:600 13px\/1 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:9px 16px;border-radius:999px}\n.snappy-h1 .elementor-heading-title{max-width:980px;margin:0 auto}\n.snappy-byline{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:0 0 22px;border-bottom:1px solid #E5E5EA}\n.snappy-by-author{display:flex;align-items:center;gap:12px}\n.snappy-art .snappy-avatar,.snappy-art img.snappy-avatar{border-radius:50%!important;object-fit:cover;flex:0 0 auto;display:inline-block;max-width:none}\n.snappy-avatar-mono{display:inline-flex;align-items:center;justify-content:center;background:#B5198A;color:#fff;font:600 16px Poppins,sans-serif;letter-spacing:.02em}\n.snappy-by-name{font:600 16px\/1.3 Poppins,sans-serif;color:#0F0F12;margin:0}\n.snappy-by-role{font:400 14px\/1.4 Inter,sans-serif;color:#6B6B73;margin:0}\n.snappy-by-meta{display:flex;gap:8px;align-items:center;font:500 14px\/1.4 Inter,sans-serif;color:#6B6B73;margin:0}\n.snappy-dot{color:#E5E5EA}\n.snappy-h2{margin-top:30px}\n.snappy-h2 .elementor-heading-title:before{content:\"\";display:block;width:48px;height:4px;border-radius:2px;background:#B5198A;margin:0 0 14px}\n.snappy-prose p,.snappy-lead p{margin:0 0 1.05em}\n.snappy-prose p:last-child,.snappy-lead p:last-child{margin-bottom:0}\n.snappy-prose ul,.snappy-prose ol{margin:0 0 1.05em;padding-left:1.3em}\n.snappy-prose li{margin-bottom:.45em}\n.snappy-prose strong,.snappy-lead strong{color:#0F0F12;font-weight:600}\n.snappy-art .elementor-widget-text-editor a{color:inherit;text-decoration:underline;text-decoration-color:rgba(181,25,138,.35);text-decoration-thickness:1px;text-underline-offset:3px}\n.snappy-art .elementor-widget-text-editor a:hover{color:#8C1169;text-decoration-color:#B5198A}\n.snappy-art .elementor-widget-text-editor a[href*=\"gosnappy.io\"]{color:#8C1169;font-weight:600;text-decoration-color:#B5198A}\n.snappy-key{background:#FBEAF4;border-left:4px solid #B5198A;border-radius:0 14px 14px 0;padding:22px 26px}\n.snappy-key .snappy-key-label{font:600 12px\/1 Poppins,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#8C1169;margin:0 0 14px}\n.snappy-key ul{margin:0;padding-left:20px}\n.snappy-key li{font:400 16px\/1.65 Inter,sans-serif;color:#0F0F12;margin-bottom:9px}\n.snappy-key li:last-child{margin-bottom:0}\n.snappy-key a{color:inherit;text-decoration:underline;text-decoration-color:rgba(181,25,138,.35);text-underline-offset:3px}\n.snappy-table-wrap{width:0;min-width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:6px 0 10px;border:1px solid #E5E5EA;border-radius:12px}\n.snappy-table{border-collapse:collapse;width:100%;min-width:560px;font-family:Inter,system-ui,sans-serif;font-size:15px;color:#0F0F12}\n.snappy-table th{background:#B5198A;color:#fff;font-weight:600;text-align:left;padding:13px 16px;border:0}\n.snappy-table td{padding:13px 16px;border:0;border-top:1px solid #E5E5EA;vertical-align:top;line-height:1.6}\n.snappy-table tbody tr.snappy-alt{background:#F7F7F9}\n.snappy-table th:first-child,.snappy-table td:first-child{position:sticky;left:0;z-index:1}\n.snappy-table td:first-child{background:#fff;font-weight:600;box-shadow:1px 0 0 #E5E5EA}\n.snappy-table tbody tr.snappy-alt td:first-child{background:#F7F7F9}\n.snappy-table th:first-child{background:#B5198A}\n.snappy-cta{border-radius:16px;padding:28px}\n.snappy-cta p{font:400 17px\/1.6 Inter,sans-serif;margin:0 0 18px}\n.snappy-cta .snappy-cta-h{font:600 23px\/1.3 Poppins,sans-serif;margin:0 0 8px}\n.snappy-cta-mid{background:#FBEAF4;border:1px solid rgba(181,25,138,.35)}\n.snappy-cta-mid .snappy-cta-h,.snappy-cta-mid p{color:#0F0F12}\n.snappy-btn{display:inline-block;background:#B5198A;color:#fff!important;font:600 16px\/1 Inter,sans-serif;padding:15px 22px;border-radius:10px;text-decoration:none!important;transition:background .15s,box-shadow .15s}\n.snappy-btn:hover{background:#8C1169;box-shadow:0 8px 24px rgba(181,25,138,.25)}\n.snappy-side{border:1px solid #E5E5EA;border-top:4px solid #B5198A;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 4px 12px rgba(15,15,18,.06)}\n.snappy-side-top{background:#fff;padding:20px 20px 10px}\n.snappy-side-eyebrow{font:600 12px\/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#8C1169;margin:0 0 10px}\n.snappy-side-h{font:600 20px\/1.3 Poppins,sans-serif;color:#0F0F12;margin:0 0 8px}\n.snappy-side-b{font:400 15px\/1.55 Inter,sans-serif;color:#3A3A40;margin:0}\n.snappy-side-form{padding:4px 8px 8px;min-height:420px}\n.snappy-formcard{border:2px solid #B5198A;border-radius:18px;padding:30px 30px 14px;background:#fff;box-shadow:0 12px 32px rgba(181,25,138,.10)}\n.snappy-formcard-eyebrow{font:600 12px\/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#8C1169;margin:0 0 10px}\n.snappy-formcard-h{font:600 26px\/1.25 Poppins,sans-serif;color:#0F0F12;margin:0 0 10px}\n.snappy-formcard-b{font:400 17px\/1.6 Inter,sans-serif;color:#3A3A40;margin:0 0 8px}\n.snappy-formcard-demo{font:500 14px\/1.6 Inter,sans-serif;color:#8C1169;background:#FBEAF4;border-radius:10px;padding:10px 14px;margin:12px 0 4px}\n.snappy-formcard-form{margin-top:10px;min-height:380px}\n.snappy-news{max-width:640px;margin:0 auto;padding:36px 32px 12px;border-top:1px solid #E5E5EA}\n.snappy-news-h{font:600 24px\/1.3 Poppins,sans-serif;color:#0F0F12;text-align:center;margin:0 0 18px}\n.snappy-author{display:grid;grid-template-columns:72px 1fr;gap:18px;background:#F7F7F9;border:1px solid #E5E5EA;border-radius:16px;padding:24px;margin-top:8px}\n.snappy-author-eyebrow{font:600 12px\/1 Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#8C1169;margin:0 0 8px}\n.snappy-author-name{font:600 20px\/1.3 Poppins,sans-serif;color:#0F0F12;margin:0}\n.snappy-author-role{font:600 14px\/1.4 Inter,sans-serif;color:#6B6B73;margin:2px 0 12px}\n.snappy-author-bio{font:400 15px\/1.65 Inter,sans-serif;color:#3A3A40;margin:0 0 12px}\n.snappy-author-link{font:600 15px\/1 Inter,sans-serif;color:#8C1169;text-decoration:none;border-bottom:2px solid #FBEAF4}\n.snappy-author-link:hover{color:#B5198A;border-bottom-color:#B5198A}\n.snappy-sources{font:400 14px\/1.7 Inter,sans-serif;color:#6B6B73}\n.snappy-sources h3{font:600 15px\/1.3 Poppins,sans-serif;color:#0F0F12;margin:0 0 8px}\n.snappy-sources ol,.snappy-sources ul{padding-left:20px;margin:0}\n.snappy-sources a{color:#6B6B73;text-decoration:underline;text-decoration-color:#E5E5EA;overflow-wrap:anywhere}\n.snappy-stickybar{display:none}\n.snappy-art .e-con.snappy-col{display:flex;flex-direction:column}\n@media(min-width:1025px){\n.snappy-art.snappy-row>.e-con-inner{flex-direction:row!important;align-items:stretch}\n.snappy-art .e-con.snappy-main-col{width:66.6667%!important;padding-right:40px!important}\n.snappy-art .e-con.snappy-side-col{width:33.3333%!important;padding-left:8px}\n.snappy-toc-inline{display:none!important}\n}\n@media(max-width:1024px){\n.snappy-art{padding-left:24px!important;padding-right:24px!important}\n.snappy-art.snappy-row>.e-con-inner{flex-direction:column!important}\n.snappy-art .e-con.snappy-main-col{width:100%!important;padding-right:0!important}\n.snappy-art .e-con.snappy-side-col{display:none!important}\n}\n@media(max-width:767px){\n.snappy-art{padding-left:18px!important;padding-right:18px!important}\n}\n@media(max-width:1024px){\n.snappy-stickybar{position:fixed;left:12px;right:12px;bottom:12px;z-index:9999;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0F0F12;color:#fff;border-radius:14px;padding:10px 10px 10px 16px;box-shadow:0 12px 32px rgba(15,15,18,.25);transform:translateY(160%);transition:transform .25s ease}\n.snappy-stickybar.on{transform:none}\nbody:has(#hubspot-messages-iframe-container) .snappy-stickybar{right:auto;max-width:calc(100% - 132px);padding:8px}\nbody:has(#hubspot-messages-iframe-container) .snappy-stickybar-t{display:none}\n.snappy-stickybar-t{font:500 14px\/1.3 Inter,sans-serif}\n.snappy-stickybar-btn{flex:0 0 auto;background:#B5198A;color:#fff!important;font:600 15px\/1 Inter,sans-serif;padding:12px 16px;border-radius:10px;text-decoration:none!important}\n}\n@media(max-width:767px){\n.snappy-cta,.snappy-formcard{padding:22px 20px}\n.snappy-formcard-h{font-size:22px}\n.snappy-key{padding:18px 20px}\n.snappy-byline{flex-direction:column;align-items:flex-start}\n.snappy-author{grid-template-columns:56px 1fr;padding:20px}\n.snappy-author .snappy-avatar{width:56px!important;height:56px!important}\n.snappy-news{padding:28px 4px 8px}\n.snappy-table{font-size:14px}\n}\n<\/style><script>(function(){if(document.getElementById(\"hs-script-loader\"))return;var s=document.createElement(\"script\");s.id=\"hs-script-loader\";s.async=true;s.defer=true;s.src=\"https:\/\/js-na1.hs-scripts.com\/8482141.js\";document.head.appendChild(s)})();<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cb7e4354 snappy-hero elementor-widget elementor-widget-image\" data-id=\"cb7e4354\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1672\" height=\"941\" src=\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero-v2.jpg\" class=\"attachment-full size-full wp-image-13060\" alt=\"Menu Engineering for Restaurants: How to Find Your Stars, Plowhorses, Puzzles and Dogs\" srcset=\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero-v2.jpg 1672w, https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero-v2-300x169.jpg 300w, https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero-v2-1024x576.jpg 1024w, https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero-v2-768x432.jpg 768w, https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero-v2-1536x864.jpg 1536w\" sizes=\"(max-width: 1672px) 100vw, 1672px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d995aed7 e-con-boxed snappy-art e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"d995aed7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-958d3a96 elementor-widget elementor-widget-html\" data-id=\"958d3a96\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-eyebrow-wrap\"><span class=\"snappy-pill\">Increase sales<\/span><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-960a10d7 snappy-h1 elementor-widget elementor-widget-heading\" data-id=\"960a10d7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Menu Engineering for Restaurants: How to Find Your Stars, Plowhorses, Puzzles and Dogs<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-49160789 e-con-boxed snappy-art e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"49160789\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fb8cfd04 elementor-widget elementor-widget-html\" data-id=\"fb8cfd04\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-byline\"><div class=\"snappy-by-author\"><img loading=\"lazy\" decoding=\"async\" class=\"snappy-avatar\" src=\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/wilson-wu-headshot.jpg\" alt=\"Wilson Wu\" width=\"48\" height=\"48\" loading=\"lazy\"><div><p class=\"snappy-by-name\">Wilson Wu<\/p><p class=\"snappy-by-role\">Chief Revenue Officer, Snappy<\/p><\/div><\/div><p class=\"snappy-by-meta\"><span>September 24, 2026<\/span><span class=\"snappy-dot\">&middot;<\/span><span>16 min read<\/span><\/p><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-73d3108a e-con-boxed snappy-art snappy-row e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"73d3108a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-ce79123d e-con-full snappy-col snappy-main-col e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"ce79123d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6677dd8e snappy-lead elementor-widget elementor-widget-text-editor\" data-id=\"6677dd8e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Menu engineering ranks every dish on two numbers, contribution margin in dollars and share of category sales, then sorts them into four quadrants: Stars (high margin, high popularity), Plowhorses (low margin, high popularity), Puzzles (high margin, low popularity) and Dogs (low margin, low popularity). Each quadrant gets a different action. You need a plate cost and a POS item sales report, and nothing else.<\/p>\n<p>The method comes from Michael Kasavana and Donald Smith, who published <em>Menu Engineering: A Practical Guide to Menu Analysis<\/em> in 1982 (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Menu_engineering\">Wikipedia<\/a>). It is more than forty years old, it costs nothing to run, and it is still the <a href=\"https:\/\/gosnappy.io\/blog\/8-must-know-strategies-to-increase-restaurant-margins-in-2025\/\">highest-leverage margin exercise<\/a> an independent operator can do in an afternoon. This guide shows the arithmetic with real numbers, then shows which reports to pull so you never count by hand.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ccb1f15f elementor-widget elementor-widget-html\" data-id=\"ccb1f15f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-key\"><p class=\"snappy-key-label\">Summary<\/p><ul>\n<li><strong>Two inputs only.<\/strong> Contribution margin and menu mix. Kasavana's own explainer for the American Hotel &amp; Lodging Educational Institute states that \"the contribution margin is calculated as the menu price minus the item's direct cost\" (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-one\">AHLEI<\/a>). Menu mix is an item's share of units sold inside its category.<\/li>\n<li><strong>Rank in dollars, not in food cost percentage.<\/strong> A 24% food cost item that sells six covers a week contributes less real money than a 38% food cost item that sells three hundred.<\/li>\n<li><strong>The four quadrants are Stars, Plowhorses, Puzzles and Dogs.<\/strong> The original method labels them \"stars (winners)\", \"plowhorses (marginal)\", \"puzzles (potential)\" and \"dogs (losers)\" (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-two\">AHLEI<\/a>). Other guides rename them; the axes never change.<\/li>\n<li><strong>Run it by category, not across the whole menu.<\/strong> Appetizers compete with appetizers. Comparing a $9 starter to a $39 steak produces nonsense.<\/li>\n<li><strong>The popularity line has a formula.<\/strong> An item counts as popular when its menu mix is \"greater than or equal to seventy percent of its equal menu share\" (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-two\">AHLEI<\/a>). Six items means 1\/6 times 70%, or 11.7%.<\/li>\n<li><strong>The pressure is real.<\/strong> Food and labour each account for approximately 33 cents of every dollar in sales, and <a href=\"https:\/\/gosnappy.io\/blog\/12-hidden-costs-of-running-a-restaurant\/\">total expenses<\/a> for an average restaurant jumped 36% between 2019 and 2026 (US data) (<a href=\"https:\/\/restaurant.org\/research-and-media\/research\/inflation\/\">National Restaurant Association<\/a>).<\/li>\n<li><strong>In Canada the margin has already gone.<\/strong> 41% of foodservice businesses are operating at a loss or just breaking even, up from 12% five years ago, and 46% of operators expect profitability to worsen in 2026 against 13% who expect improvement (<a href=\"https:\/\/www.restaurantscanada.org\/ceo-note\/workforce-challenges-are-growing-and-heres-how-were-responding\/\">Restaurants Canada<\/a>).<\/li>\n<li><strong>Re-run it quarterly, and again whenever a supplier price moves more than 10%.<\/strong> Any less often and you are pricing off last year's invoices.<\/li>\n<\/ul><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ff42ca34 elementor-hidden-desktop elementor-toc--minimized-on-tablet snappy-toc-inline elementor-widget elementor-widget-table-of-contents\" data-id=\"ff42ca34\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;marker_view&quot;:&quot;numbers&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t<p class=\"elementor-toc__header-title\">\n\t\t\t\tOn this page\t\t\t<\/p>\n\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__ff42ca34\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__ff42ca34\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\n\t\t\t\t\t<\/div>\n\t\t<div id=\"elementor-toc__ff42ca34\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-11b87ddb snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"11b87ddb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What Is Menu Engineering and Why Does It Move Margin Faster Than a Price Increase?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-997fcac3 snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"997fcac3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Menu engineering is the practice of scoring each dish on profitability and popularity at the same time, then treating each combination differently. Kasavana describes the analysis as centring on &#8220;three basic data elements: a) customer demand (number of covers sold), b) menu mix (sales preference scoring), and c) contribution margin (gross profit tabulation)&#8221; (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-one\">AHLEI<\/a>). Most operators already track one of the three. Very few plot them together, which is where the money hides.<\/p>\n<p>Here is why it beats an across-the-board price increase. Take a six-item entr\u00e9e category doing 1,000 covers in a period, with $25,970 in category revenue and $16,340 in total contribution margin (the worked numbers are in the table below). A 3% price increase across all six items produces about $779 (25,970 times 0.03), and every guest sees it, including the ones ordering the dish nobody wants.<\/p>\n<p>Now take two targeted moves instead. Lift the contribution margin on the highest-volume item by $2, through a small price move or a portion and sourcing change, and 320 covers produce $640. Move the 70 covers going to the Dog onto the Star, a $7 swing per cover ($20 minus $13), and that produces $490. Two dishes changed, $1,130 captured, and most guests never notice.<\/p>\n<p>The honest caveat: the second move assumes those 70 guests trade across rather than walk out. That is testable in one period, and cheaper than a menu-wide reprice.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0b10f4ff snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"0b10f4ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What Two Numbers Do You Need for Every Menu Item?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-cff29a66 snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"cff29a66\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Every menu item needs two numbers, both already on your POS and recipe cards: contribution margin in dollars, which is menu price minus plate cost, and menu mix as a percentage, the item&#8217;s share of units sold within its category. <strong>Contribution margin, in dollars.<\/strong> Menu price minus plate cost. Use dollars, not percentages. Percentages tell you how efficient a dish is. Dollars tell you what it actually deposits.<\/p>\n<p>Kasavana&#8217;s own example makes the point with two items. If &#8220;Chicken Bites has a food cost of $1.00 and a menu price of $3.00 it will have a 33% menu item cost,&#8221; while a &#8220;NY Strip Steak has a food cost of $2.50 and sells for $5.00, it will carry a 50% menu item cost&#8221; (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-two\">AHLEI<\/a>). The chicken looks better on the food cost report. But the chicken contributes $2.00 per sale (3.00 minus 1.00) and the steak contributes $2.50 (5.00 minus 2.50). The dish with the worse percentage puts more money in the till every time it sells, which is why menu engineering ranks on the dollar figure.<\/p>\n<p>Our <a href=\"https:\/\/gosnappy.io\/blog\/restaurant-food-cost-calculator\/\">restaurant food cost calculator<\/a> produces exactly this figure. You enter each ingredient&#8217;s pack price, pack quantity and amount used, and it prorates the cost automatically (a $12 bag of flour yielding 1,000g means 250g costs $3.00), then returns total plate cost, food cost percentage and gross profit per plate. That gross profit per plate is your contribution margin. Note what it excludes: labour, rent and overhead. Menu engineering is a dish-level tool, not a P&amp;L.<\/p>\n<p><strong>Menu mix, as a percentage.<\/strong> An item&#8217;s units sold divided by total units sold inside its category. Pull it from your POS item sales report for a representative period, typically four to eight weeks with the same number of weekends.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-59dc0ad0 snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"59dc0ad0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Where Do You Draw the Two Lines?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6e88a7e1 snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"6e88a7e1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The margin line is the category&#8217;s weighted average contribution margin, and the popularity line is typically 70% of an item&#8217;s equal share of the category. Every item is judged against these two thresholds, one for margin and one for popularity, and getting them wrong shifts the whole matrix.<\/p>\n<p><strong>The margin line<\/strong> is the weighted average contribution margin of the category. The original rule sets it as &#8220;Menu CM \/ Number of items sold&#8221; (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-two\">AHLEI<\/a>), meaning total contribution dollars divided by total units, not the simple average of the six item margins. A high-volume item pulls the line toward its own margin, which is what you want: the line reflects the money the category actually makes.<\/p>\n<p><strong>The popularity line<\/strong> has two common versions. The original version from Kasavana and Smith is the more forgiving 70% rule: an item is high in menu mix when its share is &#8220;greater than or equal to seventy percent of its equal menu share,&#8221; using the formula &#8220;1 \/ N (70%) where, N = number of menu items&#8221; (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-two\">AHLEI<\/a>). For six entr\u00e9es that is 1\/6, or 16.7%, times 0.7, which gives 11.7%. The stricter version many operators use is plain equal share, 16.7% for six items. The 70% discount exists because a menu never sells evenly, so a dish slightly under its equal share is still pulling its weight.<\/p>\n<p>Pick one and apply it consistently. In the worked example below both lines sort the six dishes the same way; on a long category with a bunched middle the choice matters, and the 70% rule is the one the method was built on.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b1dc7bc7 elementor-widget elementor-widget-html\" data-id=\"b1dc7bc7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-cta snappy-cta-mid\" data-snappy-cta=\"mid\"><p class=\"snappy-cta-h\">Which of your top sellers earns the least per plate?<\/p><p>Bring one category&#x27;s item sales and your plate costs, and we&#x27;ll map the margin and popularity lines with you, using your own numbers.<\/p><a class=\"snappy-btn\" href=\"#snappy-form\">Show me my dish rankings<\/a><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d8a92658 snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"d8a92658\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How Do You Build the Matrix: Stars, Plowhorses, Puzzles and Dogs?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-695888ca snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"695888ca\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Six entr\u00e9es, 1,000 covers, real arithmetic. The weighted average contribution margin works out to $16.34 ($16,340 divided by 1,000 units), the equal-share popularity line is 16.7% and the 70% rule line is 11.7%.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-631b8d90 elementor-widget elementor-widget-html\" data-id=\"631b8d90\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-table-wrap\"><table class=\"snappy-table\"><thead><tr><th>Item<\/th><th>Units<\/th><th>Menu mix<\/th><th>Price<\/th><th>Plate cost<\/th><th>Contribution margin<\/th><th>Quadrant<\/th><\/tr><\/thead><tbody><tr class=\"\"><td>Roast chicken<\/td><td>240<\/td><td>24.0%<\/td><td>$27<\/td><td>$7<\/td><td><strong>$20<\/strong><\/td><td><strong>Star<\/strong><\/td><\/tr><tr class=\"snappy-alt\"><td>House burger<\/td><td>320<\/td><td>32.0%<\/td><td>$21<\/td><td>$9<\/td><td>$12<\/td><td>Plowhorse<\/td><\/tr><tr class=\"\"><td>Fish and chips<\/td><td>180<\/td><td>18.0%<\/td><td>$24<\/td><td>$11<\/td><td>$13<\/td><td>Plowhorse<\/td><\/tr><tr class=\"snappy-alt\"><td>Steak frites<\/td><td>90<\/td><td>9.0%<\/td><td>$39<\/td><td>$14<\/td><td><strong>$25<\/strong><\/td><td>Puzzle<\/td><\/tr><tr class=\"\"><td>Braised lamb shank<\/td><td>100<\/td><td>10.0%<\/td><td>$34<\/td><td>$12<\/td><td><strong>$22<\/strong><\/td><td>Puzzle<\/td><\/tr><tr class=\"snappy-alt\"><td>Vegetable risotto<\/td><td>70<\/td><td>7.0%<\/td><td>$22<\/td><td>$9<\/td><td>$13<\/td><td>Dog<\/td><\/tr><\/tbody><\/table><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f2303019 snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"f2303019\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><em>Illustrative figures for demonstration. Category revenue $25,970; total contribution $16,340; weighted average contribution margin $16.34; equal-share popularity line 16.7%; 70% rule line 11.7%.<\/em><\/p>\n<p>Read it in two passes. First ask whether the item clears the popularity line. Then ask whether it clears $16.34 in margin. The burger sells the most and earns the least per plate, which makes it the most valuable thing on the list to fix. The risotto does neither, which makes it the easiest decision on the page.<\/p>\n<p>One item most operators get wrong: the steak frites. It looks like a winner because it carries the highest price and the fattest margin, but at 9% of units it is barely contributing. A Puzzle is not a success. It is a dish your guests are not choosing, for a reason you have not diagnosed yet.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-50268290 snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"50268290\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">What Do You Actually Do With Each Quadrant?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f9272d77 snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"f9272d77\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>The quadrant tells you the action. Kasavana&#8217;s short version is that &#8220;star items should be retained, plowhorse items repriced, puzzle items repositioned (on the menu), and dog items removed&#8221; (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-two\">AHLEI<\/a>). The mistake is treating all four as pricing problems, when only one of them is.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a2ba56e elementor-widget elementor-widget-html\" data-id=\"1a2ba56e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-table-wrap\"><table class=\"snappy-table\"><thead><tr><th>Quadrant<\/th><th>Profile<\/th><th>What it looks like<\/th><th>Do this<\/th><th>Do not do this<\/th><\/tr><\/thead><tbody><tr class=\"\"><td><strong>Star<\/strong><\/td><td>High margin, high popularity. Kasavana calls these \"winners\"<\/td><td>Roast chicken: 24.0% of units, $20 margin<\/td><td>Protect it. Lock the recipe, lock the supplier, lock the spec. Give it the best position on the menu and name it in staff briefings.<\/td><td>Do not reprice it casually. It is your volume anchor and the dish guests use to judge value.<\/td><\/tr><tr class=\"snappy-alt\"><td><strong>Plowhorse<\/strong><\/td><td>Low margin, high popularity. Kasavana calls these \"marginal\"<\/td><td>House burger: 32.0% of units, $12 margin<\/td><td>Engineer the cost, not the price first. Re-spec the protein, trim the garnish, tighten the portion, renegotiate the single largest ingredient. Then test a modest price move.<\/td><td>Do not delete it. Guests came for it, and volume is exactly what makes a margin fix worth doing.<\/td><\/tr><tr class=\"\"><td><strong>Puzzle<\/strong><\/td><td>High margin, low popularity. Kasavana calls these \"potential\"<\/td><td>Steak frites: 9.0% of units, $25 margin<\/td><td>Diagnose before you act. Rename it, move it to a visible position, add a photo on digital channels, brief servers to recommend it. Consider a smaller portion at a lower price point.<\/td><td>Do not raise the price. Low demand at the current price is the problem you are solving.<\/td><\/tr><tr class=\"snappy-alt\"><td><strong>Dog<\/strong><\/td><td>Low margin, low popularity. Kasavana calls these \"losers\"<\/td><td>Vegetable risotto: 7.0% of units, $13 margin<\/td><td>Cut it, unless it earns its place another way: a dietary requirement your guests need, a shared prep with a Star, or a dish that anchors a whole table's booking.<\/td><td>Do not keep it out of sentiment. Every line on a menu costs prep time, inventory and guest attention.<\/td><\/tr><\/tbody><\/table><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4cddb1a6 snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"4cddb1a6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Sources: quadrant definitions and labels per <a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-two\">AHLEI<\/a>; item figures are the illustrative worked example above.<\/p>\n<p>When a Plowhorse fix does turn into a pricing decision, work backward from a target rather than guessing. Our <a href=\"https:\/\/gosnappy.io\/blog\/restaurant-menu-price-calculator\/\">restaurant menu price calculator<\/a> uses menu price = item cost divided by target food cost percentage, and returns a pricing matrix at 25%, 28%, 30%, 33% and 35% so you can see the whole range before you commit. Run the burger&#8217;s $9 plate cost through it and pick the price your guests will accept, not the one the spreadsheet prefers.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-714ac656 snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"714ac656\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How Should You Redesign the Menu Once You Know the Answer?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f173d4ed snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"f173d4ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Redesigning the menu comes down to three changes, and all three are free: shorten the category, move the Stars and Puzzles into view, and update the digital menu, which can change the same day, before committing anything to print.<\/p>\n<p><strong>Shorten the category.<\/strong> Cutting a Dog does not just remove a low-margin dish, it removes a competing option. <a href=\"https:\/\/gosnappy.io\/blog\/what-restaurant-owners-can-learn-from-starbucks-menu-simplification-strategy\/\">Fewer items concentrates demand<\/a> onto the ones you want ordered, and shortens prep, ordering and waste.<\/p>\n<p><strong>Move the Stars and Puzzles up, and show them.<\/strong> Position is the cheapest change available, and imagery is the next cheapest. Kasavana notes that &#8220;research indicates that strategic use of high-quality photos can increase item sales by as much as 30%,&#8221; with the caveat that photos are &#8220;not appropriate for all operations&#8221; and should be limited to keep the presentation balanced (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-one\">AHLEI<\/a>). One photo on the Puzzle, not one on everything.<\/p>\n<p>Be honest about the evidence on placement, though. The Wikipedia entry on menu engineering states plainly that &#8220;to date, there is no empirical evidence on the efficacy of the sweet spots on menus&#8221; (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Menu_engineering\">Wikipedia<\/a>). Treat placement as a hypothesis to test against your own POS data next quarter, not as a law.<\/p>\n<p><strong>Change the digital menu first.<\/strong> Print costs money and takes weeks. Your <a href=\"https:\/\/gosnappy.io\/products\/online-ordering-delivery.html\">online ordering<\/a> menu and your <a href=\"https:\/\/gosnappy.io\/products\/self-serve-kiosk.html\">self-serve kiosk<\/a> can be re-ordered and renamed the same day, which makes them the fastest place to test a Puzzle before committing it to print. A digital menu is also the place where a photo costs nothing to add or remove, so test the imagery there before it goes to the printer. Snappy&#8217;s <a href=\"https:\/\/gosnappy.io\/products\/point-of-sale.html\">point of sale<\/a> describes &#8220;real-time menu synchronization across POS, online ordering, kiosk &amp; QR,&#8221; so the change lands in every channel at once.<\/p>\n<p>Do not run more than one change per dish per period. If you rename a Puzzle, move it and reprice it in the same week, you learn nothing about which one worked.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c3e24fa3 snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"c3e24fa3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">How Often Should You Re-Run the Analysis?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bdd43122 snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"bdd43122\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p><a href=\"https:\/\/gosnappy.io\/blog\/how-often-should-restaurants-update-menu\/\">Quarterly is the right default<\/a> for most single-location restaurants. That is frequent enough to catch supplier drift and seasonal shifts, and infrequent enough that each period carries a readable sample.<\/p>\n<p>Run it off-cycle in three cases. When a key ingredient&#8217;s cost moves more than about 10%, because plate cost is half the calculation and a protein spike can flip a Star to a Plowhorse without anything else changing. When you launch or retire items, because both lines shift the moment the item count changes. And at a seasonal turn, since a patio summer and a February Tuesday do not share a menu mix.<\/p>\n<p>The cost context argues for holding the discipline. Total expenses for an average restaurant rose 36% between 2019 and 2026 (US data) (<a href=\"https:\/\/restaurant.org\/research-and-media\/research\/inflation\/\">National Restaurant Association<\/a>), and Restaurants Canada&#8217;s CEO note cites an analysis by Professor Sylvain Charlebois that projects a net decline of approximately 4,000 restaurants across Canada in 2026, with independently owned establishments disproportionately affected (<a href=\"https:\/\/www.restaurantscanada.org\/ceo-note\/workforce-challenges-are-growing-and-heres-how-were-responding\/\">Restaurants Canada<\/a>). A menu priced against 2024 invoices is a slow leak.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e9c58c70 snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"e9c58c70\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Which POS Reports Give You the Data Without Manual Counting?<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0e76163d snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"0e76163d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>You need three reports, and any competent restaurant POS produces all three: item sales by quantity within each category, modifier-level detail on add-ons and substitutions, and a channel split across dine-in, online, kiosk and marketplace orders.<\/p>\n<p><strong>Item sales by quantity, filtered by category and date range.<\/strong> This is your menu mix. Insist on units sold, not revenue. Revenue rankings flatter expensive dishes and hide the volume items that actually drive the category.<\/p>\n<p><strong>Modifier-level detail.<\/strong> If half the burgers leave with a $2.50 add-on that costs $0.60, your real contribution margin is higher than the recipe card says: 160 add-ons at $1.90 each add $304 to the burger line, or $0.95 per burger sold. If a third get a free substitution that costs $1.80, it is lower.<\/p>\n<p><strong>Channel split.<\/strong> Dine-in, online, kiosk and marketplace mixes are rarely the same, and a delivery commission changes the margin on the same plate. Rank each channel separately.<\/p>\n<p>How you get them depends on your stack.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-05d1479e elementor-widget elementor-widget-html\" data-id=\"05d1479e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-table-wrap\"><table class=\"snappy-table\"><thead><tr><th>Approach<\/th><th>How the menu mix gets counted<\/th><th>How plate cost gets in<\/th><th>Where it breaks<\/th><th>Best fit<\/th><\/tr><\/thead><tbody><tr class=\"\"><td><strong>Paper tickets and a spreadsheet<\/strong><\/td><td>Tickets tallied by hand for a sample week<\/td><td>Typed in from recipe cards<\/td><td>Thin sample, lost modifiers, nobody repeats it next quarter<\/td><td>A one-category test before you have any reporting<\/td><\/tr><tr class=\"snappy-alt\"><td><strong>Generic POS export into a spreadsheet<\/strong><\/td><td>Item sales exported by quantity, filtered by category and date<\/td><td>Typed in per item, or from a costing tool like our food cost calculator<\/td><td>Exports come out in revenue order, modifiers sit in a separate report, online and kiosk orders never join<\/td><td>Single location, one channel, an owner comfortable in spreadsheets<\/td><\/tr><tr class=\"\"><td><strong>Separate menu-analysis or inventory software on top of the POS<\/strong><\/td><td>Pulled from the POS through an integration<\/td><td>Recipe costing kept inside the extra tool<\/td><td>One more subscription, one more login, an integration that breaks on every menu update<\/td><td>Multi-unit groups with a dedicated finance or purchasing person<\/td><\/tr><tr class=\"snappy-alt\"><td><strong>Snappy POS with online ordering, kiosk and QR on the same menu<\/strong><\/td><td>The POS reports sales, peak hours and labour analysis, with every channel on one menu<\/td><td>Plate cost from your recipe costing, using our food cost calculator or your own sheet<\/td><td>Plate costs still have to be maintained by someone; the POS does not cost recipes for you<\/td><td>Independents and small groups who want channel and location reporting from one system<\/td><\/tr><\/tbody><\/table><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-32fe00c9 snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"32fe00c9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Snappy&#8217;s <a href=\"https:\/\/gosnappy.io\/products\/point-of-sale.html\">point of sale<\/a> product page lists &#8220;enterprise-level reporting including sales, peak hours &amp; labour analysis,&#8221; access to &#8220;live sales, labour, and menu performance data,&#8221; and &#8220;multi-location reporting and analytics.&#8221; For multi-unit operators the point is comparability: the same six entr\u00e9es land in different quadrants at different locations, and that difference is usually a merchandising or training problem rather than a menu problem.<\/p>\n<p>If your current system cannot export item sales by quantity by category, that is the finding. Fix the reporting before you touch the menu.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-229cf088 snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"229cf088\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Frequently Asked Questions About Menu Engineering<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-29a0db3b elementor-widget elementor-widget-toggle\" data-id=\"29a0db3b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"toggle.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle\">\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-6981\" class=\"elementor-tab-title\" data-tab=\"1\" role=\"button\" aria-controls=\"elementor-tab-content-6981\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><svg class=\"e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><svg class=\"elementor-toggle-icon-opened e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">What is the difference between contribution margin and food cost percentage?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-6981\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"region\" aria-labelledby=\"elementor-tab-title-6981\"><p>Contribution margin is a dollar figure: &#8220;the menu price minus the item&#8217;s direct cost&#8221; (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-one\">AHLEI<\/a>). Food cost percentage is a ratio: plate cost divided by menu price. Menu engineering ranks on the dollar figure because dollars pay rent. A dish with a great percentage and no volume contributes almost nothing.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-6982\" class=\"elementor-tab-title\" data-tab=\"2\" role=\"button\" aria-controls=\"elementor-tab-content-6982\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><svg class=\"e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><svg class=\"elementor-toggle-icon-opened e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Should I use the 70% rule or equal share for the popularity line?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-6982\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"region\" aria-labelledby=\"elementor-tab-title-6982\"><p>The original method uses 70% of equal share, so six items gives 11.7% rather than 16.7% (<a href=\"https:\/\/ahlei.servsafebrands.com\/resources-overview\/news-and-insights\/the-power-of-menu-engineering-part-two\">AHLEI<\/a>). Equal share is stricter and pushes more dishes into the Puzzle and Dog quadrants. Either works if you apply it to every category the same way; the 70% rule is the safer default on a long category.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-6983\" class=\"elementor-tab-title\" data-tab=\"3\" role=\"button\" aria-controls=\"elementor-tab-content-6983\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><svg class=\"e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><svg class=\"elementor-toggle-icon-opened e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">How many weeks of sales data do I need?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-6983\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"region\" aria-labelledby=\"elementor-tab-title-6983\"><p>Four to eight weeks for most restaurants, covering an equal number of weekends and weekdays and avoiding holidays. If a category runs fewer than about 200 covers in that window, extend the period rather than accept a thin sample.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-6984\" class=\"elementor-tab-title\" data-tab=\"4\" role=\"button\" aria-controls=\"elementor-tab-content-6984\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><svg class=\"e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><svg class=\"elementor-toggle-icon-opened e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Should I run menu engineering across the whole menu or by category?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-6984\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"region\" aria-labelledby=\"elementor-tab-title-6984\"><p>By category, always. Appetizers, entr\u00e9es, desserts and drinks have structurally different margins and volumes, so a single ranking puts every entr\u00e9e above every appetizer and tells you nothing. Both lines are calculated inside the category.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t<div class=\"elementor-toggle-item\">\n\t\t\t\t\t<h3 id=\"elementor-tab-title-6985\" class=\"elementor-tab-title\" data-tab=\"5\" role=\"button\" aria-controls=\"elementor-tab-content-6985\" aria-expanded=\"false\">\n\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon elementor-toggle-icon-left\" aria-hidden=\"true\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-closed\"><svg class=\"e-font-icon-svg e-fas-plus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t<span class=\"elementor-toggle-icon-opened\"><svg class=\"elementor-toggle-icon-opened e-font-icon-svg e-fas-minus\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M416 208H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"><\/path><\/svg><\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t\t\t\t\t<a class=\"elementor-toggle-title\" tabindex=\"0\">Does menu engineering work for a delivery-heavy restaurant?<\/a>\n\t\t\t\t\t<\/h3>\n\n\t\t\t\t\t<div id=\"elementor-tab-content-6985\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"region\" aria-labelledby=\"elementor-tab-title-6985\"><p>Yes, with one adjustment. Subtract any third-party commission from the menu price before calculating contribution margin, because the same dish carries a different margin on a marketplace order than on a dine-in cover. Then rank each channel separately, since menu mix on a delivery app rarely matches the dining room.<\/p><\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6a10ea74 snappy-h2 elementor-widget elementor-widget-heading\" data-id=\"6a10ea74\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">The Short Version<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f7280a8 snappy-prose elementor-widget elementor-widget-text-editor\" data-id=\"8f7280a8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Do not attempt the whole menu. Pick the category with the most covers, pull eight weeks of item sales, cost the plates, draw the two lines, and act on one dish per quadrant. That is an afternoon of work against a margin that 41% of Canadian foodservice businesses no longer have (<a href=\"https:\/\/www.restaurantscanada.org\/ceo-note\/workforce-challenges-are-growing-and-heres-how-were-responding\/\">Restaurants Canada<\/a>).<\/p>\n<p>The framework is public, it is forty-plus years old, and no vendor owns it. What differs between systems is whether the item, modifier and channel reports come out clean enough to run it without rebuilding a spreadsheet every quarter.<\/p>\n<p>To see what sales, peak hours and multi-location reporting look like in a system built for restaurants, <a href=\"https:\/\/gosnappy.io\/contact-us.html\">talk to our team<\/a>.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a707477c elementor-widget elementor-widget-html\" data-id=\"a707477c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-formcard\" id=\"snappy-form\" data-snappy-cta=\"end\"><p class=\"snappy-formcard-eyebrow\">Book a walkthrough<\/p><p class=\"snappy-formcard-h\">Want to run this every quarter without rebuilding a spreadsheet?<\/p><p class=\"snappy-formcard-b\">Walk through your own item sales and plate costs with our team, see the reports a system built for restaurants can pull without manual counting, and decide for yourself.<\/p><div class=\"snappy-formcard-form\" id=\"hsf-19-en\"><\/div><\/div><script charset=\"utf-8\" src=\"https:\/\/js.hsforms.net\/forms\/embed\/v2.js\"><\/script><script>(function r(n){if(window.hbspt&&hbspt.forms){hbspt.forms.create({region:\"na1\",portalId:\"8482141\",formId:\"e3772497-23f9-486f-9b9e-4372a70cc886\",target:\"#hsf-19-en\"})}else if(n<120){setTimeout(function(){r(n+1)},150)}})(0);<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bcab12ed elementor-widget elementor-widget-html\" data-id=\"bcab12ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-author\"><img loading=\"lazy\" decoding=\"async\" class=\"snappy-avatar\" src=\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/wilson-wu-headshot.jpg\" alt=\"Wilson Wu\" width=\"72\" height=\"72\" loading=\"lazy\"><div><p class=\"snappy-author-eyebrow\">Written by<\/p><p class=\"snappy-author-name\">Wilson Wu<\/p><p class=\"snappy-author-role\">Chief Revenue Officer, Snappy<\/p><p class=\"snappy-author-bio\">Wilson Wu is Chief Revenue Officer at Snappy, the restaurant technology company, and is based in Boston. His first job was in a restaurant kitchen, and he has spent his career since at the intersection of hospitality and software, working with operators across Canada on the systems their service runs on. He also builds the technology he writes about. His engineering work includes a per-location customer service agent that answers guests with a restaurant&#x27;s real hours, menu and prices, deployed with independent restaurants, and a document-extraction model that reads supplier invoices and matches invoice numbers against what is owed. He writes here about what changes on a busy service: ordering, payments, loyalty, the phone, and the Canadian rules behind them. He holds an MBA from Duke University and a Master of Science in Computer Science from Georgia Tech.<\/p><a class=\"snappy-author-link\" href=\"https:\/\/www.linkedin.com\/in\/wilson1wu\/\" rel=\"author noopener\" target=\"_blank\">Connect on LinkedIn<\/a><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f71f4a3b elementor-widget elementor-widget-html\" data-id=\"f71f4a3b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-stickybar\" id=\"snappy-stickybar\"><span class=\"snappy-stickybar-t\">See it in your restaurant<\/span><a class=\"snappy-stickybar-btn\" href=\"#snappy-form\" data-snappy-cta=\"sticky\">Book a demo<\/a><\/div><script>(function(){var b=document.getElementById(\"snappy-stickybar\"),f=document.getElementById(\"snappy-form\");if(!b||!f)return;var fv=false;function u(){b.classList.toggle(\"on\",window.scrollY>700&&!fv)}window.addEventListener(\"scroll\",u,{passive:true});if(\"IntersectionObserver\" in window){new IntersectionObserver(function(e){fv=e[0].isIntersecting;u()}).observe(f)}u()})();<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6d18537b e-con-full snappy-col snappy-side-col elementor-hidden-tablet elementor-hidden-mobile e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-child\" data-id=\"6d18537b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-39b91d24 elementor-widget elementor-widget-html\" data-id=\"39b91d24\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-side\" data-snappy-cta=\"side\"><div class=\"snappy-side-top\"><p class=\"snappy-side-eyebrow\">No-obligation walkthrough<\/p><p class=\"snappy-side-h\">Know Which Dishes Are Losing You Money<\/p><p class=\"snappy-side-b\">See your item sales and plate costs mapped onto the four quadrants, on a call built around your own menu.<\/p><\/div><div class=\"snappy-side-form\"><script src=\"https:\/\/js.hsforms.net\/forms\/embed\/8482141.js\" defer><\/script><div class=\"hs-form-frame\" data-region=\"na1\" data-form-id=\"523da2d0-fa98-49fb-8f55-065f55c2edb9\" data-portal-id=\"8482141\"><\/div><\/div><\/div>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e6ac94f2 elementor-toc--minimized-on-tablet elementor-widget elementor-widget-table-of-contents\" data-id=\"e6ac94f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;headings_by_tags&quot;:[&quot;h2&quot;],&quot;marker_view&quot;:&quot;numbers&quot;,&quot;sticky&quot;:&quot;top&quot;,&quot;sticky_offset&quot;:110,&quot;sticky_parent&quot;:&quot;yes&quot;,&quot;exclude_headings_by_selector&quot;:[],&quot;no_headings_message&quot;:&quot;No headings were found on this page.&quot;,&quot;minimize_box&quot;:&quot;yes&quot;,&quot;minimized_on&quot;:&quot;tablet&quot;,&quot;hierarchical_view&quot;:&quot;yes&quot;,&quot;min_height&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;min_height_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;sticky_on&quot;:[&quot;desktop&quot;,&quot;tablet&quot;,&quot;mobile&quot;],&quot;sticky_effects_offset&quot;:0,&quot;sticky_anchor_link_offset&quot;:0}\" data-widget_type=\"table-of-contents.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-toc__header\">\n\t\t\t<p class=\"elementor-toc__header-title\">\n\t\t\t\tOn this page\t\t\t<\/p>\n\t\t\t\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--expand\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__e6ac94f2\" aria-expanded=\"true\" aria-label=\"Open table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-down\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z\"><\/path><\/svg><\/div>\n\t\t\t\t<div class=\"elementor-toc__toggle-button elementor-toc__toggle-button--collapse\" role=\"button\" tabindex=\"0\" aria-controls=\"elementor-toc__e6ac94f2\" aria-expanded=\"true\" aria-label=\"Close table of contents\"><svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-chevron-up\" viewBox=\"0 0 448 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z\"><\/path><\/svg><\/div>\n\t\t\t\t\t<\/div>\n\t\t<div id=\"elementor-toc__e6ac94f2\" class=\"elementor-toc__body\">\n\t\t\t<div class=\"elementor-toc__spinner-container\">\n\t\t\t\t<svg class=\"elementor-toc__spinner eicon-animation-spin e-font-icon-svg e-eicon-loading\" aria-hidden=\"true\" viewBox=\"0 0 1000 1000\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M500 975V858C696 858 858 696 858 500S696 142 500 142 142 304 142 500H25C25 237 238 25 500 25S975 237 975 500 763 975 500 975Z\"><\/path><\/svg>\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-236a7456 e-con-boxed snappy-art e-flex wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no e-con e-parent\" data-id=\"236a7456\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-78fd9b72 elementor-widget elementor-widget-html\" data-id=\"78fd9b72\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div class=\"snappy-news\"><p class=\"snappy-news-h\">Get The Latest Restaurant Data, Trends &amp; Tips<\/p><div id=\"hsn-19-en\"><\/div><\/div><script>(function r(n){if(window.hbspt&&hbspt.forms){hbspt.forms.create({region:\"na1\",portalId:\"8482141\",formId:\"1f07a5de-4958-4b48-a370-e0e1b24a97a3\",target:\"#hsn-19-en\"})}else if(n<120){setTimeout(function(){r(n+1)},150)}})(0);<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Menu engineering ranks every dish on two numbers, contribution margin in dollars and share of category sales, then sorts them into four quadrants: Stars (high margin, high popularity), Plowhorses (low margin, high popularity), Puzzles (high margin, low popularity) and Dogs (low margin, low popularit<\/p>\n","protected":false},"author":4,"featured_media":12689,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70],"tags":[],"taxonomy\/team":[],"class_list":["post-12690","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-finance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Menu Engineering for Restaurants: Stars, Plowhorses, Dogs<\/title>\n<meta name=\"description\" content=\"Rank every dish by contribution margin and popularity, build the four-quadrant matrix, act on each one. Worked example plus the POS reports you need.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Menu Engineering for Restaurants: Stars, Plowhorses, Dogs\" \/>\n<meta property=\"og:description\" content=\"Rank every dish by contribution margin and popularity, build the four-quadrant matrix, act on each one. Worked example plus the POS reports you need.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/\" \/>\n<meta property=\"og:site_name\" content=\"Snappy\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-24T09:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"576\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Wilson Wu\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wilson Wu\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/\"},\"author\":{\"name\":\"Wilson Wu\",\"@id\":\"https:\/\/gosnappy.io\/blog\/#\/schema\/person\/77fb3f6aeef63fc72f704a16faab7fb6\"},\"headline\":\"Menu Engineering for Restaurants: How to Find Your Stars, Plowhorses, Puzzles and Dogs\",\"datePublished\":\"2026-09-24T09:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/\"},\"wordCount\":3059,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg\",\"articleSection\":[\"Finance\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#respond\"]}]},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/\",\"url\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/\",\"name\":\"Menu Engineering for Restaurants: Stars, Plowhorses, Dogs\",\"isPartOf\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg\",\"datePublished\":\"2026-09-24T09:00:00+00:00\",\"description\":\"Rank every dish by contribution margin and popularity, build the four-quadrant matrix, act on each one. Worked example plus the POS reports you need.\",\"breadcrumb\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-c97eb128c011b\"},{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-99321683632cc\"},{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-be70587a966ab\"},{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-8863ad5f8dae1\"},{\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-f217d758c02ab\"}],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#primaryimage\",\"url\":\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg\",\"contentUrl\":\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg\",\"width\":1024,\"height\":576,\"caption\":\"Menu Engineering for Restaurants: How to Find Your Stars, Plowhorses, Puzzles and Dogs\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/gosnappy.io\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Menu Engineering for Restaurants: How to Find Your Stars, Plowhorses, Puzzles and Dogs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/gosnappy.io\/blog\/#website\",\"url\":\"https:\/\/gosnappy.io\/blog\/\",\"name\":\"Snappy\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/gosnappy.io\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/gosnappy.io\/blog\/#organization\",\"name\":\"Snappy\",\"url\":\"https:\/\/gosnappy.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gosnappy.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2024\/03\/Snappy-Purple-Full-Logo2x-p-500.png\",\"contentUrl\":\"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2024\/03\/Snappy-Purple-Full-Logo2x-p-500.png\",\"width\":500,\"height\":160,\"caption\":\"Snappy\"},\"image\":{\"@id\":\"https:\/\/gosnappy.io\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.instagram.com\/gosnappy.io\/\",\"https:\/\/www.linkedin.com\/company\/gosnappyio\/\",\"http:\/\/www.tiktok.com\/@snappyinnovations\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/gosnappy.io\/blog\/#\/schema\/person\/77fb3f6aeef63fc72f704a16faab7fb6\",\"name\":\"Wilson Wu\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/gosnappy.io\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1d17ab988a248c5a03ba09005b4d2ff9f2f49cce3302a3408bc2a16058f67f50?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1d17ab988a248c5a03ba09005b4d2ff9f2f49cce3302a3408bc2a16058f67f50?s=96&d=mm&r=g\",\"caption\":\"Wilson Wu\"},\"description\":\"Wilson Wu is Chief Revenue Officer at Snappy, the restaurant technology company, and is based in Boston. His first job was in a restaurant kitchen, and he has spent his career since at the intersection of hospitality and software, working with operators across Canada on the systems their service runs on. He also builds the technology he writes about. His engineering work includes a per-location customer service agent that answers guests with a restaurant's real hours, menu and prices, deployed with independent restaurants, and a document-extraction model that reads supplier invoices and matches invoice numbers against what is owed. He writes here about what changes on a busy service: ordering, payments, loyalty, the phone, and the Canadian rules behind them. He holds an MBA from Duke University and a Master of Science in Computer Science from Georgia Tech.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/wilson1wu\/\"]},{\"@type\":\"Question\",\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-c97eb128c011b\",\"position\":1,\"url\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-c97eb128c011b\",\"name\":\"What is the difference between contribution margin and food cost percentage?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Contribution margin is a dollar figure: \\\"the menu price minus the item's direct cost\\\" (AHLEI). Food cost percentage is a ratio: plate cost divided by menu price. Menu engineering ranks on the dollar figure because dollars pay rent. A dish with a great percentage and no volume contributes almost nothing.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-99321683632cc\",\"position\":2,\"url\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-99321683632cc\",\"name\":\"Should I use the 70% rule or equal share for the popularity line?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The original method uses 70% of equal share, so six items gives 11.7% rather than 16.7% (AHLEI). Equal share is stricter and pushes more dishes into the Puzzle and Dog quadrants. Either works if you apply it to every category the same way; the 70% rule is the safer default on a long category.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-be70587a966ab\",\"position\":3,\"url\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-be70587a966ab\",\"name\":\"How many weeks of sales data do I need?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Four to eight weeks for most restaurants, covering an equal number of weekends and weekdays and avoiding holidays. If a category runs fewer than about 200 covers in that window, extend the period rather than accept a thin sample.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-8863ad5f8dae1\",\"position\":4,\"url\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-8863ad5f8dae1\",\"name\":\"Should I run menu engineering across the whole menu or by category?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"By category, always. Appetizers, entr\u00e9es, desserts and drinks have structurally different margins and volumes, so a single ranking puts every entr\u00e9e above every appetizer and tells you nothing. Both lines are calculated inside the category.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-f217d758c02ab\",\"position\":5,\"url\":\"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-f217d758c02ab\",\"name\":\"Does menu engineering work for a delivery-heavy restaurant?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes, with one adjustment. Subtract any third-party commission from the menu price before calculating contribution margin, because the same dish carries a different margin on a marketplace order than on a dine-in cover. Then rank each channel separately, since menu mix on a delivery app rarely matches the dining room.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Menu Engineering for Restaurants: Stars, Plowhorses, Dogs","description":"Rank every dish by contribution margin and popularity, build the four-quadrant matrix, act on each one. Worked example plus the POS reports you need.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/","og_locale":"en_US","og_type":"article","og_title":"Menu Engineering for Restaurants: Stars, Plowhorses, Dogs","og_description":"Rank every dish by contribution margin and popularity, build the four-quadrant matrix, act on each one. Worked example plus the POS reports you need.","og_url":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/","og_site_name":"Snappy","article_published_time":"2026-09-24T09:00:00+00:00","og_image":[{"width":1024,"height":576,"url":"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg","type":"image\/jpeg"}],"author":"Wilson Wu","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Wilson Wu","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#article","isPartOf":{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/"},"author":{"name":"Wilson Wu","@id":"https:\/\/gosnappy.io\/blog\/#\/schema\/person\/77fb3f6aeef63fc72f704a16faab7fb6"},"headline":"Menu Engineering for Restaurants: How to Find Your Stars, Plowhorses, Puzzles and Dogs","datePublished":"2026-09-24T09:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/"},"wordCount":3059,"commentCount":0,"publisher":{"@id":"https:\/\/gosnappy.io\/blog\/#organization"},"image":{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg","articleSection":["Finance"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#respond"]}]},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/","url":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/","name":"Menu Engineering for Restaurants: Stars, Plowhorses, Dogs","isPartOf":{"@id":"https:\/\/gosnappy.io\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#primaryimage"},"image":{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#primaryimage"},"thumbnailUrl":"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg","datePublished":"2026-09-24T09:00:00+00:00","description":"Rank every dish by contribution margin and popularity, build the four-quadrant matrix, act on each one. Worked example plus the POS reports you need.","breadcrumb":{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-c97eb128c011b"},{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-99321683632cc"},{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-be70587a966ab"},{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-8863ad5f8dae1"},{"@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-f217d758c02ab"}],"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#primaryimage","url":"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg","contentUrl":"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg","width":1024,"height":576,"caption":"Menu Engineering for Restaurants: How to Find Your Stars, Plowhorses, Puzzles and Dogs"},{"@type":"BreadcrumbList","@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gosnappy.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Menu Engineering for Restaurants: How to Find Your Stars, Plowhorses, Puzzles and Dogs"}]},{"@type":"WebSite","@id":"https:\/\/gosnappy.io\/blog\/#website","url":"https:\/\/gosnappy.io\/blog\/","name":"Snappy","description":"","publisher":{"@id":"https:\/\/gosnappy.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gosnappy.io\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/gosnappy.io\/blog\/#organization","name":"Snappy","url":"https:\/\/gosnappy.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gosnappy.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2024\/03\/Snappy-Purple-Full-Logo2x-p-500.png","contentUrl":"https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2024\/03\/Snappy-Purple-Full-Logo2x-p-500.png","width":500,"height":160,"caption":"Snappy"},"image":{"@id":"https:\/\/gosnappy.io\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.instagram.com\/gosnappy.io\/","https:\/\/www.linkedin.com\/company\/gosnappyio\/","http:\/\/www.tiktok.com\/@snappyinnovations"]},{"@type":"Person","@id":"https:\/\/gosnappy.io\/blog\/#\/schema\/person\/77fb3f6aeef63fc72f704a16faab7fb6","name":"Wilson Wu","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/gosnappy.io\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1d17ab988a248c5a03ba09005b4d2ff9f2f49cce3302a3408bc2a16058f67f50?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1d17ab988a248c5a03ba09005b4d2ff9f2f49cce3302a3408bc2a16058f67f50?s=96&d=mm&r=g","caption":"Wilson Wu"},"description":"Wilson Wu is Chief Revenue Officer at Snappy, the restaurant technology company, and is based in Boston. His first job was in a restaurant kitchen, and he has spent his career since at the intersection of hospitality and software, working with operators across Canada on the systems their service runs on. He also builds the technology he writes about. His engineering work includes a per-location customer service agent that answers guests with a restaurant's real hours, menu and prices, deployed with independent restaurants, and a document-extraction model that reads supplier invoices and matches invoice numbers against what is owed. He writes here about what changes on a busy service: ordering, payments, loyalty, the phone, and the Canadian rules behind them. He holds an MBA from Duke University and a Master of Science in Computer Science from Georgia Tech.","sameAs":["https:\/\/www.linkedin.com\/in\/wilson1wu\/"]},{"@type":"Question","@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-c97eb128c011b","position":1,"url":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-c97eb128c011b","name":"What is the difference between contribution margin and food cost percentage?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Contribution margin is a dollar figure: \"the menu price minus the item's direct cost\" (AHLEI). Food cost percentage is a ratio: plate cost divided by menu price. Menu engineering ranks on the dollar figure because dollars pay rent. A dish with a great percentage and no volume contributes almost nothing.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-99321683632cc","position":2,"url":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-99321683632cc","name":"Should I use the 70% rule or equal share for the popularity line?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"The original method uses 70% of equal share, so six items gives 11.7% rather than 16.7% (AHLEI). Equal share is stricter and pushes more dishes into the Puzzle and Dog quadrants. Either works if you apply it to every category the same way; the 70% rule is the safer default on a long category.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-be70587a966ab","position":3,"url":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-be70587a966ab","name":"How many weeks of sales data do I need?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Four to eight weeks for most restaurants, covering an equal number of weekends and weekdays and avoiding holidays. If a category runs fewer than about 200 covers in that window, extend the period rather than accept a thin sample.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-8863ad5f8dae1","position":4,"url":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-8863ad5f8dae1","name":"Should I run menu engineering across the whole menu or by category?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"By category, always. Appetizers, entr\u00e9es, desserts and drinks have structurally different margins and volumes, so a single ranking puts every entr\u00e9e above every appetizer and tells you nothing. Both lines are calculated inside the category.","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-f217d758c02ab","position":5,"url":"https:\/\/gosnappy.io\/blog\/restaurant-menu-engineering-guide\/#faq-question-f217d758c02ab","name":"Does menu engineering work for a delivery-heavy restaurant?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Yes, with one adjustment. Subtract any third-party commission from the menu price before calculating contribution margin, because the same dish carries a different margin on a marketplace order than on a dine-in cover. Then rank each channel separately, since menu mix on a delivery app rarely matches the dining room.","inLanguage":"en-US"},"inLanguage":"en-US"}]}},"rttpg_featured_image_url":{"full":["https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg",1024,576,false],"landscape":["https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg",1024,576,false],"portraits":["https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg",1024,576,false],"thumbnail":["https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero-150x150.jpg",150,150,true],"medium":["https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero-300x169.jpg",300,169,true],"large":["https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg",1024,576,false],"1536x1536":["https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg",1024,576,false],"2048x2048":["https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero.jpg",1024,576,false],"yarpp-thumbnail":["https:\/\/gosnappy.io\/blog\/wp-content\/uploads\/2026\/09\/restaurant-menu-engineering-guide-hero-120x120.jpg",120,120,true]},"rttpg_author":{"display_name":"Wilson Wu","author_link":"https:\/\/gosnappy.io\/blog\/author\/wilson\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/gosnappy.io\/blog\/category\/finance\/\" rel=\"category tag\">Finance<\/a>","rttpg_excerpt":"Menu engineering ranks every dish on two numbers, contribution margin in dollars and share of category sales, then sorts them into four quadrants: Stars (high margin, high popularity), Plowhorses (low margin, high popularity), Puzzles (high margin, low popularity) and Dogs (low margin, low popularit","_links":{"self":[{"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/posts\/12690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/comments?post=12690"}],"version-history":[{"count":2,"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/posts\/12690\/revisions"}],"predecessor-version":[{"id":12841,"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/posts\/12690\/revisions\/12841"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/media\/12689"}],"wp:attachment":[{"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/media?parent=12690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/categories?post=12690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/tags?post=12690"},{"taxonomy":"team","embeddable":true,"href":"https:\/\/gosnappy.io\/blog\/wp-json\/wp\/v2\/taxonomy\/team?post=12690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}