Back to all posts

Peak shaving: how to model time-of-use battery savings

A battery's saving is not its capacity times the price of electricity. It is a price spread, captured a limited number of times a year, minus losses. Here is how to model it under UK network charges, and what changes in South Africa.

An engineer reviewing an interval electricity demand profile with peak periods highlighted beside a commercial battery storage unit

A business asks the same question at every battery meeting: what will this save us?

The answer that usually comes back is a single annual figure, built by multiplying the battery's capacity by the price of electricity by 365. It is clean, easy to produce, and almost always too high. It survives the sales conversation, then falls apart in front of a finance director who asks what happens on the days the battery cannot complete a cycle.

The saving is not capacity times price. It is a price spread, captured a limited number of times a year, minus the energy lost on the round trip. Getting that right is what peak shaving modelling actually is.

This article works through that model against UK network charges, because the UK is where the mechanism is most tightly regulated and most often modelled wrongly. A closing section covers South Africa, where the same arithmetic produces a very different sales argument.

What is peak shaving?

Peak shaving means discharging stored energy during the periods when electricity is most expensive, or when the site's own demand is at its highest, so that less is drawn from the grid at exactly those moments. The load does not change. The source covering it does.

The mechanism underneath is a price difference: energy is bought when it is cheap, held, and used when the alternative would have been expensive. In energy trading language this is sometimes called arbitrage, but the term travels badly, because on a real site the value shows up as a smaller bill rather than as a trade. What matters for modelling is the spread, how often you can capture it, and how much energy you lose capturing it.

Three things follow from that definition, and each one breaks a common assumption:

  • A bigger battery does not linearly mean a bigger saving. Once the battery covers the whole expensive window, extra capacity sits idle.
  • A cheaper tariff is not automatically better. A low average unit price with no time variation gives a battery nothing to work with.
  • The saving is bounded by the number of useful cycles, not by the hours in a year.

This is not a niche application. Storage deployment has been growing faster than any other commercially available clean energy technology, and shifting energy between price periods is the dominant reason it gets installed[1].

Peak shaving, load shifting, and backup are three different savings

These three get merged into one number constantly, and they should not be. They come from different parts of the bill, and they size the battery differently.

What it doesWhat it earnsSizing driver
Peak shavingCovers existing demand from storage during expensive periodsReduced peak energy rates and capacity or demand chargeskWh needed to cover the peak window, and kW to meet the demand
Load shiftingMoves the consumption itself to a cheaper timeThe same rate difference, with no capital costNothing, it is an operational change
BackupHolds energy in reserve for an outageAvoided cost of downtime, not a bill savingRequired autonomy in hours, at critical load only

They also compete for the same asset. A site that wants four hours of resilience and aggressive peak shaving from one battery is asking the same kWh to be in two places at once, and a model that adds both savings together is double counting. Storage valuation frameworks treat this stacking problem explicitly, because a value stream counted twice is the most common way a business case inflates itself[2].

Load shifting is free, so use it first: if a process can genuinely run at 2am instead of 5pm, it should. Peak shaving earns its capital on the loads that cannot move, and that set is growing as sites electrify heat and transport, covered in more depth in energy security starts at the building.

Which parts of a UK bill a battery can actually reduce

This is the step most models skip, and where the number usually goes wrong. A commercial electricity bill is not one price. It is a stack of components, and a battery only touches some of them. In the UK the split is unusually explicit, because a regulatory decision drew the line for you.

Energy charges, billed per kWh. This is where time-of-use pricing lives and where a battery earns on the spread. It includes the distribution unit rate, which is still time-banded: the Red, Amber and Green time-of-day charges continue to apply to the proportion of the charge that remains in the unit rate[4]. The red band, typically a narrow weekday afternoon and early evening window, is where a battery does most of its work.

Capacity and demand charges, billed per kW or kVA. These are billed on the site's agreed available capacity or its highest measured power draw over the billing period, not on total consumption, and they behave completely differently. Energy charges reward doing it every day: miss a cycle and you lose that day's saving, nothing more. Demand charges reward never missing once, because one uncovered peak interval sets the billed figure for the whole period. Energy savings are therefore bounded by capacity in kWh, demand reduction by power in kW, and the same site can need a different battery depending on which layer dominates its bill.

