calculate route when you want to calculate from inline home context without creating a persisted home first.
Endpoints
| Use case | Endpoint | When to use it |
|---|---|---|
| Custom-period impact calculation | POST /v1/homes/{homeId}/calculate/impact | You have a billing period or scenario window that does not line up exactly with a calendar month. |
| Inline-context impact calculation | POST /v1/calculate/impact | You have rate plan and zipcode context, but do not want to create a home before calculating. |
{id}. In the examples below, {homeId} means the same value: the ID of the home you are calculating impacts for.
Prerequisites
Home-backed impact calculations require the home to have a storedutilityId and ratePlanId.
- Set these during API-based onboarding.
- Use Update Home if you need to change them later.
- When a request asks for
ratePlanId, send the selectedratePlans[].idfromPOST /v1/utility/get. The companionratePlans[].rateIDis the semantic tariff reference, not the value to send asratePlanId.
Usage Data
Both impact-calculation endpoints expect daily arrays of 15-minute interval values.- Each day must contain exactly 96 numeric values.
usageis import consumption in kWh.exportis optional solar or battery export in kWh, using the same daily shape asusage.- If
exportis provided, it must contain the same number of days asusage.
Period Bills
Use the period endpoint when the analysis window is a customer billing period or scenario window.startDate and endDate as YYYY-MM-DD or ISO 8601 timestamps. The usage array must include one daily array for each date from startDate up to, but not including, endDate. For example, 2025-01-07 through 2025-02-08 requires 32 daily arrays.
Inline Context
Use the direct calculate endpoint when you can provide the rate plan and zipcode in the request body instead of referencing an onboarded home.useDefaultUsage to true to generate usage from Palmetto baseline data using the supplied zipcode and optional solarCapacityKw.
Response
Home-backed period calculations return impact fields for the requested window:billTotal: Total tariff bill cost in local currency.gridServicesRev: Estimated grid-services revenue in local currency, when available from the home’s meter, zipcode, and price-signal context.CO2e: Carbon dioxide equivalent emissions in pounds of marginal greenhouse gas, when available from the home’s zipcode and carbon-signal context.
Notes
Billing period matching: Queries that do not precisely match a customer’s billing period are still useful for relative bill and scenario calculations, but they will not exactly match the customer’s utility bill total. Scenario comparison: To show the value of a shift, run the same endpoint twice: once with the baseline usage profile and once with the shifted or optimized profile. ComparebillTotal, gridServicesRev, and CO2e across the two responses.
Solar export: Include export when the customer has solar or battery exports that should offset import usage under the selected tariff.