91³Ô¹ÏÍø

Watch CBS News

Joann files for bankruptcy amid consumer pullback, but plans to keep stores open

Fabric and crafts retailer Joann declared bankruptcy on Monday amid spending cutbacks from consumers and higher operating costs. The retail chain said it plans to keep its 800-plus stores open while it works through the restructuring process.

Hudson, Ohio-based Joann, which filed for Chapter 11 bankruptcy, reported between $1 billion and $10 billion in debt. In court documents filed Monday, the retailer blamed higher costs from shipping overseas products, as well as waning consumer demand.

As part of its bankruptcy, Joann said it has received about $132 million in new financing and expects to reduce its balance sheet's funded debt by about $505 million. The financing is "a significant step forward" to help Joann continue operating its stores, Scott Sekella, Joann's chief financial officer  in a statement. 

The filing marks the latest in a series of major retailers that have filed for bankruptcy in recent years, including GNC, J.C. Penney and Party City. Brick-and-mortar retailers have struggled as Americans have increasingly shifted their spending to online rivals such as Amazon.com. 

In Joann's case, the company was buoyed in the early days of the pandemic as the shutdown spurred some consumers to take up crafts and other projects. But during the past two years, Joann's sales have tumbled, with the company blaming consumer cutbacks due to inflation and other economic challenges.

"On the revenue side, sales slowed as COVID-19 policies were repealed or reduced, demand for fabric and mask-related products abated, hobbyists spent less time crafting indoors, and the federal government terminated pandemic-related stimulus programs," Joann said in court documents. 

At the same time, Joann was walloped by higher costs after China hiked tariffs on imports, an issue that occurred when the company was also spending a lot of money remodeling its stores. Rising ocean freight costs also inflated its inventory costs by more than $150 million between its 2021 to 2023 fiscal years, it added.

"While these conditions affected the retail sector broadly, Joann's heavy reliance on imported goods meant these conditions caused, and continue to cause, outsized impacts on the company," Joann said in court documents. 

Joann has been headed toward bankruptcy for quite a while, analyst Neil Saunders of GlobalData said in a statement Monday. Aside from its rising debt, Joann has struggled to turn a profit and has lost some of its customer base to rivals, Saunders said. 

"Weakening store standards and declining customer service levels, partly because of staffing cuts, have made stores less desirable," he said. "And a desire for lower prices has driven some shoppers to alternatives like Hobby Lobby."

As part of the bankruptcy plan, Joann said it plans to convert back into a private company. The company went public in March 2021. The company, which was founded back in 1943, previously went private in 2011 — when it was purchased by equity firm Leonard Green & Partners.

Joann reported $2.2 billion in profit in 2023. The company said, as of Monday, that it employs about 18,210 people with roughly 16,500 working at store locations. Another 262 work at Joann's distribution center in Hudson. 

The Associated Press contributed to this report.

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