Fixed and non-avoidable charges. This is the layer that quietly inflates business cases, and in the UK it grew. Ofgem's Targeted Charging Review decided that residual network charges are levied as fixed charges for all households and businesses[3]. Residual cost is roughly 90% of the transmission charge and around 50% of the distribution charge, varying by region, and a site's band is allocated from its voltage, capacity and consumption history rather than from what it does this year. The distribution element applied from April 2022, the transmission element from April 2023[4].

The consequence is blunt: a substantial slice of UK network cost is now outside the battery's reach by design, and a model that credits the battery with reducing a blended cost per kWh overstates the result by roughly the size of that slice.

Check what the site is actually charged before you model anything

Get the site's most recent full bill and its supply contract, not a headline rate. Which components vary with time, which vary with capacity, and which are fixed regardless of behaviour will change the answer more than the choice of battery will. A UK business case built before the Targeted Charging Review took effect assumed avoidable costs that are no longer avoidable, so old rules of thumb do not transfer.

How a time-of-use tariff changes the maths

A time-of-use tariff charges different amounts at different times of day rather than one flat rate around the clock. For a battery, this is the difference between having a business case and not having one.

The number that matters is the spread, not the average. Take two tariffs with an identical annual average unit price, where the first varies across the day by a small fraction of a penny per kWh and the second by nine times that. The battery earns roughly nine times more on the second while the site's average cost of electricity is unchanged. A procurement team optimising purely for the lowest average rate can quietly destroy the business case, and nobody notices until the savings do not appear. "Which tariff should this site be on?" and "what will the battery save?" are the same question asked twice.

Two things matter beyond the size of the spread. Predictability: a fixed-window tariff lets you model a repeatable daily cycle, while a dynamically repriced one gives a wide spread on some days and none on others. And coincidence with the load, because a wide spread in the early evening is worth nothing to a site that closes in the afternoon.

Why annual averages overstate the saving

Modelling this needs the site's own inputs: a full year of interval consumption, the tariff structure including how any capacity charge is measured, the generation profile if there is solar, and the battery's usable capacity, power rating, round-trip efficiency and degradation curve. Without them you have an estimate wearing a model's clothes.

Even with them, averages fail for a specific reason: the battery's value depends on the coincidence of high price and high load, and averaging destroys exactly that information. Four things get lost:

  1. Days without a full cycle. Weekends, shutdowns, holidays, and days when the load is too small to absorb a full discharge. A site running 250 operational days is not capturing 365 cycles, whatever the datasheet allows.
  2. State-of-charge constraints. If the cheap window is too short to refill the battery, the next day's capture is partial.
  3. Round-trip losses. At 88% efficiency you buy roughly 1.14 kWh for every 1 kWh you deliver, and you pay for that difference at the cheap rate.
  4. Degradation. A twelve-year business case built on year-one usable capacity overstates every year after the first.

None of these are exotic. All four are knowable at design time, and leaving them out is what produces a figure the customer's own finance team can dismantle in one meeting.

Interval data is not optional here. A model built on monthly totals cannot distinguish a site with a sharp 90-minute peak from a flat profile at the same annual usage, and those two sites have completely different battery cases. Where interval data is genuinely unavailable, say so in the proposal and mark the result as indicative.

A UK worked example, and what it assumes

The figures below are illustrative. UK commercial energy rates are contracted per site rather than published, so every one of these is a per-site input. The example exists to show how the calculation behaves, not to supply numbers you can reuse.

InputValue
Usable battery capacity100 kWh
Power rating50 kW
Peak rate£0.32 per kWh
Off-peak rate£0.14 per kWh
Spread£0.18 per kWh
Round-trip efficiency88%
Days with a full useful cycle250

The naive calculation, the one that reaches most first proposals:

100 kWh x £0.18 x 365 days = £6,570 per year

The same site, modelled properly:

100 kWh x £0.32            = £32.00 covered at the peak rate
(100 kWh / 0.88) x £0.14  = £15.91 spent charging off-peak
(£32.00 - £15.91) x 250 days = £4,023 per year

The gap is about 40%, and none of it comes from a pessimistic assumption. It comes from counting only the days the battery can work and from paying for the energy lost on the round trip. Note where the efficiency sits: not on the spread, but on the energy bought, because 1 kWh delivered at the peak rate costs 1/0.88 kWh at the off-peak one. Add first-year degradation and year two is lower again.

