On February 4th, 2013, the Royal Canada Mint stopped making pennies. This means that effectively soon, cash transactions will have to be rounded to the nearest 5 cents. Example: $1.01 will be $1.00, $1.03 will be $1.05, and $1.08 will be $1.10 (official Canadian guide to this: http://www.fin.gc.ca/1cent/index-eng.asp). In principle, if the price of an item is random, then on average, all transactions should even out: sometimes the rounding will be to your advantage, sometimes it will be to the store’s. However, prices are not random, as walking through a supermarket will tell you. Very often, prices end in 99 cents. In the worse case scenario then, if you ever only make one transaction at a time, and buy items that end in 99 cents, you will be charged a penny extra each time (if you buy some food item that is not taxed). Generally, this would not be much of a problem, unless there is a systematic statistical bias overall. That would mean that while the rounding procedure is meant to be a “fair and transparent matter”, people would end up paying more inadvertently.
Of course, most transactions won’t be the worse case senario of rounding up every time, but the question still remains: is there a statistical bias given actual store prices? This is a tough question to answer for all of Canada, but I can shed some light at least into the results for my own household grocery bills. I took four months of grocery receipts from 2012, which comes out to be 81 separate transactions, and determined how often rounding to the nearest nickel would give to the advantage to the grocery store compared to how often it is advantageous for the buyer. Hopefully, this will well sample different purchases. I wrote a python script to tabulate the difference in price I would have paid with rounding vs. the price without rounding (by the way, to round to the nearest 5 cents in python: 5* round(price*100/5)). The plot below shows how many transactions would have resulting in pennies gained for the store vs. how much the buyer would gain (the negative bins):
It looks like overall, the transactions statistically evened out in the sense that the times the store would gain is statistically the same as when they don’t, given large enough samples. There is a curious dip in the +1 and -1 penny bins, which I can’t quite explain. This may be a statistical fluke as the error bars are within 1 sigma of the other bins, but it may be that there is some bias in prices showing up (how often do you see prices that end with 3 cents?). By the way, out of a total of 81 transactions over 4 months, I would have gained 2 cents all together.
Given this analysis, I think that this rounding method works overall, at least at the grocery store. It would be interesting to see what this analysis would be like for things like clothing or other stores. In general, when you buy multiple items, the final digit will be more randomized than if you purchase just one. Taxes will also generally add in a variable amount at the end. Given a sufficiently detailed statistical analysis of people’s shopping habits though, it might be possible to subtly change prices to gain a slight advantage when rounding is involved. I for one though think that the convenience of not having tons of pennies around outweigh this scenario.
Thanks for the penny rounding tip in Python without if statements…