Mobile data caps can be senseless

So finally it has happened. Singtel launched their new price plans for mobile with data bundle. In short, they have decrease mobile data for the lowest tier to 2GB from 12GB, but tries to make up by giving more free SMS.

This can’t be a good idea, for many reasons. First of all, what you have give, you can’t take away. Never give a child a toy, and he might throw a bit of a tantrum. Take away his toy, and you are going to have a tough time.

Secondly, data usage is just going to go up in the future. When M1 first launched a plan with 12Gb, I was shocked. There was no way anybody could consume that much! Your battery will not last a day for you to try to download 400Mb everyday. However, nowadays it is quite possible to go past 1 or 2 GB. Within half a month of getting my new SGS III, I have already consumed 500Mb. This is just for Facebook, Twitter, Google Reader, etc. I don’t even instagram religiously like some.

Singtel has countered argue against these common perceptions by saying that 10% of their users use 64% of their bandwidth, hence they need to limit them. I feel that this is crap.

The Pareto principle (commonly known as 80-20 rule) is commonly found in most areas. 80% of wealth is owned by 20% of people, 80% of software bugs are written by 20% of developers :D. Hence, it is normal for 80% of bandwidth to be used by 20%. If you are not able to support such a distribution, please don’t sell such a plan at the beginning!

Secondly, and most importantly, it is important to look at how networks work.

A data network link is like a road. At any time, there can be few cars, or many cars. There are periods of time when there are many cars (peak hours), causing traffic congestion. These are times when you might feel that the network is shitty. If I was a betting man, many times when you feel that the 3G network is crap, you are probably commuting to and from work, or while waiting for lunch or dinner? But these are the times also when everybody else is trying use the network! Again, Pareto comes to mock us – 80% of data is transmitted during 20% of the time. Try during 3am, I bet you will get a fantastic speed!

Capping data is like limiting how many kilometres a car can drive per month. Do you think this is a good idea to reduce traffic congestion during the peak hours? In essence, people who still need to drive at that time will continue to do so. They might cut back on their off hours usage, like driving for supper or for pleasure. However, off hours are the times when it is OK to use the road! When the highway is empty, I don’t give a damn how much you want to drive, from Pasir Ris to Jurong and back again 10x. It doesn’t matter.

Hence, it doesn’t matter how much data one uses a month. What matters is that heavy downloaders don’t do it when everyone else needs to use the network.

How do you implement that? A naive way will be have 2 caps, one for peak hour and one for off-peak. Telcos are already doing this, by charging more for peak hour call minutes (of cos, the other reason why they have peak call minutes is because of willingness-to-pay, which is another topic altogether). Another way is just to rate limit based on how congested the network is. If congestion is detected, start rate-limiting the heavy 20% downloaders. This is why I also against blocking P2P – it is okay to do P2P, when nobody needs to use the network. Once the network is build, the incremental cost of sending each packet is so minuscule, it makes no sense not to fully utilise the pipe.

Of course, technically, there exists some challenges. More money have to be put into equipment. There are no standard protocols to do token-based network congestion control yet. I am aware that network operators are between a rock and a hard place, but really, dropping bandwidth cap is not the way to go.