91³Ô¹ÏÍø

Watch CBS News

As their policies shift, see how much U.S. airlines are making in checked bag fees

Checked bags are a big business for U.S. airlines, bringing in more than $7 billion in revenue last year, according to data from the . The fees have brought more revenue to the airlines than it ever had prior to the pandemic, the data shows.

Airlines began shifting their checked bag policy in recent years to keep up with what they say are rising operational costs, including higher prices for fuel and increased wages.

Most recently, Southwest Airlines announced it will start charging $35 for the first checked bag — after more than 50 years of only charging for a third bag. Changes at Southwest came amid mounting pressure from activist investors to improve its financial performance. The airline in September predicted that new fees would lead to $1.5 billion a year in revenue.

Last year, JetBlue brought Uber-style surge pricing to bag-check fees, making it more costly to check luggage during peak travel periods. American Airlines also increased its fees in 2024 from $30 to $35 for the first checked bag.

Breaking down the revenue from checked bags for U.S. airlines

Checked bags brought in about $7.27 billion in revenue last year for Alaska Airlines, Allegiant Air, American, Breeze Airways, Delta Air Lines, Frontier Airlines, Hawaiian Airlines, JetBlue, Silver Airways, Southwest, Spirit Airlines, Sun Country and United Airlines, according to the government's data that was last updated on May 6.

That is up from $7.07 billion in 2023, Bureau of Transportation Statistics' data shows.  

In 2022, U.S. airlines made over $6.7 billion in bag fees, another major jump from the $5.3 billion made in 2021.  

American, Delta and United — the three largest U.S. airlines — made over $1 billion each last year on checked bags — and their revenue from it has been climbing since the COVID-19 pandemic halted air travel in 2020.  

When the pandemic hit, total checked bag revenue plummeted to $2.84 billion in 2020, down from $5.76 billion in 2019.  

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