Did a lot of this years ago, but not in Sage. Seems like a few (several?) A/R Misc items will serve the functions you need. Pay attention to price levels if there are discounts (or add-ons) based on consumed volume. Also, some utility companies have seasonal price variations so that's going to have to come into consideration. Other price levels may be related to incomes of consumers, etc. It seems like all of these situations will be well suited to a base price with pricing add-ons as needed. Of course, regulatory concerns will come into play as well. Come to think of it, Google may be a better friend than I am.
One of the biggest challenges we had were with step-tiered differential billings. In one (basic) water company, if the customer used over a certain number of gallons, they got a discount but only for the water above the base. Pricing schedules were multi-tiered.
For example, from 1 to 1000, price x. From 1001 to 2000, price x-y%. From 2001 to 3000, price x-z%. And so on. The system we were using at the time would automatically apply the discounts based on the volumes and cutoffs.
We quickly learned, though, that if their meters were read late, customers were getting a lot of water a lower rates than they should have because the system was subtracting the last meter read from the current meter read.
Clear as mud? Yeah, they thought so too. Ultimately, we fixed that problem with a personnel change and increased the company bottom line by a million bucks a year.
Yeah, the heady days of accounting and dBase III+ programming. :-)
There are a couple of other stories but I'm already too windy....... (Can we bill for wind?)