Being a small ISP, that's a good solution, but you run into implementation problems. I am dealing with a migration to a usage based billing. And it is difficult to extract that data from the DSLAMS and then turn it into meaningful data that our billing system can handle. Plus you need to provide the user access to that data so they can check to see what their usage is at any given point. It's expensive to implement, and it must be custom written for your specific DSL DSLAMS and billing system. Ours currently can't tally usage.. So we'd have to write our own scripts to do that. What if there is an error in them? What if it breaks in 3 months after I leave the company or get hit by a bus? What if a customer refutes his usage, can you back up your data's integrity against his data? There are tons of expensive problems we're running into going usage based :(