HVAC Estimate Savings API Documentation
Overview
This endpoint calculates estimated cost savings for HVAC systems based on optimization strategies. It supports two calculation types:- Monthly: Returns detailed hourly data for a specific time period
- Annual: Returns annualized savings estimates
Authentication
Requires API Key authentication viaApiKeyGuard.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Home ID (UUID) |
Request Body
Base Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
type | enum | Yes | - | Calculation type: "monthly" or "annual" |
targetTemp | number (Fahrenheit) | No | 72 | Target temperature in Fahrenheit |
targetCoolSetpoint | number (Fahrenheit) | No | targetTemp + 1 | Target cooling setpoint in Fahrenheit |
targetHeatSetpoint | number (Fahrenheit) | No | targetTemp - 1 | Target heating setpoint in Fahrenheit |
minTemp | number (Fahrenheit) | No | 70 | Minimum allowed temperature in Fahrenheit |
maxTemp | number (Fahrenheit) | No | 74 | Maximum allowed temperature in Fahrenheit |
heatTransferCoefficient | number | No | 1 | Heat transfer coefficient for thermal modeling |
irradianceCoefficient | number | No | 0.5 | Solar irradiance coefficient |
coolingRate | number | No | 1 | Cooling rate multiplier |
heatingRate | number | No | 1 | Heating rate multiplier |
mode | enum | Yes | - | HVAC mode: "AUTO", "COOL", "HEAT", or "OFF" |
days | number | No | 1 | Number of days to simulate |
Monthly Type Specific Fields
| Field | Type | Required | Description |
|---|---|---|---|
start | object | No | Start time configuration. Either {month: number} or {startTime: Date} |
startTime | Date (ISO string) | No | Deprecated - Use start object instead. Start time for the calculation |
Annual Type Specific Fields
| Field | Type | Required | Description |
|---|---|---|---|
months | number[] | null | No | Array of month indices (0-11) to include. If null, all 12 months are included |
Request Examples
Monthly Calculation Example
Annual Calculation Example
Response
The response structure depends on thetype parameter.
Monthly Response
| Field | Type | Description |
|---|---|---|
zipcode | string | Home zipcode |
percentageSaved | number | Percentage of cost saved (0-1) |
dollarsSaved | number | Total dollars saved |
optimizedCost | number | Total cost with optimization |
baselineCost | number | Total cost without optimization (baseline) |
outdoorTemp | number[] | Array of outdoor temperatures for each hour (Fahrenheit) |
temperatureData | number[] | Array of optimized indoor temperatures for each hour (Fahrenheit) |
hvacConsumption | number[] | Array of optimized HVAC consumption for each hour (kWh) |
baselineTemperatureData | number[] | Array of baseline indoor temperatures for each hour (Fahrenheit) |
baselineHvacConsumption | number[] | Array of baseline HVAC consumption for each hour (kWh) |
length | number | Number of data points (hours) |
setPointList | number[] | Array of setpoint temperatures for each hour (Fahrenheit) |
Annual Response
| Field | Type | Description |
|---|---|---|
zipcode | string | Home zipcode |
leapRevenue | number | undefined | LEAP revenue (if applicable) |
dollarsSaved | number | Annual dollars saved |
percentageSaved | number | Annual percentage saved (0-1) |
optimizedCost | number | Annual optimized cost |
baselineCost | number | Annual baseline cost |
optimizedEnergy | number | Annual optimized energy consumption (kWh) |
baselineEnergy | number | Annual baseline energy consumption (kWh) |
energyReduction | number | Annual energy reduction (kWh) |
annualDollarsSaved | number | Same as dollarsSaved (for compatibility) |
annualPercentageSaved | number | Same as percentageSaved (for compatibility) |
annualOptimizedCost | number | Same as optimizedCost (for compatibility) |
annualBaselineCost | number | Same as baselineCost (for compatibility) |
annualOptimizedConsumption | number | Same as optimizedEnergy (for compatibility) |
annualBaselineConsumption | number | Same as baselineEnergy (for compatibility) |
annualEnergyReduction | number | Same as energyReduction (for compatibility) |
Response Examples
Monthly Response Example
Annual Response Example
Error Responses
400 Bad Request
Missing required home data404 Not Found
Home not found500 Internal Server Error
Optimization failedNotes
- The home must have a
zipcodeandratePlanIdconfigured - If
outdoorTempis not provided, temperatures are fetched from a weather service - The
startfield accepts either a month index (1-12) or a specific start time - For annual calculations, results are normalized to a full year (365 days)
Enumerations
EstimateSavingsType
| Value | Description |
|---|---|
"monthly" | Calculate monthly savings with hourly data |
"annual" | Calculate annual savings estimates |
WsHvacMode
| Value | Description |
|---|---|
"AUTO" | Automatic mode (both heating and cooling) |
"COOL" | Cooling only |
"HEAT" | Heating only |
"OFF" | HVAC system off |
