Estimate a time-of-use electric bill by entering each usage period, its kWh, and its price from your rate plan.
Advanced options
Table of contents
How to use our Time-of-Use Electricity Cost Calculator
- In Usage rows (name, kWh, $ per kWh), enter one period per line or separate periods with semicolons, such as Peak, 300, 0.28.
- Enter the Fixed monthly charge ($) from your rate plan, or use 0 if you only want the usage-based energy cost.
- Open Advanced options only if your bill has Highest demand (kW), Demand price ($ per kW), Other monthly fees ($), or Tax and fee rate (percent).
- Click Calculate, then compare Total electricity used with the kWh on the bill period you are modeling; if it is far off, fix the Usage rows before trusting the dollar estimate.
- Use Estimated monthly bill for the full estimate and Energy charges from usage rows to see the part caused directly by kWh use.

Definitions
Time-of-use price: A price that changes by time period, such as peak, mid-peak, off-peak, weekend, or holiday. Time-of-day pricing is a standard electricity rate idea [3].
kWh: Kilowatt-hour, a unit of electricity use. For example, using 1 kilowatt of power for 1 hour uses 1 kWh [1].
kW: Kilowatt, a unit of power at one moment or over a short measuring window. Demand charges often use kW [1].
Usage rows (name, kWh, $ per kWh): The custom list where each row gives a period name, electricity used in that period, and the price for that period.
Energy charges from usage rows: The total dollar cost from kWh use before fixed charges, demand charges, other fees, and percent taxes or fees.
Average bill price per kWh: Estimated monthly bill divided by Total electricity used. It includes the adders you entered, so it can be higher than any single energy price.
Demand charge from entered kW: Highest demand (kW) multiplied by Demand price ($ per kW). Some time-variable pricing programs can include demand-related charges [2].
Common mistakes and quick fixes
Mistake: Typing only Peak and Off-peak in Usage rows (name, kWh, $ per kWh) when the rate plan also has a mid-peak, weekend, holiday, or seasonal price.
Fix: Add every priced period from the plan as its own row, such as Mid-peak, 250, 0.18.
Mistake: Entering cents, such as 28, in Usage rows (name, kWh, $ per kWh) when the price is 28 cents per kWh.
Fix: Convert cents to dollars per kWh, so 28 cents becomes 0.28.
Mistake: Leaving Fixed monthly charge ($) at 0 when the utility bill has a base, customer, service, or access charge.
Fix: Enter that monthly charge so Estimated monthly bill includes more than usage charges.
Mistake: Filling Demand price ($ per kW) but leaving Highest demand (kW) at 0, or entering Highest demand (kW) without the demand price.
Fix: Enter both demand inputs from the bill or rate sheet, or set both to 0 if your plan has no demand charge.
Mistake: Putting taxes, riders, or program adders into Tax and fee rate (percent) when they are fixed dollar fees.
Fix: Put fixed dollar adders in Other monthly fees ($) and use Tax and fee rate (percent) only for percent-based charges.
Mistake: Trying to model solar credits by entering negative kWh in Usage rows (name, kWh, $ per kWh).
Fix: Use only electricity used from the grid; this calculator does not settle exported-power credits or net metering.
Limitations & Key Assumptions / Boundary Conditions
- The estimate depends on the kWh and prices you enter. The calculator does not look up your utility rate sheet.
- Usage rows must be usage charges with nonnegative kWh and nonnegative $ per kWh. Negative rows for solar exports, bill credits, or net metering are not supported.
- Estimated monthly bill may differ from a real bill if your account has minimum bills, tiered charges inside a time period, fuel riders, city fees, late fees, deposits, reconnect fees, lighting, credits, or taxes not entered here.
- Tax and fee rate (percent) is applied to the subtotal before percent charges. Your utility or local rules may apply some taxes to a different base.
- Demand charge from entered kW uses the single Highest demand (kW) and Demand price ($ per kW) you enter. It does not model separate on-peak demand, seasonal demand, ratchets, or demand windows.
- The calculator treats each period name as a label only. It does not check clock times, weekdays, holidays, seasons, daylight saving time, or billing-cycle calendars.
- Average bill price per kWh needs Total electricity used greater than 0. If your modeled use is 0 kWh, an average per-kWh bill price is not meaningful.
Methodology
How the rows are read
The calculator reads Usage rows (name, kWh, $ per kWh) as a custom list. Each row must have exactly a name, a kWh amount, and a dollar price per kWh. Period names help identify the line item, but they do not change the math.
Formulas used
period_cost_i = kwh_i * rate_i
total_kwh = sum of all kwh_i values
energy_charge_total = sum of all period_cost_i values
demand_charge = demand_kw * demand_rate_per_kw
subtotal_before_tax = energy_charge_total + fixed_monthly_charge + demand_charge + other_monthly_fees
tax_fee_charge = subtotal_before_tax * tax_fee_percent / 100
total_estimated_bill = subtotal_before_tax + tax_fee_charge
average_bill_rate = total_estimated_bill / total_kwh
highest_period_cost = max(period_cost_i)
For the highest period, the calculator compares the dollar cost of each usage row. If two rows tie, the first tied row is shown.
Worked mini-example
Suppose Usage rows (name, kWh, $ per kWh) is Peak, 300, 0.28 and Off-peak, 500, 0.12, with Fixed monthly charge ($) of 15 and all Advanced options set to 0. Peak costs 300 * 0.28 = $84. Off-peak costs 500 * 0.12 = $60. Energy charges from usage rows are $144, Total electricity used is 800 kWh, and Estimated monthly bill is $144 + $15 = $159. Average bill price per kWh is $159 / 800 = $0.19875 per kWh.
Input handling
Commas, spaces, dollar signs, percent signs, and common unit suffixes such as kWh and kW are stripped before parsing a single number. Ranges, formulas, multiple numbers in one numeric field, negative usage, negative prices, and negative fees are rejected because they would make the bill estimate unclear or outside the supported model.