I think that off-peak SMS is definitely more expensive to meter than to provide.

The marginal cost is storing 160 bytes for a few seconds, and transmitting those bytes over idle network bandwidth, which has zero marginal cost, and then over the air, which does have a nonzero cost: 1 watt * 160 bytes / 12 kilobytes per second ≈ 20 millijoules, about US$3 × 10⁻¹⁰ at 6¢/kWh — ⅓ nanodollar.

The cost of storage is a little more complicated to quantify. Page 72 of the new Warehouse-Scale Computers book has a couple of case studies: one machine with four disks with a $10 757 three-year TCO and one machine with an unspecified number of disks (let's assume four here also) and a $8 702 three-year TCO. That's maybe two terabytes × 36 months for, generously, US$11k. That's US$1.5 × 10⁻¹⁰ per byte-month, or US$9.3 × 10⁻¹⁵ per byte-second. (The cost might be a little higher due to the need to store some of your bytes on old servers, or equivalently to depreciate your server faster at first.)

The cost of metering, by comparison, is to send several messages over the network to update redundant billing records in stable storage, where they must remain at least for the rest of the month. In many cases, to- and from- information is retained for the rest of the month and then printed on the bill. Origin, destination, and timestamp are, say, 32 bytes, and have to be stored for half a month on average, for US$2.4 × 10⁻⁹ (per replica), which is more than ten times the cost of transmitting the original message over the air. But then if they're printed on the bill, they might take up 1/300 or so of a sheet of 8½×11 paper, which costs on the order of 3¢ to print, so printing them costs on the order of 1/100¢, or US$1 × 10⁻⁴.

But if you're just incrementing a counter in stable storage, rather than recording per-SMS information, you don't pay any extra marginal storage cost per message; you just have to pay a database update. Most database servers are actually bottlenecked on random I/O rather than sequential I/O, but in order to come up with a minimal rather than a maximal cost of a write, let's assume the billing database server is bottlenecked on sequential output at 400 megabytes per second on its four disks, and we need 8 bytes per update. That's half a million SMSes logged per second, presumably on two redundant servers; if we charge the server TCO entirely to the update rate instead of the storage cost, the US$305/month TCO per server comes out to 4.6 × 10⁻¹⁰, which is still more than the cost of sending the original SMS.

However, by far the biggest cost here, other than the cost of printing, is the fixed cost of maintaining the user's account. Just maintaining their name, address, and phone number on a disk in a data center somewhere costs at least 50 bytes, which is about US$7.5 × 10⁻⁹ per month, the cost of 25 SMSs; they probably don't send more than 30 000 SMSs per month, which even in the worst case cost US$9 × 10⁻⁶ of energy to transmit and US$7.2 × 10⁻⁵ to log for the rest of the month. But several times a minute, the phone talks to the tower to let it know it's still in range, doesn't it? And the cost of accepting a credit card payment from the client (once a month, normally) is in the range of 30¢, isn't it?

So, for 30 000 off-peak SMSs in a month:

Keeping a record of the customer's account: ≪1 microdollar

Providing the service: 9 microdollars

Keeping a detailed record of the service provided in order to bill for it: 72 microdollars

Keeping the phone associated with one cell or another: 36 microdollars

Printing out a paper bill: 300 000 microdollars

Mailing the bill (guessing): 1 000 000 microdollars

Accepting credit-card payment: 300 000 microdollars

Handling a five-minute customer-service phone call (guessing): 1 000 000 microdollars

I suspect that on-peak SMS isn't substantially more expensive to provide, but I'm not doing that calculation right now.