The short answer: compare the same kWh before judging the cost

Start with the utility bill, not the dashboard's money estimate. Find the meter-reading start and end dates and the line for electricity delivered, imported, or used in kilowatt-hours (kWh), the amount of energy on the bill. Set the Energy dashboard to that same completed period and compare it with grid import—the electricity taken from the utility. A bill that runs from July 16 to August 14 cannot be fairly compared with Home Assistant's August calendar month.

Also make sure the two numbers describe the same flow. With solar, the bill may list energy delivered to the home and energy received from the home separately, or it may show one net figure. Home Assistant can show grid import and return to grid separately. Do not compare a net bill number with grid import before export is subtracted, household consumption, solar production, or the sum of a few smart plugs.

If the matching-period kWh are different, work through dates, whether both readings cover the same meter, units, missing hours, resets, and stored hourly history. If the kWh are close but the money is not, investigate the rate and bill structure. The Energy dashboard is a useful household view; it is not the utility's accounting system and does not automatically know every fee, tax, credit, or special rate rule.

Use one clean test: write down the bill period, imported kWh, exported kWh, and total cost. Compare those with the same four ideas in Home Assistant. Changing sensors while comparing several date ranges at once makes the cause harder to see.

Match each bill line to the right Home Assistant number

Utility wording varies, so use the meaning of the line rather than one universal label. This is the comparison to make before changing any configuration.

Bill line Compare with Common wrong comparison
Delivered, imported, or purchased kWh Grid import for the identical meter-reading period. Total household consumption, which may include solar or battery energy that never came from the grid.
Received, exported, or returned kWh Return to grid for the identical period. Total solar production, because some solar was used inside the home.
Net kWh Grid import minus return to grid, only if the utility defines net usage that way. Grid import alone. Some rate plans settle import and export separately, so read the bill definition.
Energy charge Home Assistant's modeled consumption cost for the same period and rate plan. The bill's total amount due, which can include charges unrelated to kWh.
Total amount due No single Energy dashboard number is guaranteed to match it. A simple kWh multiplied by one rate when the bill also has fees, taxes, tiers, credits, or adjustments.

For example, if a solar bill shows 812 kWh delivered and 96 kWh received, compare those with 812 kWh of grid import and 96 kWh of return to grid. Compare a 716 kWh net figure only after confirming that the utility subtracts export that way. The example explains the arithmetic; your bill's own definitions control.

1. Make the time window identical

A date mismatch is the first thing to eliminate because it can make healthy sensors look wrong. Use the bill's meter-reading dates, not its issue date, due date, or the words “August bill.” A utility cycle often starts in the middle of one month and ends in the middle of the next.

  • Use a completed period. Today's Home Assistant total is still growing. Utility data may also arrive after the day it describes.
  • Check the home's time zone. A wrong Home Assistant time zone or a utility cutoff near midnight can move several hours into a neighboring day.
  • Expect a new counter's first cycle to be partial. A Utility Meter is a Home Assistant tool that counts use for a chosen period. Home Assistant documents that its first cycle is incomplete; a monthly counter becomes complete from the next cycle.
  • Allow for online-service delay. Home Assistant's official Opower connection says utilities release usage and cost data with a 48-hour delay and may correct recent history later.

If the gap resembles roughly one ordinary day's usage, recheck whether the bill's first or last meter-reading day is included in the same way. Do not hide a boundary problem by adding an arbitrary correction factor.

2. Confirm that both sources measure the same place

The utility bills the meter at the grid boundary. Home Assistant may instead be reading a whole-home current clamp, a solar inverter's idea of household load, a subpanel, an individual circuit, a smart plug, or a utility website. Those are useful sources, but they do not all measure the same thing.

Data path Local or cloud What to expect Main caveat
Direct local meter reading Local, when read through a supported meter port, pulse reader, or local receiver. Best chance of matching the same physical utility meter. The import and export channels, the amount assigned to each meter pulse, and the meter identifier still have to be correct.
Whole-home clamp monitor
Also called a current transformer, or CT.
Local or online, depending on the monitor and its software connection. Can closely follow whole-home load and provide faster detail than a bill. Clamp placement, phase coverage, direction, voltage assumptions, and calibration can create a gap. Opening a panel belongs to a qualified professional.
Utility account data Provided through the utility's online service and delayed. Usually follows the utility's own meter and later corrections. Today or yesterday may be blank, cost sensors vary by utility, and recent data can be revised.
Power converted to energy The calculation can stay local. Useful when a device reports watts but not kilowatt-hours. Home Assistant's Integral tool approximates energy from samples; sparse updates and the chosen method affect accuracy.
Individual devices or circuits Local or online, depending on each device. Good for explaining where some energy went. They omit unmonitored loads and should not be registered as extra grid import on top of the whole-home meter.

If your sensor is not available in the Energy settings at all, use Tara's separate guide to making an energy sensor eligible. If the problem is choosing or installing measurement hardware, the whole-home energy monitor guide owns that decision. Here, the source is already visible and the task is reconciling its total.

3. Let the shape of the error narrow the cause

