Download from EDF
Start here if your Energy Hub already shows half-hourly electricity use. You can download readings in your own supplier account.
Follow the EDF steps →Getting started
Bring half-hourly electricity use into Energy Lens to compare tariffs against when your home actually uses power. You can also start with the annual kWh from your bill and try a clearly labelled simulation.
No Energy Lens account needed. Files are read and saved in your browser. This site never asks for your supplier password and does not upload your readings.
For measured comparisons, use electricity consumed in each 30-minute interval, in kWh, with the interval’s start date and time. A meter photo, cumulative register reading, monthly total or cost-only export cannot show when energy was used.
Start here if your Energy Hub already shows half-hourly electricity use. You can download readings in your own supplier account.
Follow the EDF steps →An alternative for supported smart meters, including EDF customers. Verify your meter, then use the local Energy Lens connector to export available history.
Set up Glow and export →Another supplier’s CSV can work too: match the timestamp and kWh columns during import. The included tariff prices are a London benchmark checked on 17 October 2026; edit them to match your region and current quotes.
Check missing readings in EDF’s chart. Some downloads can show zero where the account page labels data “Missing”. Remove only those confirmed missing rows, or mark them missing in a quality or status column. A genuine zero should remain.
On the autumn clock-change day, repeated 01:00 and 01:30 readings need their correct +01:00 or +00:00 offsets. Energy Lens rejects ambiguous local times. Use an offset-aware Glow export if the supplier file does not distinguish them.
If Energy Hub has no readings or download control, try Glow or ask EDF for your available half-hourly electricity consumption. Account layouts and history vary; a request cannot recover data the meter never recorded.
This route works independently of the EDF website. It needs a supported smart meter and your consent. You do not need to buy a Glow display or CAD to retrieve delayed half-hourly DCC data.
On your own computer, install Node.js 22.13 or newer and Git, then run these commands in a terminal. They build the connector from the open-source repository:
git clone https://github.com/jhammant/energy-lens.git
cd energy-lens
npm --prefix connector ci
npm --prefix connector run build
node connector/build/cli.mjs login
node connector/build/cli.mjs meters
node connector/build/cli.mjs sync
node connector/build/cli.mjs export --out readings.csv
login prompts privately for your Glow credentials, verifies them with Glow, and stores them in your operating system’s credential store. The download and CSV stay on your computer. Linux needs a working Secret Service for keychain login; see the connector instructions for headless setup.
The default sync requests roughly 13 months, ending at the start of today. This is a requested range, not guaranteed coverage. Rerun sync later to pick up new readings, then export to a new filename; exports refuse to overwrite an existing file.
For a specific range, add the same dates to sync and export. Replace these example dates with your own; --to is exclusive, so this example covers September:
node connector/build/cli.mjs sync --from 2026-09-01 --to 2026-10-01
node connector/build/cli.mjs export --from 2026-09-01 --to 2026-10-01 --out september.csvIf meters lists several electricity meters, pass the chosen --resource-id to sync. If export finds several saved sources, run node connector/build/cli.mjs status and pass the required --stream to export. Sources are kept separate to avoid counting the same home twice.
Now import readings.csv into the dashboard. The website itself does not sign in to Glow or refresh the local connector’s data automatically.
Z or an explicit offset, keep Require an explicit timezone. Otherwise choose UTC or UK local time to match the export. Never guess between them.Keep a private backup. Under Data & method, choose Download private backup. It includes readings, settings and any imported household details. Import that JSON on another browser or device, or after moving from the old site address to this one. Browser storage does not transfer between addresses.
CSV import replaces readings; a JSON backup restores the saved household state. Back up before replacing either. Clearing browser storage, using private browsing, or choosing Remove data from this browser can remove the saved copy.
A minimal file has a header and two columns. These example readings are synthetic:
interval_start,consumption_kwh
2026-09-01T00:00:00+01:00,0.40
2026-09-01T00:30:00+01:00,0.35| Column | What it means |
|---|---|
interval_start | Start of a 30-minute interval, preferably with a UTC offset. A separate date and time column can also be mapped. |
consumption_kwh | Whole-house electricity used in that interval, in kWh. Non-negative; not a meter register, kW power reading, gas volume or price. |
ev_kwh (optional) | Car charging within the same interval. Must be no greater than household kWh. Omit it if unknown. |
interval_end (optional) | End timestamp, exactly 30 minutes after the start. |
quality or status (optional) | Rows marked missing, unavailable or null are skipped. Zero consumption alone never means missing. Supplier cost columns are not used to calculate the comparison. |
CSV, semicolon-separated and tab-separated files are accepted, up to 15 MB and 100,000 readings. Identical timestamp duplicates are deduplicated; conflicting readings are rejected. Download another synthetic example from Data & method in the dashboard.
Active consent means setup succeeded; it does not mean readings have arrived. Allow the initial retrieval window, then check Bright or Glow itself. If it remains empty after 48 hours following verification, contact Glow support through its account/help pages. Energy Lens cannot pull history that Glow has not made available.
Recent readings can be delayed. Check the source, download again later, and import the updated complete file. Coverage is measured across whole UK calendar days, so a partial first or last day is also flagged. The dashboard never fills gaps or extrapolates a partial bill.
Use a full date plus time, with a timezone. For a separate date and time, use YYYY-MM-DD or DD/MM/YYYY and HH:MM. Repeated autumn times need their actual offsets. Remove summary rows and choose half-hourly data rather than daily totals. Do not delete a genuine repeated clock hour to make an error disappear.
Use annual simulation with the electricity kWh from your bill. Enter home EV charging separately if known, or set it to zero if you have no EV. These inputs estimate a pattern; they do not create measured history. Photographs and PDF bills are not imported by the website.
Your data belongs to the browser and website address where you imported it. Return to the old address, download a private JSON backup from Data & method, and import it here. An app update at the same address normally keeps the saved data; a new browser, device or address starts empty.
The dashboard has no account system, analytics or data-upload endpoint. Its files are hosted on GitHub Pages, which receives ordinary web requests when you visit. Imported files and settings are kept in your browser’s local storage. Downloaded backups contain your data: store and share them accordingly. The optional connector talks directly to Glow, stores readings locally, and only shares readings with an AI host if you choose to connect its MCP tools.