Electricity, gas and solar usage and cost data pulled out of business energy bills and shown as charts
Energy
6
min read

How to extract usage and rates from a business electricity bill

Andrew Thomas

Growth, Termina

Your electricity bill has everything you need to compare plans, but not in a form you can calculate with. To compare properly you need the usage in each tariff band, the rate against each band, the daily supply charge, the days billed, and any demand charge with its unit. The bill total on its own tells you nothing useful.

There are three ways to get that data out: read it off the bill by hand, post the PDF to an extraction API, or hand the bill to someone who does it for you. Here is what each one is good for.

What you actually need off the bill

A like-for-like comparison needs all of this, kept separate:

  • Retailer and plan name
  • NMI for electricity, MIRN for gas
  • Billing period start and end, and the number of days billed
  • Usage in each tariff band in kWh, kept apart: peak, shoulder, off-peak, controlled load
  • The rate against each band in c/kWh
  • Daily supply charge in c/day
  • Billed demand, its unit (kW or kVA) and whether it is charged daily or monthly
  • Metering and other fixed fees
  • Solar export credits
  • Whether the printed rates include GST

Two of those are where most comparisons fall over. Demand is not usage and it is not charged the same way by every retailer. And GST is inconsistent: Energy Made Easy displays rates including GST, while the rates printed on a business bill often exclude it. Compare a GST-inclusive rate against a GST-exclusive one and you are out by 10% before you start.

Reading it off by hand

Fine for one bill. You are copying about twenty numbers off two pages into a spreadsheet.

It stops being fine at the second site or the second month. Every retailer lays the charges out differently, so the spreadsheet you built for one bill will not fit the next. Rates also change partway through a billing period, which means the same tariff band appears twice with two different rates, and it is easy to record one and drop the other.

Posting the PDF to an extraction API

Termina's bill API takes the file and returns the numbers as JSON.

curl -X POST https://api.termina.io/api/v2/public/bills/upload/ -H 'X-API-Key: your-api-key' -F 'file=@bill.pdf'

It accepts PDF, JPEG, PNG and TIFF, so scans and phone photos work as well as digital bills. It handles electricity, gas and LPG, and covers Australian, New Zealand, British and United States retailers. The first 50 bills are free and it does not ask for a credit card. Full reference at docs.termina.com.

What comes back

Three things: a bill_uuid, an energy_data object, and a validation_issues array.

energy_data carries the retailer, account number, fuel type, supply address, billing period, invoice and due dates, itemised charges with their tariff rates, meter reads and totals. Around 30 fields in all, normalised so bills from different retailers come back in the same shape.

validation_issues is the part that matters more than it sounds. Every extracted charge is cross-checked against the bill total, and anything that does not reconcile comes back flagged as a warning or an error instead of passing through quietly. An OCR result you cannot trust is worse than no result, because you will price a contract off it and not find out for a year.

Why dividing the total by kWh gives you the wrong answer

Averaging a bill down to one c/kWh number throws away the structure that decides which plan is cheaper.

  • Time-of-use windows differ between plans. A new plan's peak may not start when your old plan's peak started. Multiplying your old peak kWh by a new peak rate is not a comparison unless the windows match. If they do not, you need interval data, not bill data.
  • Demand is measured, not consumed. A demand charge can be set by a maximum recorded over a short interval rather than by how much you used overall. Two plans with identical usage rates can be thousands apart on demand alone.
  • Discounts carry conditions. Pay-on-time and direct-debit discounts are not guaranteed savings, and they often sit against the usage charge rather than the whole bill.

The only comparison worth acting on applies your actual usage to each plan's full rate structure, supply and demand included, over the same number of days.

Do you need to do any of this

Maybe not. If you have one site and you just want a better rate, the free government comparators cover it: Energy Made Easy for New South Wales, Queensland, South Australia, Tasmania and the ACT, and Victorian Energy Compare for Victoria. Neither one shows what your current plan charges, so you still need your own rates off the bill to know what you are saving against.

If you have more than a handful of sites, or you want this to keep happening rather than be a one-off afternoon, that is the job we do. 10,000+ business locations buy as one through Termina, and we re-rate them as the market moves rather than once at signup. We refuse retailer commissions, so the only money we make is a share of what we save you. $0 cost unless we save you money.

See my savings

Common questions

How do I get the usage and rates out of an electricity bill PDF?

For one bill, read them off by hand: usage per tariff band, the rate against each band, the daily supply charge, the days billed and any demand charge. For anything more, post the PDF to an extraction API. Termina's returns all of it as JSON from a single POST.

Can I extract data from a scanned bill or a photo of one?

Yes. PDF, JPEG, PNG and TIFF are all accepted, and scans and photos go through OCR rather than text extraction.

Does it work on gas bills?

Electricity, gas and LPG.

What does it cost?

The first 50 bills are free and there is no credit card required to start.

Which countries does it cover?

Australia, New Zealand, the United Kingdom and the United States, across the major retailers in each.

Why does my bill total not match the rates multiplied by the usage?

Usually one of three things: rounding, a rate that changed partway through the billing period, or a previous balance and payments mixed in with the current period's charges. Extraction that does not check for this will hand you a number that looks right and is not, which is why every charge is reconciled against the bill total and mismatches come back flagged.

Can I compare plans from the extracted data automatically?

You can, as long as you apply your usage to each plan's whole rate structure rather than to its headline usage rate. Supply charges, demand charges and time-of-use windows all have to come with it.

Join today

Group buying with 10,000+ locations.