WattClear

Methodology

What the numbers on this site are made of, how they are calculated, and where they stop being reliable.

Who publishes this

DueRiva

DueRiva is an independent platform for apps, games and websites, and WattClear is one of its projects.

WattClear exists because most bill-comparison tools paper over the gap between a simple-looking rate schedule and the bill it actually produces. It is built to price a household's actual tariff correctly rather than quote a state average, and to say plainly when a figure cannot be trusted rather than publish a confident guess.

Where the data comes from

Rate structures come from the NREL/OpenEI Utility Rate Database, published by NREL and OpenEI under CC0 1.0. The current snapshot holds 1211 residential tariffs from 217 utilities, retrieved October 8, 2026. 1205 of them can be priced for a household.

Not every utility. Utilities are reached two ways: by probing population-centre coordinates in 18 states, and by fetching, by EIA number, the utilities that serve most of each state's homes according to EIA-861. A smaller utility outside both — many rural cooperatives and municipal utilities — will not appear here yet.

Geographic attribution is separate: US Census Bureau Geocoder (public domain), geographies at the coordinate the tariff was discovered at. Only tariffs discovered through an archived, coordinate-anchored URDB query can be attributed. Curated edge-case records and any anchor whose fetch never completed have no coordinate and therefore no state; they appear on utility pages only.

The other datasets, each also cited on the pages that use it:

How a bill is calculated

Every figure is produced by the same rate engine, whether it appears in a calculator or on a utility page. It reads the published tariff structure and applies it to a consumption profile — it does not use an average rate, and it does not interpolate between published figures.

The engine models:

  • Tiered energy charges, including per-tier adjustments. Tier bands reset each billing month, so seasonal usage matters: the same annual total spread unevenly costs more.
  • Time-of-use periods, from the 12×24 weekday and weekend schedule matrices URDB publishes, including seasonal period changes.
  • Demand charges, both scheduled and flat monthly.
  • Fixed and minimum charges, billed whether or not any electricity is used.

Calendar effects are real and are modelled: bills are computed against the 2026 calendar, so month lengths and the weekday/weekend split are the actual ones, not an average.

How a plan's history is built

Each utility page follows one plan it quotes back through URDB, which records, for each version of a tariff, the version it replaced. Every version is priced by the same engine at 1,000 kWh a month, fixed charges included, and dated by the day it took effect. The standard offer is followed where URDB marks one, and a plan priced the same at every hour before one that is not.

A version is left out of the history, and counted on the page, when:

  • it has no start date, or the engine cannot price it;
  • a record with the same start date replaces it, which makes it a correction rather than a new price;
  • it jumps by 50% or more and falls straight back at the next version, which is a mistyped rate;
  • its price a kWh is under 0.6 or over 1.7 times its state’s average that year, as EIA reports it: a record that far off does not carry the whole bill;
  • measured against its state’s average, it stands 25% or more apart from the versions either side of it, or, for the first version, from the three after it: it was entered on another basis;
  • it comes before a lasting step of 50% or more, where the record changed what it includes.

A history needs two versions at least 1 year apart. It is shown only while it ends at the price the page quotes for that plan, and not at all for a plan whose price sits 50% or more from what EIA-861 says the utility’s customers paid. What the histories add up to is in the guide to why rates change.

What the pipeline assumes

Where a value is not supplied, an assumption is made — and every assumption travels with the number it affects. Open “How this was worked out” on any result to see the list, including whether each assumption is likely to push the estimate up or down.

The significant ones:

  • Hourly usage shape. Given only a monthly total, a time-of-use plan is priced on the typical hour-by-hour pattern of homes in its state: NREL’s ResStock statewide residential electricity, by month, weekday or weekend, and local clock hour (2018 weather, moved from the dataset’s Eastern Standard Time to each state’s clock time). Spread evenly instead, a Georgia summer weekday put 20.8% of its use in 4–9 pm, where ResStock's Georgia homes put 31.1%, and every time-of-use price read low. It is still an average home: one that concentrates its use in the peak hours pays more than shown, one that avoids them pays less. A plan that prices every hour the same is unaffected. Data includes information from the ResStock™ dataset developed by the National Laboratory of the Rockies (NLR) with funding from the U.S. Department of Energy (DOE), licensed CC BY 4.0.
  • Taxes. Zero unless entered. Most US jurisdictions add sales or utility tax, so an untaxed figure understates a real bill.
  • Riders. Fuel and environmental adjustments are included where URDB publishes them as part of the rate structure. Riders billed outside the schedule are not captured.

Terms you will see

Effective rate
The total bill divided by the kilowatt-hours used. It is the only figure comparable across plans, because it includes fixed charges. Advertised headline rates exclude them and therefore always look lower.
Tiered tariff
Charges more per kilowatt-hour as monthly consumption climbs through bands. The practical consequence: an added appliance is billed at whatever band the rest of the household has already reached, not at the household average — which is why multiplying watts by an average rate understates its cost.
Time-of-use tariff
Prices the same kilowatt-hour differently depending on the hour and the season. Shifting flexible loads changes the bill without changing total consumption.
Demand charge
Billed on the highest rate of draw in a period, not on total consumption. Rare on residential plans, and costly when present.
Fixed charge
A standing monthly amount billed regardless of usage. On a low-usage household it can exceed the cost of the electricity itself.
Export-only schedule
A net-metering rate that publishes a sell-back price and no purchase price. It cannot price household consumption, so the engine refuses it rather than treating the missing rate as zero and reporting free electricity.

When a page gets published

Pages generated from data are not published automatically. Each is measured before it is allowed into the index, and one that falls short is still readable but carries noindex and states why on the page.

The thresholds:

  • at least 10 computed facts specific to that entity
  • at least 250 words of narrative generated from its own data
  • at least 1 table or chart built from that data
  • a data-quality score of 0.7 or better, combining how many plans are priceable, how complete the records are, and how recently they were fetched
  • no more than 82% textual similarity to any other published page

Where several pages would describe an identical set of tariffs, one is chosen as canonical and the others point at it. Three addresses for one page helps nobody.

What these figures are not

Estimate based on published tariff data. Your actual bill may differ. WattClear is not a utility, broker, or financial advisor.

Estimates are priced at 500, 1,000, 2,000 kWh per month on entity pages, and at whatever you enter in the calculators. They describe published tariffs, not your account: deposits, arrears, budget-billing arrangements and the fact that meter reads rarely align with calendar months all sit outside them.

If a number here looks wrong, the source link on the page goes to the tariff record it came from. Checking it against a real bill is the right instinct, and the gap between the two is itself informative.