Prices are based on what the market will pay, not the cost of materials.
Petro Can has like 12000 gas stations, and the other companies have similar numbers. We've basically given all the market to a few companies.
The truth is there's no gas price algorithm. There are some data inputs and local gas stations compete based on their nearby competition prices, but broadly there's a group of men in a room who set the prices to whatever they want.
When costs go up, they immediately increase prices. When costs go down, they wait and see what their competitors do.
So you can see why a few companies owning all the gas stations creates inelastic sticky prices that don't go down for weeks. If you take away the gas tax, well, are Shell and Crappy Tire dropping prices? Not yet, so we won't either. Easy decision.
Gas companies used to pay to have people drive around and report gas prices from their competitors back to corporate. Now they pay gas buddy for bulk API access to the numbers users report to Gas Buddy in the app for free.
I am definitely not recommending you do this, but if many people were to constantly report lower gas prices at gas stations in the app, that would feed into the sole data they use to set their prices and lower gas prices in the area.
If in theory Gas Buddy data became unreliable for some reason it would take a long time for these companies to decide to spend money and start hiring gas price checkers again.