Repository navigation
Demand Charges
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.
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.
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.
When demand tracking is enabled, the optimizer runs several layers of protection:
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.
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.
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.
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).
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.
| 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.
For a typical 14:00–20:00 demand window on a plan like Ausgrid Peak Smart:
- Set Rate to match your network's $/kW charge (check your bill — usually listed under "Network capacity charge" or similar)
- Set the window to match your plan's peak period exactly
- Leave Allow grid charging during demand windows → Off
- If you have a Tesla Powerwall, enable Apply artificial price during peak as an additional safeguard
- 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.
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.
| 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 |