Time-of-Use Rate Optimization with Solar + Battery

I pay different prices for electricity depending on when I use it. My utility calls this Time-of-Use (TOU) pricing. They call it a "choice." I call it an opportunity. Because when you've got a 16.16 kW DC solar array on your roof, ~96kWh of usable battery capacity in your garage, and Home Assistant orchestrating the whole thing here in Coastal Georgia, TOU pricing isn't a penalty โ€” it's a game you can win.

Here's exactly how I play it, what the numbers look like, and what I've learned after a year of optimization.

Understanding My Rate Structure

My utility offers a TOU plan with three tiers:

Period Hours Rate ($/kWh) Notes
Super Off-Peak 10 PM โ€“ 6 AM $0.06 Cheapest. Grid charging window.
Off-Peak 6 AM โ€“ 4 PM, 8 PM โ€“ 10 PM $0.11 Normal rate. Solar production hours.
Peak 4 PM โ€“ 8 PM $0.21 Most expensive. Evening demand.

The spread between super off-peak and peak is $0.15/kWh. That's the arbitrage opportunity. Every kWh I can shift from peak to super off-peak saves me $0.15. Every kWh I can replace with solar saves me $0.11-0.21 depending on when I use it.

The Strategy

My optimization strategy has four pillars:

Pillar 1: Never Import During Peak

