91³Ô¹ÏÍø

Watch CBS News

As gas prices rise, these are the cheapest days to fill your tank

Filling up your car isn't getting any easier on your wallet. The average price for a gallon of regular gas in Minnesota has jumped $0.66 since the start of the war with Iran.

As we all pay more to fuel our cars, drivers might miss the savings hidden right at the pump. It comes down to timing, then adjusting your routine. 

GasBuddy analyzed 100 million prices across the country last year. It determined that Sunday is the cheapest day of the week to buy gas in 41 states, including Minnesota and Wisconsin.

The remaining states had either Monday, Saturday, or Tuesday as their cheapest day of the week. But it appears there's a trend on Sunday, or surrounding it, of cheaper prices.

"I think a lot of this really just has to do with energy markets. They're closed over the weekend. That gives stations some certainty over their cost over the weekend. It allows them to be more competitive knowing that their cost is not going to suddenly shift," said GasBuddy's lead petroleum analyst Patrick De Haan said.

That means some gas stations might temporarily drop their prices around Sunday. But what goes down often comes back up.

So, which days of the week are the most expensive? For most states, GasBuddy determined it's Wednesday through Friday. Thursday in particular is the priciest for Minnesota and Wisconsin.

By this stage of the week, energy markets have become more volatile after several days of trading, said De Haan. 

"On Wednesday, a key government report comes out in the morning. That can drive up the wholesale price of gasoline later Wednesday night, setting the stage then for higher prices Thursday and Friday," De Haan said.

Now that we know that Sunday is best for filling up, how much savings are we talking about?

De Haan said it's about $0.04-0.09 per gallon when compared to the most expensive day. That might feel small, but those pennies can add up to a dollar or two saved per visit, maybe more, depending on the size of your vehicle.

And the savings can be truly noticeable over time.

"If you're timing the (price) cycles right, if you're filling up on the right day of the week, and if you're shopping around, this can add up to hundreds of dollars," De Haan said. 

On Monday, March 30, the national average price for a gallon of regular gas was $3.99, according to AAA. That's $1.01 higher than a month ago. 

De Haan feels reaching $4 a gallon will happen in the near future, adding that Americans have spent $8 billion more on gasoline in the past month.

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