1,000,000 erase cycles is a lot, but you can burn that out quickly as you realized. For once-a-second readings, that would be met in 11.6 days.
As already mentioned, storing in RAM then writing to EEPROM only occasionally is one way.
Another way is to use FLASH EEPROM. With FLASH it's only the erase count that matters. You can write many times turning 1s into 0s without penalty. If you only have a few readings and relatively large amounts of FLASH space, you can use records.
Erase the data, leaving it all 0xFFs.
For writes:
Write sequentially into the EEPROM space. When you're full, erase it all and start over. If your data value is all 0xFFs, you've got to change it by one LSB to avoid looking like a blank record. In your case, that'd be an overflow condition anyway.
For reads:
Look for the all-0xFFs record, and back up one. If you reach the end and there's no all-0xFFs record, the last position is it.
FLASH endurance is usually lower... say 100,000. However, a simple 1Mbit FLASH would have enough space for nearly 104 years of storage using this method.
For a commercial product like this, you should have power failure safety on EEPROM writes. Either add power failure detection and enough backup power (supercap, whatever) to complete a write operation... or perform the writes in a fail-safe manner. To do this, you could divide the EEPROM into two halves, alternate between halves on writes, and write a CRC with the data record. The read would look for the latest record in either page with a valid CRC. The halves must be erase-block aligned for safety.
Utilities usually want more than just the total used power, though. Consider keeping track of how many counts/second you get and store these numbers as well. Most utilities charge commercial customers based on the maximum power they need in any given 15 minute or so interval as well.