Even if you do accept variable pricing based on use, the data cap strategy doesn't make sense. Why not just charge more when the network is stressed? At least consumers could be incentivized to make efficient use of the network.
There's definitely no way they could write a simple app to provide this info, and it would be crazy for them to white-list it so it didn't count against bandwidth usage :)