91³Ô¹ÏÍø

Watch CBS News

For many NYC seniors, food insecurity is an unwelcome guest at the dinner table

More than 24,000 homebound seniors in New York City rely on meal delivery services to keep them from going hungry, but many only get one meal delivery a day, and not even for an entire week.

So what's being done to close the critical nutritional gap?

The Older Americans Act, passed in 1965, requires eligible seniors receive one nutritious meal a day, five days a week — not seven. That makes hunger a silent guest at the dinner table for many seniors. 

"It's good food, but it's just not enough"

Edward Perez, 71, and his wife Phyllis receive a meal each day from volunteers at , which delivers hundreds of warm meals to older adults in Manhattan every week. 

"It's good food, but it's just not enough," Phyllis said. 

"After we eat breakfast, we may sit around until 2 p.m. depending on when food comes. And that's when we eat ... for the whole day," Edward said. 

"We're told by many of the people we deliver to, that the one meal they are getting from Encore is their only source of freshly cooked food," said Jeremy Kaplan, executive director of Encore Community Services. 

"I might eat part of mine and we'll have (the rest) later tomorrow for lunch," Phyllis said. 

The stark reality of food insecurity hits particularly hard on the weekends, when delivery is not required.

Organizations like Encore and , which services seniors in the Bronx, fundraise and partner with others like to provide weekend meals, in addition to their city-funded weekday operations. 

"On Friday, we will provide a Saturday and Sunday meal in addition to the Monday through Friday meals," said Ikuna Hasangjekaj of R.A.I.N. 

A hot meal or the next bill?

bisram-5p-pkg-cost-of-c-wcbsg3og-hi-res-still-00-00-3528.jpg
Many seniors receive free meals as they confront food insecurity. CBS News New York

Citymeals On Wheels says it delivers about 2.6 million meals to 22,000 homebound seniors across New York City every year. 

Dorelle Jones, 80, gets meals seven days a week. 

"You can just sit and wait, because Mike is coming," Jones said. "Food is here, always have something to eat." 

Still, seniors are living on a menu of difficult choices: a hot meal, or the next bill. A recent report shows one in five older New Yorkers go to bed hungry, with no certainty of their next meal. 

New York City Councilmember Linda Lee introduced legislation last year that would require meals get delivered each day of the calendar year. 

"The food insecurity issue is a real issue we are seeing more and more in older adults and immigrant communities, especially for halal meals, the need for kosher, or culturally-specific meals," Lee said. 

"Food is medicine" 

Advocates for older adults like Allison Nickerson of are pushing for three meals a day. 

"The reality is we are aging more than ever, and that is a huge success. Our longevity has changed in the last 30 years, and our budgets, our policies, our legislation haven't kept up," Nickerson said. 

Phyllis Perez said she'd like to thank lawmakers for the meal per day that they do receive. 

"But I would like you to consider how many meals do you eat a day, and what is sufficient for you?" she said. 

"Food is medicine. Food is home. Tens of thousands who just have one a day, just unconscionable," Kaplan said. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });