What the sign price does to your diesel volume and margin
Diesel #2 at all 18 travel centers, January 2025 through September 2026.
Summary
Retail gallons are a small percentage of your overall volume but they account for half of your margin.
15% of gallons, 48% of margin. Channels
When you drop the sign price, you barely capture any additional gallons, and nowhere near enough to cover the decrease in margin.
After 532 cuts of 5¢ or more: retail gallons +3.9%, retail margin −$76/day. A 10¢ cut needs +32% to break even. Price moves Cuts
Being the cheapest travel center in the area does not sell more retail gallons. The stores priced far under the majors sell about the same retail gallons as the stores priced level with them while earning a third less on each gallon.
20¢ or more under the nearest major: 1,393 gal/day at 32¢. Level with them: 1,408 gal/day at 45¢. Positioning
A small increase in the sign price looks profitable at almost every store. The data says nothing about a large one.
At 10¢ higher, 17 of 18 stores come out ahead, about $1,330/day across the network. Raises
The sign price also moves the gallons that never pay it. Fleets with a deal and Mudflap drivers shift a little with the sign, and Mudflap drivers shift the most.
Per 1¢ higher: retail −0.20%, Mudflap −0.55%, TCH −0.13%. Price response
Competitors follow your price slowly, and they follow increases more than cuts. At most of your stores nobody matches a cut within three days.
40% of a move matched within three days, 92% within a week. Cuts 22%, increases 50%. Competitors
Mudflap volume fell this summer because the saving drivers see in the app shrank as the rack rose, not because a deal changed.
Saving shown in the app: about 30¢/gal in June, 13¢ in August. Mudflap
Each of these is a pattern in history rather than a proof. A controlled experiment at a few stores would confirm or overturn them within weeks.
Two designs, a 10¢ cut and a 10¢ raise, about 9 weeks. Experiments
Channels
Retail gallons are a small percentage of your overall volume but they account for half of your margin.
Fiserv is the smallest of the big channels by gallons and the largest by margin. TCH is the largest by gallons and still only a fifth of margin, so the volume does not make up for the small margin on each gallon. Fleets with a deal, on every card together, are most of your gallons at a few cents each.
Diesel #2, January through August 2026. Margin against your cost, not the OPIS rack.
| Retail, cash and credit card | 15% of gallons | 48% of margin |
| Fleets with a deal, on every card | 85% of gallons | 7.3¢/gal |
| One Fiserv gallon earns as much as 8 TCH gallons. | ||
Each transaction is counted once, on the card it ran on. A rate-card customer billed by Sapp but run on a TCH or Comdata card is counted under TCH or Comdata.
Positioning
Most of your stores are priced under the nearest major, some by a lot.
The majors post high and sell on their fleet and app prices. You sit between them and the independents. The gap differs by store but is consistent over time, so it is a store policy rather than a reaction to the day. You typically change your sign price once every four days.
Drag to pan; hold Ctrl or ⌘ and scroll to zoom. Freight routes from the National Highway Freight Network. Truck stops from the EFS price report and the Mudflap app. The competitor you follow is read from price history. Vs your sign is the median over the period of each stop's posted cash diesel against your sign. The map shows the truck stops around each store whose posted price we have, within about 30 miles.
Comparison
The stores that price well under the majors sell about the same retail gallons as the stores that hold level with them while earning a third less on each gallon.
These are different markets with different traffic and different supply, so the data seems to imply this rather than prove it. St. George is the extreme. It sits far under everyone and is the cheapest in its area on most days, and it earns almost no margin on retail gallons at the published rack. Denver and Council Bluffs sit level with the majors and earn the most retail margin in the network. An experiment at a few stores would confirm or overturn this within weeks.
| Position vs the nearest major | Stores | Retail gal/day | Retail margin/gal | Retail margin/day |
|---|---|---|---|---|
| 20¢ or more under | 8 | 1,393 | 32¢ | $388 |
| Within 10¢ | 9 | 1,408 | 45¢ | $625 |
January 2025 through September 2026. Nearest major: the nearest Pilot, Love's or TA. Margin at the published OPIS rack, before your per-store cost adjustment.
| Store | Vs nearest major | Vs nearby median | Retail gal/day | Retail margin/gal | Retail margin/day | Competitor you follow | Cut matched within 3 days |
|---|---|---|---|---|---|---|---|
| Junction City | −54¢ | −17¢ | 908 | 42¢ | $385 | Love's #732, 22 mi | 17% |
| St. George | −47¢ | −47¢ | 2,064 | −4¢ | −$83 | Maverik #370, 18 mi | 57% |
| Ogallala | −46¢ | −8¢ | 1,072 | 33¢ | $355 | Pilot TC #904, 19 mi | 20% |
| Percival | −40¢ | −24¢ | 1,416 | 52¢ | $742 | Pilot TC #238, next door | 0% |
| Lincoln | −38¢ | 0¢ | 907 | 33¢ | $296 | Shoemaker's Shell TC, 9 mi | 0% |
| Salt Lake City | −36¢ | −34¢ | 2,781 | 22¢ | $613 | Maverik #747, next door | 93% |
| Clearfield | −24¢ | 0¢ | 1,241 | 40¢ | $501 | Pilot TC #336, 21 mi | 0% |
| Cheyenne | −22¢ | −20¢ | 754 | 39¢ | $297 | Love's #220, 11 mi | 67% |
| Harrisonville | −18¢ | −23¢ | 760 | 42¢ | $320 | Petro Stopping Center #460, 30 mi | 0% |
| Peru | −7¢ | −1¢ | 604 | 21¢ | $128 | QUIK TRIP #7203, 2 mi | 44% |
| Sidney | −6¢ | 0¢ | 799 | 44¢ | $349 | Love's #625, next door | 0% |
| Columbus | −4¢ | +11¢ | 875 | 52¢ | $455 | Love's #784, 12 mi | 0% |
| Omaha | −3¢ | −10¢ | 1,022 | 53¢ | $541 | Flying J #686, 8 mi | 0% |
| Council Bluffs | −3¢ | 0¢ | 1,754 | 62¢ | $1,094 | T/A - Council Bluffs, 2 mi | 0% |
| Denver | −2¢ | 0¢ | 4,031 | 33¢ | $1,325 | PWI 525 Shell, 16 mi | 21% |
| York | −2¢ | +1¢ | 1,467 | 45¢ | $661 | Love's #309, 21 mi | 0% |
| Fremont | 0¢ | 0¢ | 1,452 | 55¢ | $796 | Flying J #686, 29 mi | 0% |
| Odessa | +8¢ | +10¢ | 668 | 41¢ | $275 | One9 #901, 7 mi | 0% |
| All stores | −20¢ | −6¢ | 1,365 | 37¢ | $503 |
Gaps are the median day. Margin at the published OPIS rack; at St. George the cost adjustment is large, so the margin there is higher than shown. Cut matched: the share of a Sapp cut of 3¢ or more that the typical nearby competitor matched within three days.
Competitors
Competitors follow your price slowly, and they follow increases more than cuts.
Across the national price panel, a competitor matches almost none of a move the next day, less than half within three days, and nearly all of it within a week. Cuts are matched about half as often as increases. At your stores, competitors match a cut within three days at Salt Lake City, Cheyenne, St. George and Peru. At the other 11 nobody does.
| Share of a move a competitor matches the next day | 0% |
| Within three days | 40% |
| Within a week | 92% |
| Of a cut, within three days | 22% |
| Of an increase, within three days | 50% |
Posted prices at 216,637 truck stop and competitor pairs nationally, March through September 2026.
Price moves
After your cuts, retail gallons ran a few percent higher and retail margin ran lower. After your increases, the reverse. The gallons never moved enough to pay for the cut.
| Moves | Retail gallons, after vs before | Typical range | Retail margin/day | |
|---|---|---|---|---|
| After your cuts | 532 | +3.9% | −35% to +46% | −$76 |
| After your increases | 594 | −2.0% | −42% to +37% | +$18 |
| After competitors raised | 855 | +2.3% | −38% to +44% | −$29 |
| After competitors cut | 750 | +0.4% | −43% to +44% | +$64 |
| Days with no move | 5,310 | +0.7% | −40% to +42% |
Moves of 5¢ or more against nearby truck stops. Three days after against the same three weekdays before. Typical range: the middle 80% of single moves.
Retail volume at a store swings about 40% from day to day, so no single move shows anything and only the averages do. You also tend to cut after slow days, and slow days recover anyway, so the gain after a cut is a ceiling.
Price response
The sign price moves every channel a little, and retail gallons less than most.
Prices and volume move together for reasons that have nothing to do with the sign. When the rack jumps, every price and every volume in the area shifts at once. When a store is busy, your pricing rule nudges the price up. So a plain comparison of price and gallons mixes all of that in.
To see what the sign does by itself, we hold the rack, competitors' prices, your margin target and how busy each store had been fixed. What is left is what happens to gallons when the sign changes for no other reason.
A higher sign loses a little volume on every channel, not only retail. Fleets with a deal and Mudflap drivers still pick stops by the sign, which fits what you saw at Ogallala. Mudflap drivers are the most sensitive.
| Channel | Change in gallons per 1¢ higher | Range |
|---|---|---|
| Retail, all | −0.20% | −0.29% to −0.11% |
| Retail at the credit price | −0.22% | −0.33% to −0.11% |
| Retail at the cash price | −0.23% | −0.47% to 0.00% |
| Mudflap | −0.55% | −0.70% to −0.41% |
| TCH | −0.13% | −0.20% to −0.06% |
| Comdata | −0.10% | −0.22% to +0.02% |
| Sapp card | +0.02% | −0.05% to +0.10% |
| Fleets with a deal, all | −0.16% | −0.22% to −0.10% |
All stores together. Range: the interval we are 95% sure of. Based on 1,161 Sapp moves and 1,644 competitor moves that the rack, competitors' prices and your pricing rule do not explain.
Cuts
When you drop the sign price, you barely capture any additional gallons, and nowhere near enough to cover the decrease in margin.
The sign sits about 42¢ over the rack. Giving up 10¢ on every retail gallon needs about a third more retail gallons to break even, and a 10¢ cut brings in about 2%. The two lines never meet.
All stores together, retail gallons only. The band is the range on what a cut adds; the shaded gap is the shortfall.
| Sign over rack | Retail gallons a 10¢ cut adds | Range | Needed to break even | Retail margin/day | |
|---|---|---|---|---|---|
| All stores | 42¢ | +2.0% | +1.1% to +3.0% | +32% | −$126 |
| Denver | 33¢ | +1.6% | −0.3% to +3.5% | +43% | −$388 |
| Council Bluffs | 66¢ | +1.3% | −2.3% to +5.0% | +18% | −$163 |
| York | 47¢ | 0.0% | −2.8% to +2.8% | +27% | −$147 |
| Fremont | 54¢ | −0.9% | −4.3% to +2.5% | +23% | −$151 |
Retail gallons only. Gallons from fleets with a deal are not credited. Whether they close the gap is what an experiment would measure.
Raises
A small increase looks profitable at almost every store.
Raise the sign 10¢ and you lose a few percent of retail gallons, a smaller share of deal gallons, and more of Mudflap. You make 10¢ more on every retail gallon you keep. The extra margin outweighs the lost gallons at 17 of 18 stores. Odessa is the exception. The deal side costs little in dollars because those gallons earn a few cents each, but those are the fleet relationships, which is why a raise is worth testing rather than just doing.
| Store | Retail gallons | Retail margin/day | Deal gallons | Deal margin/day | Net/day |
|---|---|---|---|---|---|
| Denver | −2.5% | +$360 | +1.3% | +$13 | +$373 |
| Salt Lake City | −3.9% | +$244 | −2.3% | −$51 | +$193 |
| Percival | −1.9% | +$124 | −2.9% | −$22 | +$101 |
| St. George | −8.9% | +$187 | −10.8% | −$93 | +$95 |
| Clearfield | −3.8% | +$100 | −2.6% | −$18 | +$83 |
| Junction City | −2.9% | +$76 | −0.5% | −$2 | +$74 |
| Lincoln | −3.7% | +$76 | −2.3% | −$11 | +$66 |
| Harrisonville | −0.7% | +$73 | −1.1% | −$11 | +$63 |
| Council Bluffs | −6.6% | +$88 | −1.7% | −$28 | +$61 |
| Omaha | −4.0% | +$75 | −3.1% | −$24 | +$52 |
| Fremont | −6.2% | +$87 | −5.5% | −$41 | +$46 |
| Sidney | −5.3% | +$57 | −4.4% | −$18 | +$39 |
| York | −8.2% | +$78 | −2.5% | −$40 | +$38 |
| Columbus | −5.8% | +$55 | −2.5% | −$19 | +$37 |
| Ogallala | −6.8% | +$76 | −6.4% | −$54 | +$22 |
| Peru | −9.2% | +$43 | −4.1% | −$29 | +$13 |
| Cheyenne | −3.9% | +$61 | −6.0% | −$54 | +$7 |
| Odessa | −13.8% | +$18 | −6.7% | −$49 | −$32 |
| All stores | +$1,879 | −$550 | +$1,330 |
Best estimate from history for a 10¢ raise from each store's usual position. Deal margin at 7.3¢/gal against your cost. Not credited: competitors following the raise, which they do about half the time within three days.
This says nothing about a large raise. The estimate comes from moves of a few cents inside the positions you have held. A raise that puts a store above the majors is somewhere you have not been, and the likely shape there is a cliff rather than a slope. Store by store the ranges are wide. At 17 of 18 stores history cannot pin down the size of the response and a test can.
Mudflap
Mudflap volume fell because the saving drivers see in the app shrank, not because a deal changed.
June was a record month and August came back to where May was. The drop came from fewer transactions, not smaller ones, and it showed at most stores. Your Mudflap deals were the same in August as in June apart from a small change at Odessa, and your sign got cheaper against nearby truck stops rather than more expensive.
What changed is the saving drivers see in the app. Mudflap shows your credit price next to a driver price it sets from the rack. At most of your stores the driver price is the rack plus a fixed amount, so the saving on screen is your margin over the rack less that amount and it moves cent for cent with the rack. At the rest the driver price sits halfway between your credit price and your deal and the saving moves half as fast. Either way, when the rack fell in June and your signs held, the saving on screen was large. When the rack climbed back it shrank, and Mudflap volume followed one to three weeks later, as it did in December 2025.
| Mudflap diesel, June 2026 | 1.80 million gallons |
| August 2026 | 1.13 million |
| May 2026, for comparison | 1.11 million |
| August 2025 | 0.94 million |
| Saving shown in the app, June | about 30¢/gal |
| Saving shown in the app, August | about 13¢/gal |
All stores, by week. The saving is rebuilt from your sign, the rack and your Mudflap deal, and matched the app on the days we checked.
Since September 22 we take a daily snapshot of the app at your stops, so a change on Mudflap's side is visible when it happens.
Experiments
Each pattern above comes from history, where prices moved for many reasons at once. A controlled experiment removes those reasons. Two prices alternate at a store in three-day blocks in an order drawn at random, and the test is judged on margin across every channel.
| Store | Retail gal/day | Day-to-day swing | Vs nearest major | Competitors match a cut | |
|---|---|---|---|---|---|
| Denver | 4,031 | 20% | −2¢ | 21% | Cut test |
| Salt Lake City | 2,781 | 21% | −36¢ | 93% | Raise test |
| St. George | 2,064 | 29% | −47¢ | 57% | Raise test |
| Council Bluffs | 1,754 | 37% | −3¢ | 0% | Cut test |
| York | 1,467 | 35% | −2¢ | 0% | Cut test |
| Fremont | 1,452 | 34% | 0¢ | 0% | Cut test |
| Percival | 1,416 | 36% | −40¢ | 0% | Raise test |
| Clearfield | 1,241 | 34% | −24¢ | 0% | Raise test |
| Ogallala | 1,072 | 36% | −46¢ | 20% | |
| Omaha | 1,022 | 44% | −3¢ | 0% | |
| Junction City | 908 | 48% | −54¢ | 17% | |
| Lincoln | 907 | 46% | −38¢ | 0% | |
| Columbus | 875 | 47% | −4¢ | 0% | |
| Sidney | 799 | 50% | −6¢ | 0% | |
| Harrisonville | 760 | 50% | −18¢ | 0% | |
| Cheyenne | 754 | 47% | −22¢ | 67% | |
| Odessa | 668 | 53% | +8¢ | 0% | |
| Peru | 604 | 52% | −7¢ | 44% |
Retail gallons/day and the day-to-day swing over 21 months; position against the nearest major; the share of your cuts the typical nearby competitor matched within three days.
Thresholds
Cost and earnings
The cut test gives up 10¢ on every retail gallon on its low-price days, about half the days, whether or not anyone responds. That is the whole downside. The raise test, if history is right, earns more than the cut test costs. Gallons from fleets with a deal and from Mudflap are not credited in either table.
| Cut test | If nobody responds, per low-price day | Over 9 weeks | If drivers respond as history says, per day | Over 9 weeks |
|---|---|---|---|---|
| Denver | $403 | $12,698 | $391 | $12,319 |
| Council Bluffs | $175 | $5,525 | $147 | $4,625 |
| York | $147 | $4,622 | $110 | $3,479 |
| Fremont | $145 | $4,574 | $165 | $5,190 |
| Together | $27,419 | $25,613 |
| Raise test | Retail margin, per high-price day | Deal margin/day | Net/day | Over 9 weeks |
|---|---|---|---|---|
| Salt Lake City | +$244 | −$51 | +$193 | +$6,075 |
| St. George | +$187 | −$93 | +$95 | +$2,984 |
| Percival | +$124 | −$22 | +$101 | +$3,190 |
| Clearfield | +$100 | −$18 | +$83 | +$2,610 |
| Together | +$14,859 |
Half the days of each test are at the changed price. The raise-test worst case is the revert rule: two blocks of lost gallons before the price goes back.
How it is judged
Written down before the first block. Success is margin per store-day across every channel, at the price each transaction actually paid, higher at the changed price with the low end of the range above zero. The cut test also fails early if retail gallons and deal gallons are both bounded below what break-even needs. The test can stop on any day and the result still holds.
| Cut test | Retail gallons a 10¢ cut adds | Needed on retail | Deal gallons a 10¢ cut adds | Needed on deals |
|---|---|---|---|---|
| Denver | +1.6% (−0.3% to +3.5%) | +43% | +3.5% (+0.8% to +6.3%) | +363% |
| Council Bluffs | +1.3% (−2.3% to +5.0%) | +18% | +0.2% (−1.3% to +1.7%) | +14% |
| York | 0.0% (−2.8% to +2.8%) | +27% | +0.1% (−1.2% to +1.5%) | +20% |
| Fremont | −0.9% (−4.3% to +2.5%) | +23% | −2.1% (−4.4% to +0.2%) | +24% |
| All stores | +2.0% (+1.1% to +3.0%) | +32% | +1.6% (+1.0% to +2.2%) | +52% |
What history says at each cut-test store, and what retail and deal gallons would need to pay for the cut. The cut test is judged against this table; the raise test against the table in Raises.