[ View menu ]

To pre-pay or not to pre-pay for gas when renting a car?

Filed in Ideas ,R
Subscribe to Decision Science News by Email (one email per week, easy unsubscribe)



One question we get asked a lot is whether it’s worth it to pre-pay for the tank of gas when renting a car.

At first, blush it seems like something you should never do. In the best case, you pay market rate for gas, and in the worst case, you pay for a tank of gas you never consume (what if your trip gets cancelled)?

At second blush, it can be worth the risk to avoid the hassle of fueling up just before returning the car. If your time and peace of mind are worth something, then maybe you should pre-pay when you are reasonably sure you’ll return it below a certain percentage full. But what percentage?

To help with this decision, we’ve calculated the amount of money you waste when returning the car at various percentages full (above). We plugged in the New York City price of gas we face ($4) and the current national average ($3.56). For us, the hassle of refueling in the South Bronx after a weekend in the country is about $5, so we should probably pre-pay when we’re pretty sure we’ll return the car about 5-10% full.

We discussed this topic with Sid Suri and concluded that many factors go into this decision:

  • Freedom from stress of having to fill up
  • Stress of trying to run the tank down as low as possible without running out of gas (sure, it’s a commission of the sunk cost fallacy, but we’re humans)
  • The thrill of returning the car right before it runs out of gas
  • Time of day of return
  • Cognitive costs of deciding how much gas to purchase during a trip so it’s nearly empty upon return
  • Safety of gas station near return location
  • Gas lines (we once pre-paid after Hurricane Sandy and avoided a several-hour long gas line)
  • The “fee” for returning the car less than 100% full (something like $8 / gallon) vs. the expected loss by pre-paying

We think that:

  • It would be much better if you could just pre-pay for a quarter tank instead of a tank. We’d even accept a small fee to do this.
  • Most people who pre-pay are sticking it to their employers.

Graphs were made in R using Hadley Wickham’s ggplot2 package.

Code is here:

p=p+scale_x_continuous("\nPercentage left in tank",limits=c(0,.3),
p=p+scale_y_continuous("Money Lost\n",limits=c(0,20),
p=p+ggtitle("The gamble of pre-paying for gas")


  1. Mel says:

    I’m glad someone’s thinking about this. I recently rented a car in Texas from Advantage. While I pre-paid for a full tank of gas when i left the agency, I was aware that they would credit my account with the amount of gas dollars still in the tank on return. This took the guess work out of the equation.

    February 20, 2013 @ 11:04 pm

  2. Hasan Diwan says:

    Perhaps providing working code would be helpful? I get percent_format() not available. I’m trying to duplicate the graph for California. I get the same plot you have posted, but also get errors relating to the percent_format() function.

    February 21, 2013 @ 6:33 pm

  3. dan says:

    I’ve updated the code. You need to invoke library(scales) and library(ggplot2)

    February 21, 2013 @ 6:45 pm

  4. Ken Butler says:

    I’ve used Enterprise in Canada, and I virtually always pre-pay my gas. First, the Enterprise price is noticeably less than the pump price. Also, I *have* pre-paid a fraction of a tank; they tell me “oh, it’s a half tank”, and I say “I’ll pre-pay that”. This presumably tilts things in favour of pre-paying (over returning the car with the gas tank as full as it was, which adds its own uncertainty, as in “how much gas do I need to fill this unfamiliar car’s tank half full?”.

    February 21, 2013 @ 9:07 pm

  5. Ken Butler says:

    To respond to Mel’s comment, I’ve had Enterprise credit me for a fractional tank of gas, as an “extra” they can offer to make a customer happy.

    February 21, 2013 @ 9:09 pm

RSS feed Comments

Write Comment

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>