91³Ô¹ÏÍø

Watch CBS News

Coffee tariffs have been lifted, but some Portland cafés and roasters are still waiting for relief

As one of America's coffee capitals, Portland, Oregon, has grounds for worry: coffee prices have soared to historic highs.

"We have bags of coffee on our menu that are $28.50. That's a lot of money for a bag of coffee," said Laila Ghambari, owner of Guilder Coffee Company, a café that sells specialty coffee.

Ghambari and her brothers practically grew up inside an espresso machine. Her father owned a coffee shop, and Ghambari became the U.S. barista champion in 2014. Now, she's a small business owner grappling with the expense of tariffs, which are still impacting her business even though coffee and other products were granted an exemption last month.

"Any coffee that's already landed in the United States is still subject to the tariff," Ghambari said.

Coffee prices were already high due to supply and demand pressures for premium beans along with climate issues, especially crop-killing frost. The average retail price of 100% ground roast coffee hit a record high of $9.14 per pound in September,  the Federal Reserve Bank of St. Louis. In December 2019, shortly before the COVID-19 pandemic, one pound of ground coffee cost a little over $4. And in August, retail coffee prices in the U.S. had jumped 20.9% from the previous year, according to the Bureau of Labor Statistics — the sharpest increase in nearly three decades.

Then, back in April, the U.S. imposed a so-called reciprocal tariff of 10% on coffee-producing countries. Ghambari said it cost her roughly fifty cents a bag.

Christopher Hendon, a chemistry professor at the University of Oregon known as "Dr. Coffee," studies the global industry and said the tariffs cost independent coffee operators more than consumers.

"[The consumer is] probably not feeling it," Hendon said. "You might not care today, because the price didn't change all that much, but you might care if your local café disappears."

Charlie Wicker's company, Trailhead Coffee Roasters, roasts green beans into brown ones. Tariffs hit him hard.

"I had to lay off the two full-time employees. So now it's down to just myself and one part-time employee," Wicker said, adding, "The fact that we're still standing is a function of having a little bit of savings to keep the lights on."

Despite the reversal that lifted tariffs on coffee, relief will take time because coffee roasters and cafés typically order beans months in advance.

Ghambari said it won't be until February when the first import of tariff-free coffees will land in her warehouse.

For Wicker, who delivers to cafés, lifting those tariffs could be the coffee break he needs.

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(); } }); }); }); });