Getting Utility Bill Data Into ENERGY STAR Portfolio Manager
Portfolio Manager needs five fields per bill, not the whole bill. How to map utility accounts onto properties and meters, find gaps, and upload without errors.
Portfolio Manager wants four things from each bill, plus one optional fifth: a start date, an end date, a usage quantity, the meter it belongs to, and optionally the cost. That’s it. The unit lives on the meter record, not on the bill row. Rate class, taxes, demand charges, prior balance, late fees, the little usage bar chart: none of it goes in.
So the data problem is small. The mapping problem is not. Your bills are organized by billing account. Portfolio Manager is organized by property and meter, and nothing reconciles those two structures for you. That mismatch, plus missing bills, is what actually stops people from getting a score.
What Portfolio Manager stores
Three levels, and you need all three right before any upload works.
| Level | What it is | What it needs |
|---|---|---|
| Property | The building or campus you’re benchmarking | Name, address, gross floor area, year built, number of buildings, at least one property use |
| Meter | A stream of consumption for one fuel or resource at that property | Type (electric grid purchase, natural gas, potable water…), unit of measure, date the meter became active, in-use flag |
| Meter entry | One bill period on that meter | Start date, end date, usage, cost (optional), estimation flag (optional) |
A meter in Portfolio Manager is not necessarily a physical meter. It’s a consumption stream you’ve decided to track as one thing. You can point it at a single physical meter, or use it as an aggregate that rolls up many. EPA explicitly supports the aggregate case: one electricity meter representing all tenant meters in an apartment building, rather than 100 separate records.
Meters also carry up to three optional custom identifiers. Use them. Put the utility account number in the first and the utility’s meter number in the second, and every future reconciliation gets easier. If those two numbers are the same thing in your head, they usually aren’t. See account number vs meter number vs service ID for how one utility can use three different identifiers on one page.
Why the account-to-meter mapping is the hard part
A billing account is a commercial relationship. A Portfolio Manager meter is a physical fact about a building. They line up almost never.
The failure modes are consistent across utilities:
- One consolidated invoice covers many service addresses across several properties. Georgia Power’s Summary Billing does this for commercial customers with ten or more eligible accounts, and National Grid Massachusetts consolidates multiple electric accounts onto a single bill format. The PDF has one account number on page 1 and fifteen service points inside.
- One property has several accounts for different parts of the building: house/common meter, parking deck, a separate chiller service.
- In deregulated gas markets the invoice comes from a marketer while the meter belongs to the LDC. In Georgia, a Gas South bill carries both a Gas South account number and a separate AGL Number, and a Constellation invoice shows a Meter Number alongside the Atlanta Gas Light charges it passes through. Work out which of those identifies the building before you map anything.
- A single Con Edison location can involve several meters across several accounts, with different services falling under different service classifications, so a mixed-use building can end up with multiple electric accounts that all belong to one property.
Build the mapping table once and treat it as the source of truth: account number and service address, to property and Portfolio Manager meter. Everything downstream depends on it.
Who ends up doing this
Two things usually drive it. The first is a local benchmarking and transparency ordinance. A number of US cities and states require covered commercial and multifamily buildings over a floor-area threshold to benchmark annually in Portfolio Manager and report the result. EPA doesn’t maintain that list itself; its guidance points readers to IMT’s comparison of US commercial building benchmarking and transparency policies. Thresholds, covered property types, and reporting dates vary enough between jurisdictions that you should read your own rule rather than assume.
The second is a lender, insurer, or investor asking for portfolio energy and emissions data. Portfolio Manager output is a common format to hand over, and that request usually arrives with less notice than an ordinance deadline.
Three ways to get data in, and when each is worth it
Manual entry. Property tab, Energy or Water, Add A Meter, then Add Another Entry per bill. Fine for one property with two meters and 26 bills. Painful past that. It’s also the only method where you see every validation message as you go, which makes it a reasonable way to learn the structure on your first property.
Spreadsheet upload. Two flavors. The single-meter template downloads from the Manage Bills page of a specific meter and has exactly five columns:
Start Date (Required) | End Date (Required) | Usage (Required) | Cost (Optional) | Estimation (Optional)
Estimation takes Yes or No. There is no unit column and no meter column: the unit comes from the meter record, and the meter is implied by whose page you downloaded from. That’s the common surprise. You cannot fix a wrong unit in the spreadsheet.
The multi-meter route is the “complex spreadsheet” under Manage Portfolio. You pick a task (Add Meters to Existing Properties, or Add Bills to Existing Meters), select the properties, and Portfolio Manager generates a custom template pre-populated with your own property and meter IDs. That’s the real constraint: it’s generated per account per task, so you can’t build a reusable file offline and hand it to someone else. You regenerate it every time the meter list changes.
EPA is blunt about the rest, and they’re right: don’t change any formatting, don’t rename column headers, don’t use formulas for numeric values, fill in every required field. Any of those fails the upload. A spreadsheet full of live VLOOKUPs against your mapping table will upload as errors. Paste values.
Web services. Direct data exchange between a utility or service provider and your account. Worth it if your utility already offers it, in which case you connect and share from the property’s Energy tab and the data lands automatically. Building your own integration is a different proposition: you develop against a separate test environment, then register and submit for EPA approval against the Web Service Provider Guidelines. Not a path to hitting a deadline six weeks out.
Getting from PDFs to rows
You need a small subset of what’s on the page: service period start and end, usage, unit, cost, and whichever identifier maps the bill to your meter. See what fields to extract from a utility bill for the full set and the variant names, and converting a utility bill PDF to Excel for the mechanics.
The period label is where this goes wrong. The same concept appears as “Service Period”, “Billing Period”, “Read Dates”, or a bare “From/To” pair, and on some bills the billing period and the meter read period are genuinely different dates. Take the read dates.
One approach that reliably fails: pulling this from an accounts payable export. AP data is keyed to invoice date and amount payable, not service period and commodity usage, and one invoice line often bundles several meters, a prior balance, and non-commodity charges. You get 12 rows per account that look complete and describe the wrong thing.
Finding gaps before you upload
Portfolio Manager needs at least 12 full consecutive calendar months of energy data for all active meters and all fuel types before it will produce an ENERGY STAR score. A full month includes its first and last day. Because most bills run mid-month to mid-month, EPA notes you generally need 13 bills to cover 12 full calendar months.
Gaps and overlaps both raise Data Quality Checker alerts. A gap is any date not covered by a bill; an overlap is a date covered by more than one. They’re alerts, not hard blocks. You can save a meter riddled with gaps and only discover the problem when the score never appears.
Find them in the spreadsheet first. Sort by meter, then start date, and compare two numbers per meter:
Span = MAX(End Date) - MIN(Start Date) + 1
Covered = SUMPRODUCT((End Date - Start Date) + 1)
Covered = Span contiguous
Covered < Span gap
Covered > Span overlap
To locate the specific break, put this beside row 3 of a sorted block and fill down:
=IF(A3<>B2+1, "gap/overlap at " & TEXT(B2+1,"mm/dd/yyyy"), "")
Pick one boundary convention and apply it to the whole meter: next start date equals prior end date plus one day. Bills are inconsistent about whether the read date belongs to the closing period or the opening one, and mixing conventions inside one meter is how you generate 12 one-day overlaps.
Two other alerts to know before uploading. Portfolio Manager flags any energy meter entry longer than 65 days, which blocks weather-normalized metrics. And it flags when no meters have been selected for metrics at all, which catches people who entered everything correctly and never visited the Select Meters to Include in Metrics page.
Problems that surface at upload
Unit mismatches are the quiet ones. Natural gas is the usual victim: the bill reads 1,842 Ccf, the meter was created in therms, and someone types 1842. Portfolio Manager converts Ccf at 102.6 kBtu and therms at 100 kBtu, so that entry lands at 184,200 kBtu instead of 188,989 kBtu. About 2.5% low, every month, with no error message. Portfolio Manager offers Ccf as a unit. Set the meter to whatever the bill actually uses.
Estimated reads followed by true-ups need a decision, not a default. Set the Estimation flag when you enter an estimate, then replace the value once the actual read arrives. If you instead leave the estimate and add the true-up as its own entry, you’ve either double-counted or created an overlap, depending on the dates you gave it.
Meters entered at the wrong level are harder to unwind. A submeter serving one tenant, entered as a property-level meter alongside the whole-building meter, double-counts that load and pushes the EUI up. Aggregate meters are the intended tool: one Portfolio Manager meter standing for many physical meters, with the individual meters optionally documented underneath.
Multi-tenant and common areas
Honest answers get short here. If tenants are directly metered by the utility and you only receive common-area bills, you do not have whole-building data, and Portfolio Manager asks you to say so when you set what portion of the property your meters cover. Options: ask tenants for their bills, request aggregated whole-building data from the utility where that program exists, or benchmark with the coverage you have and accept the number isn’t comparable to a whole-building one. Aggregation programs vary by territory and usually require a minimum tenant count first. Chasing individual tenant bills works about as well as it sounds.
A worked example
Two properties out of a small portfolio, one quarter of data.
| Invoice | Identifier on bill | Property | PM meter | Unit |
|---|---|---|---|---|
| Georgia Power 08215-31007 | Svc 1400 Peachtree St NE, mtr GP-4417208 | Midtown Office | Electric – House | kWh |
| Georgia Power 08215-31007 | Svc 1400 Peachtree St NE Deck, mtr GP-4417233 | Midtown Office | Electric – Parking Deck | kWh |
| Georgia Power 08215-31007 | Svc 4820 Ashford Dunwoody Rd, mtr GP-3390115 | Perimeter Flex | Electric – Whole Building | kWh |
| Gas South 4402887 | AGL Number 0812449, 1400 Peachtree St NE | Midtown Office | Natural Gas | Ccf |
| City of Atlanta 1180-42207 | 1400 Peachtree St NE | Midtown Office | Potable Water | kGal |
One Georgia Power invoice, two properties, three meters. That’s the mapping problem in three rows.
Meter entries for Midtown Office, Electric – House:
| Start Date | End Date | Usage | Cost | Estimation |
|---|---|---|---|---|
| 01/14/2025 | 02/12/2025 | 128,400 | 14,972.60 | No |
| 02/13/2025 | 03/14/2025 | 119,760 | 13,948.30 | No |
| 03/15/2025 | 04/14/2025 | 131,220 | 15,301.40 | No |
379,380 kWh and $44,222.30 across the three periods, a blended $0.1166/kWh, and Span equals Covered at 91 days. Contiguous.
Now the part that blocks the score. Midtown Office has 13 electric bills running 12/15/2024 through 01/13/2026, which covers calendar year 2025. The gas meter is missing August. Portfolio Manager will store the other 12 gas entries without complaint, raise a Meter has gaps alert, and decline to produce a score for that property until the missing bill is entered. Check coverage per meter before you upload, not after.
Doing this every month?
Annual benchmarking is survivable by hand. Monthly tracking across a few dozen properties, with consolidated invoices, estimated reads, and a new account appearing every quarter, is a different job. MeterID collects, validates, and delivers utility bill data for multi-site portfolios — see how it works.
