Chris Collins

Tools · home

Energy usage analyser

Import your smart-meter data (Green Button XML or CSV, Octopus, Home Assistant, or any interval CSV) in the browser; see every hour as a heatmap, daily and monthly use, baseload and peaks; price it on flat, tiered and time-of-use tariffs you can edit; and try an EV, a heat pump, solar and a battery against your own hours.

Added · updated 28 October 2026

Works with

How to use it

How to use it

Import — drop a file or choose one. It is read in your browser and kept in this browser’s storage; nothing is uploaded. Until you import, the tool shows a synthetic sample year.

  • Green Button XML (ESPI, “Download My Data” from most US utilities). Units come from each reading type (watt-hours, with its power-of-ten multiplier); delivered and received (exported) readings are kept apart; times are UTC and converted with the time zone you choose.

  • Green Button CSV in the common layouts: PG&E-style (TYPE, DATE, START TIME, END TIME, USAGE, UNITS), Opower-style with IMPORT (kWh) and EXPORT (kWh), SDG&E-style (Date, Start Time, Duration, Consumed, Generated, Net). Gas rows are skipped.

  • Octopus (UK) consumption CSVs, Home Assistant history CSVs (a running kWh total: the tool takes the increases between readings and copes with meter resets), and any interval CSV with a date-time (or a date and a time) column and a kWh or Wh column, or one row per day with 24, 48 or 96 interval columns. Dates such as 3/4/2024 are read month-first unless a day over 12 shows otherwise — or set the order yourself.

  • Home Assistant directly: connect with a long-lived token to import an energy sensor’s hourly long-term statistics (same client as the smart-home toolkit; the token stays in memory). From an https page to a Home Assistant on http:// on your network, use the gitwebsite app’s relay.

Usage — totals, average day, a year at this rate, baseload (the median over complete days of each day’s lowest hour: what is always on), the biggest hour, peak demand in kW (energy in an interval ÷ its length, so 15-minute data shows higher peaks than hourly), and the biggest day. The heatmap has a column per day and a row per hour: routines appear as bands. Use Heatmap full screen to see a year at full size. Daily and monthly bars (months priced on the chosen tariff), an average weekday and weekend, and the ten biggest hours.

Tariffs — flat, tiered (blocks reset each calendar month) and time-of-use. For time of use, add periods with prices, add seasons by month, and paint each hour of weekdays and weekends with a period; US federal holidays can be priced as weekends. Export is credited at the import rate of the hour (net metering; on tiered tariffs netted within the month) or at a fixed export rate. Fixed monthly charges are prorated by the hours of each month you have data for. The comparison prices your hours on every tariff, scaled to a year. The presets are examples with illustrative rates — real tariffs change; copy your utility’s current rate sheet (delivery charges included).

What-ifs — add an electric car (distance a day ÷ efficiency ÷ charging efficiency, charged from the hour you plug in at the charger’s power), a heat pump replacing gas heating (gas × furnace efficiency = heat; heat ÷ seasonal COP = electricity; a therm is 29.3071 kWh), rooftop solar (size × specific yield, shaped by month and by the sun’s height through each day) and a battery (stores surplus solar, and optionally charges in the tariff’s cheapest hours to cover dearer ones). See the change in the bill — with the gas saved — and an average day before and after. Open this system in the solar ROI calculator carries your use, average price and the self-use found here to Solar ROI for payback and NPV.

Export data and tariffs saves everything as JSON you can import again.

Limits

  • A model on your past hours: weather, driving and tariffs change. Bills are cut on meter-read dates, not calendar months, and include charges this does not model (demand charges, minimum bills, baseline allowances by climate zone, true-up rules).

  • Heat-pump electricity is spread over each month’s hours a little heavier at night; real use follows the weather hour by hour and a heat pump’s COP falls in the cold. For sizing one, see heat loss and HVAC sizing.

  • Solar uses clock time as solar time (an hour off in daylight saving) and clear-day shapes; the monthly shape is the solar ROI tool’s typical northern-hemisphere one.

  • The battery uses a simple rule, not an optimiser. Missing hours count as zero.

Sources: NAESB REQ.21 Energy Services Provider Interface (Green Button) for the XML model (reading types, units, flow direction); US EIA, average heat content of natural gas (≈1,037 Btu per cubic foot) for ccf; the therm is 100,000 Btu by definition.

Linking to an example

Your usage data and tariffs never go in a link; the what-ifs and currency do. Add the tab after #: import, usage, tariffs or whatif.

Parameter Meaning Example

cur

Currency

cur=EUR

ev, evd, eve, evh, evk

EV on, distance a day, miles per kWh (kWh/100 km in km mode), plug-in hour, charger kW

ev=true&evd=40&evh=0

hp, hpg, hpu, hpc, hpa, gas

Heat pump on, gas for heating a year, unit (therm, ccf, m3, kwh), COP, AFUE %, gas price

hp=true&hpg=600&hpc=3

pv, pvk, pvy, lat

Solar on, kWp, specific yield, latitude

pv=true&pvk=6&pvy=1450

bat, batk, batp, batm

Battery on, kWh, kW, mode (solar or tou)

bat=true&batk=13.5&batm=tou

example

One of the presets below

example=ev-overnight

example= Shows

ev-overnight

An EV doing 40 miles a day charged from midnight (open)

ev-evening

The same EV plugged in at 6 pm — compare the time-of-use costs (open)

heat-pump

600 therms of gas heating replaced by a heat pump with a seasonal COP of 3 (open)

solar-battery

6 kWp of solar and a 13.5 kWh battery (open)

compare

The example tariffs compared (open)

Runs entirely in your browser — network requests go only to the services named on this page.