91³Ô¹ÏÍø

Watch CBS News

Wine vineyards are ripping out their fields because there isn't enough demand

Usually, the grapes growing in Garret Schaefer's California vineyard are destined to become fine wines — but not this year. Fifty acres or 400 tons of the grapes have been left to rot on the vineyard due to too much supply and not enough demand.

"They're turning to raisins. They'll just end up falling off," Schaefer said.

Global wine consumption was down an equivalent of 3.5 billion bottles in 2023, according to the International Organization of Wine and Vine.

Schaefer blames the decline on inflation. The price of a liter of wine rose more than 13% in just the last five years, according to the Federal Reserve Board of St. Louis. Sales also took a hit this year after the World Health Organization declared for people's health. And there's a generation of young people who just aren't drinking alcohol as much as baby boomers.

Brianda Gonzalez is one young consumer shying away from traditional wine, saying she realized that drinking it regularly wasn't good for her.

"My dad's a bartender by trade, but a few years ago, he got sick. So that meant alcohol had to be cut out. So I went down this whole rabbit hole of non-alcoholic drinks and became fascinated by the category," Gonzalez said.

Her preference now is non-alcoholic beverages, which sells at her shops in California. Sarah Chacon and her sister Helen are among their steady stream of customers.

"I do not drink wine. I've actually never been a big fan of wine, but I do like an alternative," Helen Chacon said.

Sarah Chacon said she's been cutting back for "health reasons."

In California, where 80% of the country's wine grapes are grown, the effects have been dramatic.

For more than 50 years, Don Worley built his business around weeding out diseased vines. These days, growers hire him to clear out their fields. Heavy machines rip out row upon row of vines from the ground. One tractor can clear out about 30 acres in a day, Worley said.

"What did it cost this man? $20,000 an acre, perhaps? Now he's throwing it away," Worley said.

All together, Schaefer says he's ripped out 60 acres — one third of all the vineyards his family has farmed since 1894. Gone, too, are the people who worked the land.

"We used to have six to eight full time employees through the year. We're down to two of us," Schaefer said.

The problem may only get worse. Experts recommend ripping out 50,000 more acres, or 8% of all the vineyards left in California. It's a new reality here — far more painful than simple sour grapes.

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=296763317a51cab90faa73f1bb146d5c'; 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(); } }); }); }); });