Solar savings calculations,
as an API

Accurate, per-address solar savings analysis for California. Real utility rate schedules, hourly load profiles, and 25-year financial projections — in a single API call.

Address in, savings out

Send an address and system configuration. Get back a complete financial picture.

1. Locate

Geocode the address. Identify the utility territory, rate schedule, and CEC climate zone.

2. Simulate

Build an 8,760-hour load profile and solar generation curve using NREL-calibrated models.

3. Calculate

Apply real TOU rates, NEM tariffs, and battery dispatch to produce before/after bills and 25-year NPV.

Endpoints

Three endpoints cover the full solar savings workflow. All require API key authentication.

POST
/v1/identify-rates
Geocode an address and identify the utility territory, applicable pre-solar and post-solar rate schedules, and CEC climate zone.
GET
/v1/utilities/:slug/rates
List all rate schedules for a given utility, including TOU periods, tiered pricing, and solar eligibility.
POST
/v1/quotes
Generate a complete solar savings quote: hourly simulation, monthly and annual summaries, before/after bills, and 25-year financial projections with battery support.
GET
/v1/quotes/:id
Retrieve a previously generated quote by ID, including full summary data and financial metrics.

One request, complete analysis

Here's what a full quote request and response looks like.

# Generate a solar savings quote
curl -X POST https://api.solarsavingsdata.com/v1/quotes \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_api_key" \
  -d '{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA",
    "system_size_kw": 8.0,
    "annual_kwh": 10000
  }'
{
  "quoteId": "quote_a1b2c3d4e5f6g7h8",
  "engineVersion": "1.0.0",
  "status": "complete",
  "location": {
    "formattedAddress": "1600 Amphitheatre Pkwy, Mountain View, CA 94043",
    "utilitySlug": "pge",
    "utilityName": "Pacific Gas & Electric",
    "cecClimateZone": 4
  },
  "system": {
    "systemSizeKw": 8.0,
    "panelCount": 20,
    "tilt": 20,
    "azimuth": 180
  },
  "annual": {
    "annualLoadKwh": 10000,
    "annualSolarKwh": 12480,
    "annualBeforeBill": 3200.50,
    "annualAfterBill": 845.20,
    "annualSavings": 2355.30,
    "solarOffsetPercentage": 124.8
  },
  "financials": {
    "grossSystemCost": 24000,
    "federalTaxCreditAmount": 7200,
    "netSystemCost": 16800,
    "annualSavings": 2355.30,
    "year1Savings": 2355.30
  }
}