How to Find the Hidden Deals on Not-So-Cheap Menus
Save this article to read it later.
Find this story in your account’s ‘Saved for Later’ section.
Ivan Ramen Slurp Shop’s 8AM Ramen.
Photo: Bobby Doherty/New York Magazine
Eating cheap isn’t just about finding the latest in budget-conscious menus or wallet-friendly trends . Here, we break down how to pinch pennies by getting up early, showing restraint, and eating your greens.
Option 1: Eat Breakfast
You know how going out to lunch is often more enjoyable than going out to dinner: easier to get into the restaurant, mellower vibe, smaller check? Well, that goes double for breakfast. Here, five new and unusual morning meals worth setting the alarm for.
8AM Ramen
Ivan Ramen Slurp Shop , $13
It’s ramen. And breakfast. It’s whole-wheat noodles in a fonduelike double-dashi-Cheddar broth with strips of scallion omelette, griddled Taylor ham (a.k.a. pork roll), and a dusting of katsuobushi. It’s strange. It’s wonderful. It beats oatmeal. 600 11th Ave., nr. 44th St.; 212-582-7942
Italian Breakfast Sandwiches
Alidoro Midtown , $3.50
Unlike the Soho HQ , the roomy new midtown branch of the excellent Italian sandwich shop Alidoro is open weekdays for breakfast, and that means breakfast sandwiches. Basically, they’re miniaturized and poached-egg-topped variations of sandwiches you find on the lunch menu, but served on cute little brioche buns instead of giant hero rolls. Our favorite is the Carlo (porchetta, Piave cheese, poached egg, and hot-pepper spread). Though, at $3.50 a pop, you can try all four without breaking the Cheap Eats breakfast bank. 18 E. 39th St., nr. Madison Ave.; 646-692-4330
Ichiju Sansai Set Meal
Okonomi , $15
Okonomi’s elegant take on the traditional Japanese morning meal includes a daily choice of fish plus a cube of omelette, pickles, vegetables, brown rice, and miso soup. When people say that eating breakfast enhances brain function, reduces weight, perks you up, primes your metabolism, may prevent heart attacks, and generally adds to the enjoyment of life, it’s likely they’ve just paid the check at Okonomi. 150 Ainslie St., nr. Lorimer St., Williamsburg; no phone
Carbonara Sunnyside Eggs
Marta , $15
At dinner, Nick Anderer turns a bowl of pasta alla carbonara into a pizza so good even Italian-food snobs like it. This is how he reinterprets the classic Roman dish for breakfast: two nicely fried eggs showered with grated Pecorino on top of a crisp potato-and-guanciale hash. 29 E. 29th St., nr. Madison Ave.; 212-651-3800
Avocado-Ice-Cream Toast
Morgenstern’s Finest Ice Cream , $6.50
Sicilians get their gelati con brioche fixes not long after they roll out of bed; Lower East Siders have something even better: Nicholas Morgenstern’s subtly flavored avocado ice cream spread like peanut butter onto a thick slab of toasted Japanese milk bread drizzled with olive oil and condensed milk and seasoned with pepper and sea salt. You may never skip breakfast again. 2 Rivington St., nr. Bowery; 212-209-7684
Option 2: Create a Vegivore Menu for 2
The challenge: Eating well — and inexpensively — at a restaurant where the multi-category menu tempts you to overorder and overspend. the solution: Taking Michael Pollan’s aphorism “Eat food. Not too much. Mostly plants” as inspiration, build a five-course DIY vegetable-focused tasting for two. The seasonal, Italian-inspired Vic’s in Noho is the perfect place to cobble together a cheapavore meal. Here’s your instruction manual.
Mouse over or tap the images to reveal the tricks.
Grand total: $66
Option 3: Go Halfsies
Share a big, fatty sandwich, drink a mini-cocktail, or slurp down an off-the-menu half-portion of pasta — and save.
Alder ’s Shorts
We live in a craft-cocktail town where a $14 tipple is about the norm, which is why we like Alder’s “shorts” — smaller versions of some of the inventive drinks on the cocktail list at half the regular price. They’re perfect for when you just want to wet your whistle or test-drive something racy like Dr. Dave’s ’Scrip Pad (rye, yuzu, amaro, smoked maple) before you commit. Or maybe you just want to try several drinks without falling off your barstool. $7; 157 Second Ave., nr. 10th St.; 212-539-1900
Perla ’s Bucatini Cacio e Pepe
The recently revamped menu includes five first-rate pastas, all available in half-size portions if you ask nicely. At $9, the perfectly al dente bucatini cacio e pepe is a steal. 24 Minetta Ln., nr. Sixth Ave.; 212-933-1824
Ribalta ’s Spaghettoni al Pomodoro
Save room (and cash) for the DOC margherita pizza by ordering an off-menu primi portion of this unbelievably good pasta, made with pricey preserved tomatoes imported from the old country. $12; 48 E. 12th St., nr. Broadway; 212-777-7781
Harry & Ida’s Pastrami Sandwich
It’s not as big as the one at the Carnegie, but it’s cured and smoked in-house, served on a remarkably fresh and springy club roll, and crowned with housemade pickles and a corsage of dill. Plus it’s available by the half-sandwich for $8.50. 189 Ave. A, nr. 12th St.; 646-864-0967
Saiguette ’s Bánh Mì
Most Vietnamese sandwiches are comparatively dainty by hero standards (if you place them in that category, which we do). Not so Saiguette’s, whose kitchen sandwich station must be run by a refugee from Defonte’s. The No. 39-F, the “grilled juicy boneless chicken thigh,” is almost something you’d bring to a Super Bowl party. Split one with a pal for $4.50. 935 Columbus Ave., at 106th St.; 212-866-6888
*This article appears in the July 13, 2015 issue of New York Magazine.
15 Cheap Menu Hacks
Things you buy through our links may earn Vox Media a commission.
Latest News from Grub Street
1.5x speed
June 3, 2025
What Keith McNally Is Listening To
“Because this is a dangerous time in America, I gravitate to podcasts which concentrate on the lunacy of the Trump administration.”
chef shuffle
June 3, 2025
Victoria Blamey Is Heading to Il Buco
The acclaimed chef will be culinary director for Donna Lennard’s family of Italian restaurants.
openings
June 3, 2025
Dell’anima Returns to the West Village This Week
The 2010s favorite is back where it belongs.
By Anna Hezel
where to eat
June 2, 2025
Where to Eat in June
The best restaurants for right now.
By Grub Street
the approval matrix
May 30, 2025
The Approval Matrix: Elon’s Big, Beautiful Crash
Our guide to what’s highbrow, lowbrow, brilliant, and despicable.
gifts
May 30, 2025
The Best Gifts for Beer Lovers, According to Brewers and Beer Lovers
Because you can do better than a novelty beer helmet.
the grub street diet
May 30, 2025
Restaurateur Natalie Johnson Romanticizes Sandwiches From the ’90s
“We do a seared tuna burger with wasabi-soy glaze, and it’s just what I want to be eating.”
By Alan Sytsma
announcements
May 29, 2025
Introducing Emily Gould, Dinner Party ’s New Host
Here’s what to expect from the newsletter’s next era.
father's day gifts
May 29, 2025
The Best Gifts for Foodie Dads
Foolproof ideas for the dad who says the quickest way to his heart is through his stomach.
restaurant review
May 29, 2025
Bánh Anh Em Makes Food With Some Tooth
The sandwiches and soups are chewy, crunchy, crispy, and crackly — usually all at once.
By Matthew Schneier
coming soon
May 28, 2025
Millions of People Watch Cugine’s Videos. Will They Eat His Chicken Cutlets?
The social-media food star is opening a café in Brooklyn. “I needed to do something new,” he says.
By Jason Diamond
comebacks
May 27, 2025
This City Is Ready for Some Fro-Yo
Pistachio drizzles top artisanal swirls while once-forgotten chains plot a return to prominence. Is the next big yogurt boom here at last?
By Rachel Sugar
the grub street diet
May 23, 2025
Erika Henningsen Hates a Book-Length Menu
“I’m talking to you, Cheesecake Factory.”
By Zach Schiffman
talking to
May 22, 2025
The Chef Who Opened His First Restaurant at 46
Gregory Gourdet won awards for his restaurant and found fame on Top Chef . He’s back in New York to launch his next chapter on the cusp of turning 50.
By Adam Platt
staffing up
May 21, 2025
Where Have All the Good GMs Gone?
Managers keep restaurants running, and they are more in demand than ever. Newfound leverage means higher salaries and even pre-approved time off.
By Chris Crowley
openings
May 20, 2025
A Star From France Is Opening a Properly Luxe Restaurant in the West Village
Le Chêne, from Alexia Duchêne, debuts this week.
By Tammie Teclemariam
coming soon
May 19, 2025
One of King’s Owners Is Going Solo at Lei
Annie Shi’s new Chinatown wine bar is something different.
By Megan Krigbaum
the approval matrix
May 16, 2025
The Approval Matrix: We’re Leaving on a Qatari Payola Plane
Our guide to what’s highbrow, lowbrow, brilliant, and despicable.
the grub street diet
May 16, 2025
Adam Roberts Is Particular About His Fish
“You can tell a lot about a person by how they make their tuna.”
By Emma Alpern
openings
May 15, 2025
Dominique Ansel’s New Bakery Has Shokupan Loaves and Hot-Dog Spirals
Papa d’Amour is an exciting departure for the famous pastry chef.
By Charlotte Druckman
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"5":5,"6":6,"19":19,"39":39,"45":45}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(3),auth=require(19),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(5),appendLandingPageParams=require(144),pageUri=require(134).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let i=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||i.classList.remove("open")})}function gtmSendReport(e,n,t){let i={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(i.eventLabel=n.href),gtm.reportNow(i)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const i=t.split("?"),o=new URLSearchParams(i[1]);for(let e of n.entries())o.set(e[0],e[1]);t=`${i[0]}?${o.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),auth.isMobileAppRequest()&&e.classList.add("nymag-app"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"3":3,"5":5,"19":19,"134":134,"144":144}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(231),_each=require(419),Fingerprint2=require(418),DS=require(417),Eventify=require(257);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"231":231,"257":257,"417":417,"418":418,"419":419}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(128),_forEach=require(117),_isString=require(279),_intersectionWith=require(420),_isEqual=require(285),_each=require(419),_debounce=require(161),_sortBy=require(215),page=require(134),visit=require(124);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"117":117,"124":124,"128":128,"134":134,"161":161,"215":215,"279":279,"285":285,"419":419,"420":420}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]