That £4,023 is also only the energy charge component. A measured peak or agreed capacity is a second stream, worked out from the highest interval in each billing period, before and after the battery, using the same interval data. What it is not is a share of the fixed residual band, which stays where it is whatever the battery does.

Show both figures in the proposal. The naive number alongside the modelled one, with the difference explained, is more persuasive than the conservative figure alone: it demonstrates that the result came from a model rather than a multiplication, which is what a sceptical buyer is testing for.

South Africa: the same battery, a different argument

For most of the last decade the South African storage pitch wrote itself: supply was unreliable, and a battery was sold as continuity. That argument has weakened on its own terms. As of 4 August 2026, Eskom reported 441 consecutive days without load shedding, the last implementation having been on 16 May 2025[6].

This does not make the battery case weaker. It makes it different, and it moves it onto exactly the ground the rest of this article describes: when outage avoidance stops carrying the proposal, the spread has to.

The spread is unusually wide, and it is seasonal. Eskom publishes its time-of-use rates, so a South African model can start from a real schedule rather than a contracted rate. On the 2026/27 standard prices for one Megaflex supply category, the high-demand season peak active energy charge is 720.19 c/kWh against 120.03 c/kWh off-peak, both excluding VAT[5]. That is a spread of just over R6 per kWh, where the equivalent UK spread is a fraction of that.

The trap is the word seasonal. The high-demand season is June, July and August, and a spread that exists for three months of the year, on weekdays, cannot be annualised across 365 days. Doing so is the single largest overstatement in South African battery proposals.

Backup reserve is now a priced decision rather than a free default. Capacity withheld for an outage that has not occurred in more than a year earns nothing against the widest tariff spread in the site's bill. That does not mean setting the reserve to zero, but it does mean the customer should choose it deliberately, with the foregone cycling value stated next to it.

There is a second layer, and it is charged per kVA. Eskom's time-of-use tariffs carry seasonally differentiated energy charges alongside network demand and network capacity charges[5], which is structurally the same two-layer problem as the UK. The layers have to be modelled separately in both markets.

A third route is also opening: NERSA approved updated rules on network charges for third-party transportation of energy on 3 March 2025[7]. Where a site can buy generation elsewhere and have it wheeled to the meter, the battery's job changes from beating a retail tariff to firming a contracted supply. That is a distinct business case, worth flagging separately rather than folding into a peak shaving number.

The same calculation, in Rand

Using the published rates above, and holding the battery assumptions from the UK example:

InputValue
Usable battery capacity100 kWh
High-demand season peak rateR7.2019 per kWh
High-demand season off-peak rateR1.2003 per kWh
SpreadR6.0016 per kWh
Round-trip efficiency88%
High-demand season weekdaysroughly 65

Annualising the winter spread, which is what a spreadsheet does if nobody stops it:

100 kWh x R6.0016 x 365 days = R219,058 per year

The high-demand season, modelled properly:

100 kWh x R6.0016 x 0.88 x 65 days = R34,329

The two differ by roughly a factor of six. The second figure covers the high-demand season only; the low-demand spread is materially narrower and has to be added from the same published schedule. The point is not the final total. It is that a proposal quoting the first number is not conservative or aggressive, it is wrong, and the customer's own winter bill will eventually say so.

Season before cycles in South Africa

In most markets the first correction to a naive battery figure is the cycle count. In South Africa it is the season. Establish which months carry the wide spread and which weekday periods are peak before you touch efficiency or degradation, because that single correction moves the number further than everything else combined.

Tariff structures in both markets are maintained per country in UK solar tariffs and regulations and South African tariffs and compliance.

What changes for residential

Three things differ. The spread is often proportionally wider, because tariffs built around overnight charging pair a low import rate with a high evening one. The battery is much smaller, so payback depends as much on installed cost per kWh as on the tariff. And capacity charges usually do not apply, which removes the second layer and leaves the case resting on the spread alone.

No solar is required for any of it: a home battery can charge overnight and discharge through the evening peak with no generation at all, which is a second product line sold on the tariff rather than on the roof. In the UK that route runs through certification, covered separately in how to become MCS certified.

Presenting it so it survives procurement

