Key takeaways
- The Xcel plan on the Colorado regulator’s page has 1,008 on-peak hours of 8,760 (11.5%, our sum). On-peak costs 2.7 times off-peak.
- On those base rates, an 8 kWh flexible load moved out of the peak earns at most 245.38 USD a year. A battery covering another 4 kWh adds 114.67 USD (placeholder sizes).
- Self-consumption saves 638.25 USD a year in this example’s model. A perfect-foresight optimiser saves 739.51. Of the 101.26 USD gap, 90.75 USD is grid charging.
- Forecasts matter. With example weather noise, re-planning hourly saves 661.93 USD, but a fixed plan saves 532.61 USD, less than the simple rule.
- Only some tools explain price-based dispatch. The software table below lists what each company page states.
To compare how battery tools dispatch against a tariff, see the best battery energy storage software.
TOU optimisation at a glance
TOU optimisation earns the price gap between periods, minus losses. It pays only on energy you can move. You need a tariff with periods, plus a battery or a flexible load.
| Item | Detail |
|---|---|
| Rule of thumb | Value per kWh moved = peak price minus (off-peak price divided by round-trip efficiency). Efficiency and wear are on the energy arbitrage page. |
| Unit and range | USD per kWh moved, or USD a year. Xcel base rates: 0.134 and 0.115 USD per kWh spread (summer, other months), before losses. |
| Where it matters | Battery and EV proposals, commercial bill models, controller settings. |
| Standard or rule | No standard. The utility’s filed tariff sets periods and prices. |
| In software | Hourly dispatch models with a tariff input. See the software table. |
Why does TOU optimisation matter for installers?
On Xcel’s Colorado plan the 5PM to 9PM on-peak price is 2.7 times off-peak, so software charges a battery before that window and discharges through it. The savings figure in a battery proposal rests on a dispatch assumption, as well as the tariff. Two tools can show different savings for the same bill and battery. To see how tools set that assumption, read the list of best battery energy storage software.
The assumption also changes what you promise. On a flat import price of 0.2155 USD per kWh (example), this example’s battery saves 485.54 USD with the simple rule. The no-battery bill and the 0.04 USD export credit stay the same. On the example TOU tariff it saves 638.25 USD. Pull rates from a tariff database and pair them with a consumption load profile.
Figure 1. On this example’s tariff, grid charging gives most of the optimiser’s extra saving, not smarter solar charging. All inputs are example.
How are TOU tariffs structured?
A TOU tariff splits the year into periods. Each has its own price. The splits are by hour, season and day type. They differ from one utility to the next.
The Colorado Public Utilities Commission page says TOU rates are "designed to reflect the true cost of generating and delivering electricity across the day". It also lists an Xcel Energy plan with two periods. Its on-peak is "5PM to 9PM on non-holiday weekdays, year-round". On 19 February 2025 the Commission approved the structure, says the page. The two periods start on 1 November 2025 for residential customers. The page prints summer as June to September. It shows no update date, and the prices are base rates.
| Item (Xcel, as printed, shares computed by us) | Summer (June to September) | Other months (October to May) |
|---|---|---|
| On-peak hours | 344 | 664 |
| Off-peak hours | 2,584 | 5,168 |
| On-peak price (USD per kWh) | 0.21277 | 0.18331 |
| Off-peak price (USD per kWh) | 0.07884 | 0.06792 |
| On-peak ÷ off-peak | 2.70 | 2.70 |
| On-peak share of all 8,760 hours | 3.9% | 7.6% |
The hours add up: 344 plus 2,584 is 122 days at 24 hours. At 4 hours a day, the on-peak hours imply 86 and 166 peak weekdays, or 252 in all. So there is no peak to serve on about 113 days a year. A plain calendar count gives 88 and 173 weekdays. That is a little above the page’s hours. The page does not say why, and it does not list its holidays.
Other tariffs add more periods. Examples are a shoulder band, a midday super off-peak band and weekend bands. See the tariff database page for plans with those bands. Check that the period times and export rules match the customer’s real plan. For export credit, see net metering and NEM 3.0.
How does software optimise against a TOU tariff?
Software picks a charge and discharge plan for each hour. The goal is the lowest bill. Tools run from fixed rules to optimisers.
- Self-consumption rule. Charge from extra solar. Discharge when load is higher than solar. It ignores price. OpenSolar’s help calls its default scheme this.
- Peak-window rule. Hold the charge for the peak period. OpenSolar’s help lists a "Minimize Grid Import Cost" scheme that reserves capacity for peak TOU pricing.
- Price-based dispatch. Decide from import cost and export credit. Aurora’s help says its model "primarily considers the utility rate import costs and export credit value". SAM’s deck lists Utility Rate Dispatch. It discharges in the highest-cost periods and charges in the lowest.
- Optimiser with a forecast. Plan from forecast load and solar, then correct. An NREL preprint compares heuristic and optimal dispatch under forecast error. SAM’s deck shows optimal dispatch with REopt.
An NREL preprint (July 2023) found that "using a perfect forecast can overestimate the value of hybrid PV-battery systems between 1% and 8%". That is for its own data and methods. Aurora’s page names one limit: its energy arbitrage model does not currently manage demand charges. See peak shaving.
Load shifting needs no battery. The Colorado page says even small shifts from on-peak to off-peak can save money. It adds that charging an electric car mostly on-peak may raise bills. None of the company pages listed below model flexible loads, so the maths below is by hand.
Worked examples
Example 1 is a ceiling on a real tariff structure. Example 2 compares control methods in a year-long hourly model with example inputs.
Example 1: Xcel base rates, a ceiling
Battery: 10 kWh usable, 5 kW, 90% round trip. Site load in the 4-hour window: 12 kWh on every peak weekday. Of that, 8 kWh is a flexible load moved to off-peak. The battery covers the other 4 kWh. The battery, efficiency and loads are our placeholders. We use 86 and 166 peak weekdays. We ignore wear, fixed charges, riders and export.
| Line | Summer | Other months | Year |
|---|---|---|---|
| Battery output per peak weekday | 4 kWh | 4 kWh | Daily figure |
| Battery value per peak weekday (USD) | 0.5007 | 0.4314 | Daily figure |
| Battery value (USD) | 43.06 | 71.61 | 114.67 |
| Moved 8 kWh flexible load (USD) | 92.14 | 153.24 | 245.38 |
| Both (USD) | 135.20 | 224.85 | 360.05 |
At 80% efficiency, the battery value falls to 39.29 and 65.34 USD, or 104.64 USD a year. With no flexible load, the battery covers all 10 kWh and earns 286.67 USD. Here the moved load earns more than the battery, and it needs no hardware.
To rerun Example 1 with your own inputs, open the TOU peak shift calculator on its own page.
Example 2: example tariff, control methods compared
All inputs here are example.
- Tariff: weekday peak 16:00 to 21:00 at 0.40 USD per kWh (June to September) or 0.28 (other months). Super off-peak 00:00 to 06:00 at 0.10. All other hours 0.18. Export credit 0.04.
- Solar: 6 kW, 8,400 kWh a year. Load: 9,000 kWh a year.
- Battery: 10 kWh usable, 5 kW, 90% round trip, starting empty.
- Model: weather and load noise are random draws with a fixed seed. Hourly steps, 2026 calendar, no holidays, no wear cost and no fixed charge.
| Control method | Bill (USD a year) | Saving (USD a year) |
|---|---|---|
| No battery | 1,003.72 | 0.00 |
| Peak-window rule, solar-charged | 390.05 | 613.67 |
| Self-consumption rule | 365.47 | 638.25 |
The optimiser rows follow.
| Control method | Bill (USD a year) | Saving (USD a year) |
|---|---|---|
| Optimiser, solar charging only, perfect foresight | 354.96 | 648.76 |
| Optimiser, perfect foresight, grid charging allowed | 264.21 | 739.51 |
| Optimiser, last week as forecast, re-planned hourly | 341.79 | 661.93 |
| Optimiser, last week as forecast, fixed day plan | 471.11 | 532.61 |
On these example inputs, the control methods rank as follows.
- The peak-window rule did worse than self-consumption by 24.58 USD. It did not cover non-peak load, and its battery was full more often.
- Grid charging was the main gain. It added 90.75 USD.
- The perfect-foresight saving (739.51 USD) is 11.7% above the re-planned saving (661.93 USD). NREL’s 1% to 8% range came from its own data and methods, so do not compare the two.
- A fixed plan built on last week’s data saved 105.64 USD less than the simple rule.
The optimiser looks 48 hours ahead and uses a terminal value. So it is not a strict upper bound. It adds no wear cost. See energy arbitrage for wear and self-consumption for the ratios.
How solar software handles TOU optimisation
Aurora and OpenSolar document tariff-based dispatch. SAM, HOMER Grid and Energy Toolbase do so in part. All five pages were read in October 2026.
| Software | Dispatches against TOU prices? |
|---|---|
| Aurora Solar | Yes, modelled |
| OpenSolar | Yes, modelled |
| SAM | Partly, modelled |
| HOMER Grid | Partly, modelled |
| Energy Toolbase | Partly, on-site control |
Partly: the page covers some of tariff dispatch, grid charging or demand charges, not all.
- Aurora Solar: Energy arbitrage model weighs import cost and export credit. Sales Mode lists a consumption schedule of Self-consumption or Energy Arbitrage. Notes: Help pages updated 24 September 2026 and 18 August 2026. Demand charges not managed. Initial release fixes lifetime battery cost at 0.15 USD per kWh, as printed.
- OpenSolar: Control schemes: Self-consumption, Minimize Grid Import Cost, Maximize Savings (TOU, export and usage), Peak Demand Shaving. Custom schemes set grid and system charging. Notes: Support pages updated 28 August 2026 and 7 May 2026.
- SAM: Utility Rate Dispatch schedules discharge in the highest-cost periods and charging in the lowest. Manual dispatch is listed for arbitrage. Optimal dispatch via REopt was demonstrated. Notes: Slides dated 20 September 2023 and an NREL preprint of July 2023, not a help page.
- HOMER Grid: Knowledge base lists an Arbitrage strategy: dispatch waits until energy is cheap to charge if it can. Notes: Undated. Footer UL LLC 2026. Strategy text only, tariff-input detail is not stated. Read October 2026.
- Energy Toolbase: A blog describes TOU arbitrage by its ETB Controller energy management system. Notes: Blog dated 16 December 2024, not documentation. Design-model dispatch is not stated on the page.
To compare more tools, read the list of best battery energy storage software and the list of best commercial solar proposal software.
Common mistakes with TOU optimisation
FAQs
Does a battery always save money on a TOU tariff?
No. The price spread must be larger than losses and wear. On Xcel’s base rates the energy-only break-even efficiency is 37.1%. That figure leaves out wear and tariff riders.
Is TOU optimisation the same as energy arbitrage?
No, arbitrage is one part of it. TOU optimisation also covers shifting loads such as EV charging, and choosing between solar and grid charging. See energy arbitrage.
Can I shift load without a battery?
Yes. In example 1, moving 8 kWh on each peak weekday earns 245.38 USD a year on the Xcel base rates. The 8 kWh is a placeholder.
How is it different from demand-charge management?
TOU prices energy by period. Demand charges bill the highest kW. Aurora’s page says its arbitrage model does not manage demand charges. See demand charge management.
Related terms
- Battery storage design: sizing a battery for load, backup and tariff.
- Peak shaving: lowering the highest kW a demand charge bills.
- Peak load and base load: two readings of site demand in kW.
Next step: to see which dispatch rule a battery saving assumes, use the best battery energy storage software, or see the best commercial solar proposal software.
Sources
- Time of Use Rates, Colorado Public Utilities Commission (checked 30 October 2026, no update date printed).
- Aurora help: Understanding Storage Modeling for Energy Arbitrage (updated 24 September 2026).
- Aurora help: Adding storage in Sales Mode (updated 18 August 2026).
- OpenSolar: How to create and apply a battery control scheme (updated 28 August 2026).
- OpenSolar: How OpenSolar Models Battery Energy Storage (last updated 7 May 2026).
- SAM webinar: Modeling Behind-the-meter batteries in SAM (20 September 2023).
- NREL preprint: Impacts of Dispatch Strategies and Forecast Errors on the Economics of Behind-the-Meter PV-Battery Systems (July 2023, checked 30 October 2026).
- HOMER Grid control dispatch strategies (undated, checked October 2026).
- Energy Toolbase blog: Maximizing Savings with Time-of-Use Rates for Solar (16 December 2024).
Last updated 30 October 2026. Next scheduled review: 30 January 2027.