This is rule number one. Between 4 PM and 8 PM, my battery and solar (what's left of it in the late afternoon) cover everything. The inverters are configured to prioritize battery discharge during these hours, and my automation verifies that grid import stays at zero.

In practice, this means the battery needs at least 25-30% SOC at 4 PM to cover a typical evening. On high-AC days, it needs 35-40%. My automation starts checking at 2 PM โ€” if SOC is below the threshold and solar forecast for the remaining afternoon is poor, it triggers a brief grid charge during the remaining off-peak hours ($0.11) rather than risk importing at $0.21.

Pillar 2: Solar Maximization During Off-Peak Daytime

From 6 AM to 4 PM, the 16.16 kW DC solar array is producing. Every watt that goes to the home or battery is displacing $0.11/kWh off-peak electricity. I schedule high-consumption tasks during this window:

  • EV charging: Solar surplus goes to Augustus first
  • Laundry and dishwasher: Run between 10 AM and 2 PM
  • Water heaters: Two electric water heaters on timers to run during solar production hours

These aren't inconvenient changes. The dishwasher doesn't care when it runs. I just shifted the timers.

Pillar 3: Strategic Super Off-Peak Grid Charging

Super off-peak at $0.06/kWh is cheap enough that it sometimes makes sense to charge the battery from the grid. But not always. My automation considers:

  1. Tomorrow's solar forecast: If sunny, skip grid charging โ€” solar will fill the ~96kWh battery capacity for free
  2. Current SOC: If above 60%, probably fine without grid charging
  3. Day of week: Weekends I'm home and use more โ€” might need extra buffer
  4. Weather: Multiple cloudy days ahead? Charge now

The decision logic runs at 9:45 PM, right before super off-peak starts at 10 PM:

IF tomorrow_solar_forecast < 30 kWh
   AND battery_soc < 70%
   THEN "Charge Batteries" โ€” grid powers home and charges battery to 80%
ELIF battery_soc < 40%
   THEN "Charge Batteries" โ€” grid powers home and charges battery to 60%
ELSE
   "Battery First" or "Grid First" based on current conditions

The three modes:

  • Charge Batteries: Grid powers home loads AND charges the battery bank
  • Battery First: Home runs off stored battery power (no grid)
  • Grid First: Grid powers home loads, batteries not charged

Over the year, I grid-charged overnight about 40% of nights โ€” mostly in winter and during cloudy stretches.

The Home Assistant Implementation

Rate Schedule Entity

I created a template sensor that always knows the current rate:

template:
  - sensor:
      - name: "Current Electricity Rate"
        unit_of_measurement: "$/kWh"
        state: >
          {% set hour = now().hour %}
          {% if hour >= 0 and hour < 6 %}
            0.06
          {% elif hour >= 16 and hour < 20 %}
            0.21
          {% else %}
            0.11
          {% endif %}

This drives the color coding on my dashboard โ€” green during super off-peak, yellow off-peak, red peak. Visual reminder of what every watt costs.

Cost Tracking

I track running costs in real-time using a utility meter helper combined with the rate sensor:

  • Daily grid cost: Sum of (grid_import ร— current_rate) per interval
  • Daily avoided cost: Sum of (solar_used + battery_discharged) ร— current_rate
  • Monthly running total: Accumulated daily costs
  • Projected monthly bill: Running total + (daily average ร— remaining days)

The dashboard shows these in a card I look at every morning. Seeing "$4.20 projected bill" for the month is deeply satisfying when the same usage would have been $160 on a flat rate without solar.

Automation Group

The TOU automations are grouped together:

  1. TOU Mode Switcher โ€” Changes battery operation mode at each rate transition
  2. Solar Forecast Evaluator โ€” Runs at 8 PM, checks tomorrow's forecast
  3. Super Off-Peak Charge Decision โ€” Runs at 9:45 PM, decides whether to grid-charge overnight
  4. Peak Guardian โ€” Runs continuously during 4-8 PM, ensures zero grid import
  5. Monthly Rate Comparison โ€” On the 1st of each month, calculates what I would have paid on flat rate

The Results: Actual Billing History

I flipped the breaker for solar in late April 2025. Here's my actual electric bill history, pre- and post-solar:

Pre-Solar (Nov 2024 โ€“ Apr 2025)

Month Bill
Nov 2024$247
Dec 2024$233
Jan 2025$194
Feb 2025$294
Mar 2025$199
Apr 2025$210

Pre-solar average: $229/mo

Post-Solar (May 2025 โ€“ Feb 2026)

Month Bill Notes
May 2025$109First full solar month
Jun 2025$145
Jul 2025$125
Aug 2025$161
Sep 2025$117
Oct 2025$44Lowest bill
Nov 2025$83
Dec 2025$124
Jan 2026$154
Feb 2026$142

Post-solar average: $120/mo

Summary

  • Pre-solar 6-month total: $1,377 (avg $229/mo)
  • Post-solar 10-month total: $1,204 (avg $120/mo)
  • Average monthly savings: ~$109 (48% reduction)
  • Projected annual savings: ~$1,300+

The numbers speak for themselves. October 2025 at $44 is my favorite bill โ€” that's less than the connection fee alone on a bad month pre-solar.

Peak Grid Import

This is my proudest metric. Out of 365 days:

  • 312 days: Zero peak grid import
  • 41 days: Less than 1 kWh peak import
  • 12 days: More than 1 kWh peak import (extended heat waves, system maintenance)

Most months I don't import a single watt during peak hours. That's the goal โ€” keep every possible kWh off the $0.21 rate.

Cost Per kWh Consumed

My effective cost per kWh consumed (total bill รท total consumption) dropped significantly after solar came online. For comparison, my neighbor without solar pays about $0.14/kWh. I'm paying a fraction of that for the same electricity.

Mistakes I Made

Underestimating summer peak demand. My first summer, the AC compressor starting up during peak caught me off guard a few times. The initial surge draws 4-5kW for a few seconds, faster than my automation could respond. Fix: I now pre-stage the battery discharge rate 15 minutes before peak starts, so it's already pushing power when the transition happens.

Over-optimizing. There was a period where I was tweaking thresholds daily, chasing another $0.50/month in savings. The 80/20 rule applies hard here. The basic strategy (don't import during peak, charge at super off-peak or use solar) gets 80% of the benefit. The fine-tuning gets the remaining 20% but takes 10x the effort.

Is TOU Right for You?

TOU rates benefit you if:

  • You can shift consumption away from peak hours
  • You have battery storage to buffer the peaks
  • You have solar that produces during off-peak daytime hours
  • You're willing to run some automations (or set manual timers)

TOU rates hurt you if:

  • You can't shift consumption (e.g., home all day with AC)
  • You have no storage or solar
  • Your peak usage aligns with the utility's peak pricing

For me, with 16.16 kW solar + ~96kWh battery + Home Assistant here in Coastal Georgia, TOU is a no-brainer. The rate spread is free money if you have the tools to exploit it.

The Bigger Picture

Utilities are moving toward TOU and dynamic pricing everywhere. It's the future of the grid. The people who invest in solar, storage, and automation now are positioning themselves to benefit as these rate structures become universal. Those who don't will pay more and more for peak electricity while the grid strains under electrification.

I'm not doing this to save the planet (though that's a nice side effect). I'm doing this because the math works. And every month the math works better, because rates go up and my system is already paid for.

Play the game. Win the game.

#tou #solar #battery #home-assistant #energy-optimization #utility-rates

Written by Big Kel

Retired IT professional exploring home automation, tech, and life. Find more posts on the blog.

โ† Back to Blog Home โ†’