Write down the size and timing of the gap. A consistent ratio, one sudden jump, and a slow drift usually have different causes.

  • About 1,000 times too high or low: inspect watts, watt-hours, kilowatts, and kilowatt-hours. A metric prefix or conversion is probably wrong. Power in watts is a rate; energy in kWh is the accumulated amount on the bill.
  • A steady percentage drift: confirm whole-home coverage, clamp direction and calibration, voltage assumptions, or the sampling frequency used to convert power into energy.
  • One large spike or drop: look for a source reset, unavailable period, device restart, unit change, or a false combined value around a scheduled reset.
  • Only solar homes disagree: compare grid import and export separately. Check whether the utility reports gross flows or a net result, and whether Home Assistant has import and return pointed in the correct direction.
  • The gap began on one date: inspect what changed that day—device software, a connection update, a renamed sensor, a replacement meter, a counter reset, or a Home Assistant outage.

Home Assistant's Energy FAQ warns that summing several resetting Utility Meter sensors into one source can record a false temporary value because they do not reset at exactly the same moment. Add truly separate cumulative sources separately instead of combining their reset points into one jumping total.

4. Check the source first, then the stored history

The Energy dashboard uses saved numeric history, which Home Assistant calls statistics, not just the value currently shown on a sensor. It keeps hourly long-term totals for eligible meters. That is why one bad reading from weeks ago can remain visible after the live sensor looks normal again.

  1. Save the evidence. Note the sensor name, current value, bill dates, mismatch, and the hour or day where the graph first changes. A screenshot is useful.
  2. Fix the source behavior. Correct the software connection, unit, reset handling, import or export direction, or duplicated grid-import source before editing history. Otherwise the bad data will return.
  3. Create a Home Assistant backup. Use Settings → System → Backups and keep the recovery key available before changing stored history.
  4. Review the affected sensor. Open Settings → Tools → Statistics, look for a listed issue or the confirmed bad period, and adjust only the incorrect value.
  5. Recheck one full period. Compare the next completed day first, then the next complete utility cycle.

Do not delete the whole database, reset a correct lifetime meter to zero, or edit many historical points until the cause is known. Those shortcuts can remove unrelated history and make the next comparison harder.

5. If kWh matches but cost does not, inspect the bill rules

A close usage match is good news: the measurement path is probably doing its main job. The remaining gap can come from how money is calculated. Home Assistant can apply energy prices and rate-plan splits, or use cost data supplied by some software connections, but it cannot infer every utility contract.

  • Fixed customer or service charges apply even if the home uses little or no energy.
  • Time-of-use and tiered rates require the correct rate to be active for each portion of usage.
  • Peak-demand charges or minimum bills are not a simple kWh multiplied by one price. A demand charge can be based on the home's highest short period of power use.
  • Taxes, surcharges, delivery charges, and regulatory adjustments may be separate bill lines.
  • Solar export credits and net-metering rules can value exported energy differently from imported energy and may settle on a different schedule.
  • Estimated reads, corrections, and rounding can change a later bill without changing the live local sensor.

Use Home Assistant's cost as a household estimate unless your utility data source and every relevant rate rule are explicitly represented. The better success test is often: first reconcile imported and exported kWh, then explain each remaining dollar difference from the bill's named charge lines.

How close is close enough?

There is no honest universal percentage. A direct reading from the same utility meter over the same finished period should be close after small cutoff and rounding differences. A separate clamp monitor can be useful without being certified for utility billing. A power-to-energy calculation is an approximation, and a sum of selected devices will omit refrigerators, heating and cooling equipment, standby loads, wiring losses, and anything else not measured.

Judge the result by purpose. For spotting a failing appliance or shifting use away from peak hours, a stable trend can be valuable. For checking an invoice, use the utility meter and bill definitions as the authority. If a large unexplained gap remains after the ordered checks, ask the monitor maker or software maintainer about the exact source. Ask the utility to explain its meter and charge lines; do not open the electrical panel to investigate.

If this energy check is part of planning a broader reliable local system, Tara's configured Home Assistant path explains where the controller and household hardware fit without turning the energy dashboard into the billing authority.

Frequently asked questions

Why is Home Assistant energy usage different from my utility bill?

The most common first problem is comparing different dates or different measurements. Compare the bill's exact meter-reading period and delivered or imported kWh with Home Assistant grid-import kWh. If those still differ, check that both readings cover the same meter, then check units, missing data, resets, import and export direction, and stored history.

Why does the cost differ when the kWh matches?

Home Assistant may estimate energy charges, while the utility bill can also include fixed service fees, taxes, tiered or time-of-use rules, charges based on peak use, minimum charges, export credits, and adjustments. Matching kWh does not guarantee an identical dollar total.

Should I reset my energy sensor at the start of each billing month?

Do not reset a healthy lifetime energy sensor just to compare a bill. Select the same date range in the Energy dashboard. A Utility Meter counter can track a defined cycle when needed, but its first cycle is incomplete and its reset settings must match the intended source.

Can I correct a bad spike in the Energy dashboard?

Yes, after identifying and fixing the source. Create a backup, then review the affected sensor in Settings → Tools → Statistics and adjust only confirmed bad values. Do not delete the whole Home Assistant database to remove one spike.

How close should Home Assistant be to the utility meter?

There is no useful universal percentage. A direct reading of the same meter over the same completed period should be close after rounding and boundary differences. A whole-home clamp monitor, power-to-energy calculation, or sum of individual devices has additional sources of error and may not reproduce the utility meter exactly.