Accessing Your Utility Data Without Losing Your Mind
The most common way people find their electricity usage history is through the utility company's online portal. You log in with your account number, select a billing period, and download a CSV or PDF. It works. For about six months it seems fine. Then you need data from three years ago and the portal only retains twelve months of detailed records. I ran into this exact problem last winter when a client needed usage data going back to 2019 for a whole-house heat pump evaluation. The portal showed monthly totals only for anything past the most recent year. No interval data. No daily breakdowns. Just billing period kilowatt-hour totals that were barely useful for sizing calculations.
Why Electricity Usage History By Address Matters for Real Work
Interval data matters more than monthly totals. If you are doing load profiling, solar offset calculations, or demand charge analysis for a commercial account, you need 15-minute or hourly resolution. Monthly totals smooth everything out and hide the patterns you actually care about. Most residential smart meters collect data at 15-minute intervals. That is 3,504 data points per customer per year. The utility stores this data. The question is whether they will give it to you easily. They usually will not.
The Methods That Actually Work
There are three practical paths to getting interval data, and none of them are particularly elegant. You submit a data request through your utility's customer service channel. Some utilities have a formal process. Others require you to fill out a paper form and mail it. The response time ranges from three business days to three weeks depending on which utility you deal with. In my experience, Hawaiian Electric responds fastest. Con Edison is the slowest by far. The data itself is always accurate but often delivered in formats that are mildly annoying to work with. I once received a CSV file where the timestamp column was formatted as text rather than a proper date field. That meant every import into Excel required a data type conversion. Took twenty minutes to fix. Would have taken two seconds if the utility had just sent it right.
Get the Full Details

Method Two: Third-Party Aggregators
Services like Arcadia, Wattics, and Honeywell Home connect to your utility account via OAuth or manual login credentials. They pull the data automatically and present it in dashboards. The convenience is real. The data latency is the trade-off. Most aggregators show you data that is one to three days old, not real-time. If you need current interval data for active troubleshooting, this approach will frustrate you. Some utilities offer APIs. Southern California Edison has one. Duke Energy has a developer portal with limited endpoints. These are the gold standard for reliability and speed. You can pull data programmatically on a schedule. The documentation is almost never good, but once you figure out the authentication flow, you get clean data without waiting for a human to process your request. Address-based lookups are unreliable for data retrieval. Utilities assign account numbers, not addresses. Two units in the same building share different meters and different accounts. Asking a utility for "the usage history at 742 Evergreen Terrace" often gets you a generic response or a request to provide your account number first. The workaround is knowing your account number before you start looking. If you do not have it, call the utility and ask for it. Do not skip this step.
Data gaps are normal and usually unreported. I found a three-week gap in a customer's 2022 summer data that the utility claimed was due to "meter communication maintenance." No notification was sent. The gap showed up clearly when I cross-referenced the interval timestamps against known billing periods. For any serious analysis, you need to flag missing intervals and either interpolate or exclude them. Do not blindly fill gaps with averages from adjacent periods. Demand profiles change seasonally and daily. The second counter-intuitive thing beginners miss: interval data is not always normalized for temperature or occupancy. A flat 8,000 kWh month could mean someone was home all day running equipment or the house was empty and the HVAC kept a steady setpoint. The raw numbers tell you nothing about the behavioral component. You need weather data and occupancy estimates layered on top to make sense of it.
What This Approach Cannot Do
You cannot get interval data from pre-smart-meter accounts without a formal data request. If your meter predates 2015 in many markets, the utility only has monthly bill totals. No amount of website browsing will change this. You have to accept that level of granularity and work with whatever exists. Third-party aggregators cannot access every utility. About fourteen percent of US electric cooperatives and municipal utilities do not support the common APIs these services use. If you are in one of those service areas, direct utility requests are your only option. Data format issues are persistent and underreported. Utilities send data in different time zones, different file structures, and sometimes different units. One utility I dealt with sent interval data in watt-hours instead of kilowatt-hours. The numbers looked wrong until I caught the unit mismatch. Always verify the scale before you start plotting anything.

If you need high-frequency data frequently, the aggregator route becomes expensive and fragile. You are dependent on someone else's integration maintaining connectivity with your utility. The API route is more work upfront but does not have that dependency once it is running.
Practical Steps for Getting Started
Find your account number. Check your latest bill. It is usually a ten to twelve digit string near the top of the page. If your bill lists usage in kilowatt-hours, note that. Some commercial accounts bill in demand charges measured in kilowatts. Mixing those up causes calculation errors. Log into your utility's customer portal. Look for a section labeled usage, energy data, or analytics. Some utilities call it something else entirely. Pacific Gas and Electric calls their version Empower. You might spend ten minutes clicking around before you find it. If the portal data is insufficient, submit a formal data request. State clearly what resolution you need. Say "15-minute interval data" specifically. Do not accept "monthly summary data" as a final answer unless it meets your needs. Keep a record of when you submitted the request and what you asked for. Utilities sometimes send the wrong data and you need evidence if you have to follow up.
When the data arrives, validate it immediately. Check for gaps. Verify the units. Confirm the time zone matches your expectations. This takes fifteen minutes and saves you from building analysis on bad data. For ongoing monitoring, set up a simple script that pulls data weekly from your utility's API or aggregator service and stores it locally. I use a Python script with pandas that downloads the latest interval data and appends it to a SQLite database. Takes about four minutes to run. Keeps the data accessible even if a utility portal changes its interface or a third-party service shuts down.

When to Seek Alternative Sources
If your utility does not offer interval data access and you need it for analysis, consider installing a dedicated monitoring device. Sense and Emporia generate their own interval data independent of the utility's systems. They pull readings from your electrical panel using current transformers. The data is accurate to within about two percent for most residential loads. You get immediate access to whatever historical data you need going forward from installation. You do not get historical data before the device was installed, obviously. But for most purposes, having your own source is better than waiting for utility bureaucracy. Avoid aggregators that lock you into proprietary formats. If a service exports your data in a closed format that requires their software to read, you have not solved anything. Demand CSV, JSON, or standard spreadsheet formats at export. Something that took twenty seconds to verify and saved me from having to rebuild a dataset after a service shutdown. The basic principle is straightforward. Your utility has your usage data. The friction is in accessing it. Figure out which path works for your situation and set up a system that does not require you to repeat the same searches every quarter. The first implementation takes longer than the ongoing maintenance by a wide margin.