ENERGY STAR Portfolio Manager
Connection Setup (one-time per property)
- Log into portfoliomanager.energystar.gov
- Open your property → Share → Search "api@soapbox.build" → Share as Read Only
- Call
list_shared_propertiesto confirm it appears
Available Tools
All read tools are backed by the official ESPM REST API (authoritative). Earlier UI-scrape versions silently returned empty results, causing false "no data" conclusions — always trust the REST results.
list_properties— All properties in the account (propertyId, name, address)get_property— Property details, floor area, primary functionget_metrics/get_score_details— Score (1-100), site/source EUI (kBtu/ft²), energy use, GHG (tCO2e). Auto-finds the latest 12-month period with data.list_meters/list_meters_rest— All meters (meterId, name, type, units, inUse)get_meter_consumption(propertyId, meterId?, startDate?, endDate?)— Monthly consumption. WithmeterId: flat[{startDate, endDate, usage, units, cost, estimated}]newest-first. Without: per-meter breakdown with Audette-readyusage_kWh/usage_therms.submit_meter_data,add_meter,create_property,update_property,share_property— Write operations
Consumption / Audette Calibration
- Prefer the "Aggregate Electric Meter" and "Aggregate Gas Meter" for whole-property totals. Do NOT also sum the individual sub-meters (e.g.
ELtn97xxxx) — that double-counts. - Electricity native unit is usually kWh (
usage_kWh == usage); gas is usually therms. - Empty REST results are truthful: a meter with no records means no bills were shared/entered — but aggregate meters usually carry full history.
ENERGY STAR Score Interpretation
- 75+ = eligible for ENERGY STAR certification
- 50 = national median
- <25 = significant improvement opportunity
- Score compares to similar buildings nationally (same type, climate, size)
scoreEligible: false/energyStarScore: nullmeans no scored period was found in the window — report EUI instead