A saving figure is a claim, and it gets tested. What makes it hold up is not conservatism, it is showing the work.

  • Publish the assumptions table. Spread, cycles, efficiency, degradation and operational days, visible in the document. A reader who can see the inputs can argue with the inputs rather than dismissing the output.
  • Give a range, not a point. Model a downside case on a narrower spread and fewer cycles. Buyers trust a range with a stated basis more than a single confident number.
  • Keep the value streams apart. Energy charge savings, capacity charge savings, self-consumption and resilience carry different confidence levels, and one combined number hides which part is solid.
  • State the payback method. A simple payback period and a levelised cost over the asset's life answer different questions.

This matters because the shape of the grid keeps moving. The duck curve has already reshaped when energy is expensive in markets with high solar penetration, and tariff structures follow it: the UK moved a large share of network cost out of reach of load shifting, and South Africa's dominant sales argument changed within a single year. A model whose assumptions are visible can be revisited when the rules change. A single number cannot. The same discipline applies upstream, where a production figure is only as defensible as the shading and string design behind it.

How solarVis implements each of these steps

Peak shaving modelling is a data problem before it is a battery problem. In solarVis battery modeling, a battery energy storage system is simulated hour by hour against the site's own consumption profile and the applicable tariff structure, so the saving comes out of a simulated year of operation rather than a multiplication. Tariffs and regulations are supported across 45+ countries, which matters here because the bill components that make peak shaving worth anything are exactly the ones that differ most between a UK and a South African site.

What the model needsWhere it sits in solarVis
Interval consumption data, not monthly totalsHourly metered data uploaded as a single .xlsx file, used directly by every simulation instead of the manual inputs[10]
A tariff with real time periods, and seasonal ratesTariff Settings, with Weekday and Weekend Schedules mapping 12 months against 24 hourly cells. Each month keeps its own hourly period assignment, which is what carries a June to August high-demand season[9]
Capacity and demand chargesDemand Charges, priced per kW, with configurable effective days for weekdays and weekends[9]
Usable capacity, round-trip losses and power limitsA 10 to 90% usable capacity band, with state of charge limits, efficiency losses and charge or discharge power constraints inside the battery calculation[8]
Cycles actually available across the yearHourly dispatch with a State of Charge curve, showing when the battery fills, when it empties, and when it does neither
Value streams kept separateThe Annual Bill Savings comparison, reporting the bill before solar, after solar, and after solar with battery as three distinct scenarios[11]

The tariff layer does most of the work, because it turns a dispatch curve into money. Alongside the schedule and demand charges it carries tiered rate periods, fixed standing charges, a VAT rate, inflation assumptions and a minimum bill[9]. The fixed standing charge field is where a UK residual band belongs, which keeps it visible in the model and out of the battery's savings. On the battery side, the Backup Reserve Rate is the field to watch for the double counting problem above: it is the explicit lever deciding how much capacity is withheld from cycling[8].

Two limits are worth stating. The simulation runs hourly, so a genuinely sub-hourly peak such as a short startup draw is smoothed by it, which matters most for demand charges where one brief spike sets the billed figure. And there is no dedicated peak shaving dispatch mode: the documented strategies are self-consumption, backup and autonomy, and the economics come through the tariff engine pricing that dispatch against real time periods.

Frequently asked questions

References

  1. IEA, Batteries and Secure Energy Transitions (2024)
  2. IRENA, Electricity Storage Valuation Framework (2020)
  3. Ofgem, Targeted Charging Review: Decision and Impact Assessment (18 December 2019)
  4. SSE Energy Solutions, Targeted Charging Review: changes to future electricity network charges
  5. Eskom, Schedule of Standard Prices 2026/27, effective 1 April 2026
  6. SAnews, Eskom reports 441 days without load shedding (4 August 2026)
  7. NERSA, Regulatory Rules on Network Charges for Third-Party Transportation of Energy (approved 3 March 2025)
  8. solarVis Docs, Battery
  9. solarVis Docs, Tariff Settings
  10. solarVis Docs, Energy Consumption
  11. solarVis Docs, Summary & Offer
Get started

See solarVis in action

We use cookies to improve your experience

We use necessary cookies to run this site, plus analytics and marketing cookies, on by default, to improve it and measure our ads. You can opt out or change your choice anytime from the footer. We enable analytics and marketing cookies by default to improve this site and measure our ads. You can opt out anytime. Read our Cookie Policy