>But then you have monthly payments which vary, potentially wildly.

It doesn't make any sense to allocate costs by neighborhood. If you have single digit numbers of heavy users in the entire country then you can amortize that cost over millions of people and it will be minimal. If you have millions of heavy users then the all you can eat plan will cost more as it ought to.

> And speaking of markets, what about the demand for low-cost, high-burst but transfer-limited connections?

So we're getting back to the real problem here. The problem is that number of bits transferred is monumentally disconnected from the overall cost of operating a network. It costs the same amount to dig a hole to put a wire in regardless of the number of wires you put in it or the number of bits they ultimately carry, and that is the predominant cost of being able to transfer bits. Guys in trucks digging holes for wires and putting them back on the poles when the weather knocks them down. Paying for land taken through eminent domain. Employee compensation, property insurance, backup generators, idle power consumption, equipment depreciation. They're all fixed costs that don't change with the number of bits you transfer and they dominate the cost of operating a network.

So now you have a pricing problem. There are a couple of different "straight" pricing models. The first is you charge everybody a fixed monthly fee and let them transfer whatever they want. Someone who only transfers 50MB per month is still getting the benefit of men in trucks fixing downed wires 24/7 and access to the call center for support etc. etc., so they have to pay their fair share of that, which dominates the cost of the network and makes flat rate pricing sensible. The fact that they don't transfer very many bits doesn't make it any less expensive to dig up their street.

The second alternative is to charge exclusively by the byte. This is a preposterous failure. The problem is that, because the people who only transfer 50MB per month would be paying approximately zero dollars, but you still have to cover the cost of the line workers and accountants that service them, the cost per byte would have to be extremely high so that the heavy users pay enough to make up for the light users paying almost nothing. And this immediately snowballs because 90% of the heavy users aren't going to continue to be heavy users if they have to pay $2000/month to make up for twenty light users paying $5/month, so they turn into light users and then the price per byte has to go up to make up the revenue. Repeat until the price per byte is so high that even the light users are back to paying ~$50/month again but now you've destroyed the market for any services that require a significant amount of bandwidth and your customers hate you for charging a dollar for an email attachment.

So you can't charge solely by the byte, why not come up with some hybrid of the two and try to thread the needle? Charge a fixed monthly fee for turning on the pipe and then charge a "reasonable" amount for transfer on top of that. The fail is how much. The cost of putting twice or ten times as many strands of fiber in the ground when you already have the hole open is negligible compared to the other costs of operating the network. If you allocate based on that cost then the price per GB is going to be in the fractions of a penny. The pricing model ends up being de facto equivalent to a fixed monthly fee because the additional cost per byte would be so low.

But this is looking at all of this like a regulator -- someone who wants to maximize social utility. That's not what ISPs actually want to do. They don't want to put a hundred stands of fiber in the ground, even if it only costs 1% more in total than putting ten, because it eliminates "valuable" scarcity and reduces their ability to engage in price discrimination. Enterprise customers are willing to pay a lot more for the exact same piece of wire than a residential customer because the enterprise gets more value out of it and has more money. That has nothing to do with the cost of providing the service and everything to do with who has deep pockets. So they come up with a pricing model that will stick it to the enterprise and extract the $XXXX/month the enterprise is willing to pay, hence "no servers" and transfer caps etc. etc. because enterprises want to run servers and transfer a lot of data. Not because it costs the ISP that much more, but because that class of customers is expected to have more money.

That isn't what you want from a policy perspective at all, because the price discrimination is too blunt. Small businesses are less able to pay the "enterprise" rates so you drive them out of business in favor of larger companies. Software developers who want to encourage end users to run things that would be considered "servers" or would transfer a large amount of data get pushed out of the market because their customers on residential connections aren't allowed to do it. Meanwhile users are uselessly encouraged to "conserve" bandwidth even though unused hardware capacity can't actually be saved for use later, which wastefully reduces the benefit users receive from their connections. (The fact that not using unused transfer capacity is wasteful is hard for some people to wrap their heads around, but think about it. It's like "saving" perishable food by not eating it before it expires.)

Even if you like the idea of enterprises paying more than residential customers, distorting the market like this is not the way to do it. You could get a much better result by e.g. taxing telecommunications usage by corporations with more than 1000 employees and then using the money to subsidize connections for everybody else.