Skip to content

Demand Charges

bolagnaise edited this page Oct 15, 2026 · 1 revision

Demand charge tracking

Open Configure > Advanced settings > Demand charge tracking. Use the demand-charge terms on the site's actual tariff. Demand charges are separate from the daily supply charge and ordinary import rates.

Configure whether tracking is enabled, the rate, peak start/end times, applicable days, billing-cycle reset day and which load the charge applies to. Apply artificial price during peak changes a planning signal; Allow grid charging during demand windows controls whether those periods can include grid battery charging. Neither field rewrites the retailer's underlying rate.

Saved older day/reset formats are normalized when the form is saved. Use the current displayed values rather than copying internal identifiers from an older configuration. Check peak boundaries in Home Assistant's local timezone and verify the billing cycle against the account.

Review tracked demand and actual site readings through the relevant peak window. A forecast or artificial planning price is not a settled demand bill. For fixed supply charges used by Cost Neutral, use Smart Optimization > Core goals > Daily supply charge.

Demand Charge Management

Some electricity plans (particularly network tariffs and commercial plans) bill for your peak demand — the highest grid import recorded during any 30-minute window in a billing period, multiplied by a $/kW rate. PowerSync tracks your peak, forecasts the cost, and actively programs the LP optimizer to avoid making it worse.

Setup

Configure → Pricing → Demand Charge

Setting Description Default
Enable demand charge tracking Master toggle — enables tracking, sensors, and LP penalty Off
Demand charge rate ($/kW) Your network's rate for peak demand $10/kW
Peak window start Start of daily demand measurement window (HH:MM) 14:00
Peak window end End of daily demand measurement window (HH:MM) 20:00
Demand charge days Which days the window applies — All Days / Weekdays Only / Weekends Only All Days
Billing cycle reset day Day of month when peak demand resets (1–31) 1
Apply demand charge to Whether demand charges apply to imports, exports, or both Buy Only
Allow grid charging during demand windows When off, the battery will not charge from the grid while the peak window is active — even if prices are cheap Off
Apply artificial price during peak (Tesla only) Adds a $2/kWh uplift to TOU import prices during the window, reinforcing that Tesla firmware also avoids importing Off

Fixed supply charges are not demand charges. Configure Daily Supply Charge under Configure > Smart Optimization > Core Goals, directly below Cost Neutral. Provider-specific legacy fields, such as AGL's monthly supply charge, remain available in that provider's pricing settings for compatibility.


How the LP Optimizer Avoids Peak Demand

When demand tracking is enabled, the optimizer runs several layers of protection:

1 — Import Price Penalty

Before each LP solve, PowerSync injects a price penalty into every 5-minute interval inside the demand window:

penalty ($/kWh) = demand_rate / 10

Example: $10/kW rate → $1.00/kWh added to every import slot in the window. The optimizer treats these slots as expensive and strongly prefers discharging or self-consumption over grid imports during the peak period.

2 — IDLE Override

If the LP suggests holding the battery idle during a demand window (which would leave the house load on the grid), the executor overrides the action to self_consumption. The battery discharges to serve home load, keeping grid import near zero.

3 — Pre-Peak Charge Completion

The optimizer adjusts charge windows to finish 1 minute before the demand window starts. This ensures the battery enters the peak window at its target SOC, ready to discharge rather than still pulling from the grid.

4 — Grid Charging Block

Allow grid charging during demand windows → OFF is the physical enforcement layer. Regardless of what the LP calculates, while the demand window is active:

  • The battery cannot charge from the grid
  • Force charge commands issued during the window are rejected with a warning
  • This is a hard block — it applies even if prices are temporarily low inside the window

For Tesla Powerwall, PowerSync pre-arms this grid-charging block 1 minute before the configured start so API confirmation time cannot carry charging into the billed period. Demand sensors, peak tracking, and cost calculations still use the exact configured start and end times, so configure the utility window without adding manual padding.

Turn this on only if you want the LP to be able to opportunistically charge during cheap slots inside the peak window (accepting some demand charge risk for a price arbitrage gain).

5 — Tesla TOU Uplift (optional)

For Tesla Powerwall users, Apply artificial price during peak pushes a $2/kWh rate into the TOU schedule uploaded to the Powerwall. This makes Tesla firmware independently refuse to charge from the grid during the window — a belt-and-suspenders approach on top of the LP penalty.


Sensors

Sensor Unit Description
sensor.power_sync_in_demand_charge_period — True when the current time is inside the configured demand window
sensor.power_sync_peak_demand_this_cycle kW Highest grid import recorded so far this billing cycle
sensor.power_sync_demand_charge_cost $ Estimated demand charge for the cycle (peak_kW × rate)
sensor.power_sync_daily_supply_charge_cost $ Daily supply charges accumulated so far this month
sensor.power_sync_monthly_supply_charge $ Fixed monthly supply charge configured for the plan
sensor.power_sync_total_monthly_cost $ Demand charge + supply-charge estimate for the current cycle

The peak_demand_this_cycle sensor only tracks grid imports (exports don't count unless Apply to includes "Sell Only" or "Both").

The supply-charge sensors use the shared saved supply-charge values; they do not make those charges part of peak-demand calculation. The daily value can also be used by Cost Neutral when calculating the amount of export credit needed to offset today's costs.


Recommended Configuration

For a typical 14:00–20:00 demand window on a plan like Ausgrid Peak Smart:

  1. Set Rate to match your network's $/kW charge (check your bill — usually listed under "Network capacity charge" or similar)
  2. Set the window to match your plan's peak period exactly
  3. Leave Allow grid charging during demand windows → Off
  4. If you have a Tesla Powerwall, enable Apply artificial price during peak as an additional safeguard
  5. Set Apply demand charge to: Buy Only unless your plan also charges for peak exports

The dashboard Demand Charge card shows your current peak and estimated cost in real time.

Field reference

The tables use the current form labels and help text. They list the conditional field union: a field can be hidden for a different battery, provider, route or available integration. The instructions above explain those conditions. Existing saved/discovered values take precedence over fresh fallbacks. Rate units follow the provider; check the displayed currency/energy unit.

Demand charge tracking — existing installation

Field Meaning / input Fallback / limits
Enable demand charge tracking Track your peak grid draw during demand charge periods and calculate monthly capacity fees. Saved/detected value or the form’s shown fallback
Demand charge rate Your network demand charge rate in dollars per kW of peak demand. Check your bill for this value. 0.0–100.0; step 0.1
Peak start time (HH:MM) Start time of the demand charge measurement period (24-hour format). Saved/detected value or the form’s shown fallback
Peak end time (HH:MM) End time of the demand charge measurement period (24-hour format). Saved/detected value or the form’s shown fallback
Demand charge days Which days demand charges apply (weekdays, all days, etc.). Saved/detected value or the form’s shown fallback
Billing cycle reset day Day of month when the billing cycle resets (1-28). 1–31; step 1
Apply demand charge to Whether demand charges apply to grid imports, exports, or both. Saved/detected value or the form’s shown fallback
Apply artificial price during peak Add an artificial price component during demand peak periods to discourage grid draw. Saved/detected value or the form’s shown fallback
Allow grid charging during demand windows Allow battery grid charging during demand peak periods. Disable to protect against demand charge spikes. Saved/detected value or the form’s shown fallback

Clone this wiki locally