HomeGuidesAPI ReferenceChangelog
Log In
Guides

Step 5: Run a Savings Analysis

Run a Savings Analysis to compare before, after, and solar scenarios using the account, usage profile, solar profile, tariffs, and project assumptions.

Run a Savings Analysis to compare before, after, and solar scenarios using the account, usage profile, solar profile, tariffs, and project assumptions.

Savings Analysis workflow

  1. Choose whether to use customer profiles or typical baselines.
  2. Set providerAccountId.
  3. Add the electricity usage profile to the before and after scenarios.
  4. Add the solar production profile to the after and solar scenarios.
  5. Set post-solar tariff, rate inflation, and solar degradation assumptions.
  6. Add solar cost assumptions in rateInputs.
  7. Run the Savings Analysis request.
  8. If you have less than a year of usage data, rerun with useIntelligentBaselining=true.

Scenario quick reference

ScenarioRepresentsTypical inputs
beforeCustomer without the solar projectExisting usage profile, existing tariff, utility inflation
afterCustomer after the solar projectExisting usage profile, solar production profile, post-solar tariff, and utility inflation
solarCost and production of the solar assetSolar profile, solar degradation, PPA/lease/loan rate on the system

Savings Analysis

The Savings Analysis endpoint calculates the results for an entire project in one step, answering the question, "What happens if I install a solar system with this configuration and these assumptions?" A Savings Analysis can show avoided cost, solar cost, first-year savings, lifetime savings, and other values depending on how you configure the calculation context.

To run a Savings Analysis, pass the usage profiles, solar production profile, PPA or lease rates, escalation assumptions, and other project inputs. The response returns the results for each scenario over the life of the project.

Savings Analysis results are organized by scenario and period. The response includes monthly results for the first year, annual results for the analysis period, and lifetime totals.

Example 1: Run a Savings Analysis with your usage and solar profiles

Use this request for the most common Savings Analysis inputs. It includes a solar lease, the tariff, and a solar profile.

POST /rest/v1/accounts/analysis
{
  "providerAccountId": "forecast-savings-example",
  "fromDateTime": "2017-01-01",
  "propertyInputs": [
    {
      "scenarios": "before,after",
      "keyName": "providerProfileId",
      "dataValue": "forecast-savings-example-bills",
      "dataFactor": 1
    },
    {
      "scenarios": "after,solar",
      "keyName": "providerProfileId",
      "dataValue": "forecast-savings-example-pvwatts",
      "dataFactor": 1
    },
    {
      "scenarios": "after",
      "keyName": "masterTariffId",
      "dataValue": "3200687"
    },
    {
      "scenarios": "before,after",
      "keyName": "rateInflation",
      "dataValue": "3.5"
    },
    {
      "scenarios": "solar",
      "keyName": "rateInflation",
      "dataValue": "1.9"
    },
    {
      "scenarios": "after,solar",
      "keyName": "solarDegradation",
      "dataValue": "1.5"
    }
  ],
  "rateInputs": [
    {
      "scenarios": "solar",
      "chargeType": "FIXED_PRICE",
      "rateBands": [
        {
          "rateAmount": 99.99
        }
      ]
    }
  ]
}
FieldPurpose
providerAccountIdAccount to analyze.
fromDateTimeExpected interconnection date and analysis start.
propertyInputs[]Scenario-specific profiles, tariffs, and assumptions.
rateInputs[]Scenario-specific solar cost assumptions.
scenariosDetermines which scenario an input applies to.

Key inputs:

  • scenarios - Defines where each input applies: before, after, solar, or a combination. In this request, masterTariffId applies to the after scenario because the customer switches from E-1 Residential to E-6, SCP's residential time-of-use tariff, after going solar.
  • providerProfileId - Specifies which profiles to use in each scenario. Here, forecast-savings-example-bills applies to both before and after because we do not expect baseline usage to change after going solar. forecast-savings-example-pvwatts applies to both after and solar: in after, solar production is subtracted from electricity usage; in solar, it is used to calculate the cost of solar energy.
  • masterTariffId - Sets the post-solar tariff for the after scenario. The before scenario can use the tariff already set on the account, so we do not need to pass a separate masterTariffId for before in this request.
  • fromDateTime - The fromDateTime is the expected date of interconnection. By setting the date in the future, the most recent rates will be used in your savings calculation.
  • rateInflation - How much electricity rates rise each year, as a percentage. Here we're using different values for the utility costs (the before and after scenarios) than we do for the solar cost (solar).
  • rateInputs - Here we define the cost of solar energy. rateInputs accepts a simplified version of a tariff rate. You can have a chargeType of either FIXED_PRICE or CONSUMPTION_BASED (representing a lease/loan vs a PPA) and one rateBand with one rateAmount.

Optional: Use Intelligent Baselining with less than a year of data

Because Step 3 created a profile with only three months of bills, the first request demonstrates the validation error you receive before enabling Intelligent Baselining.

If you run the request above with only the three months of bill data from Step 3, the API returns this error:

{  
    "status": "error",  
    "count": 1,  
    "type": "Error",  
    "results": [  
        {  
            "code": "InvalidError",  
            "message": "Less than a year's worth of ReadingData",  
            "objectName": "UsageProfile",  
            "propertyName": "profileId",  
            "propertyValue": "599cd2544e2822336ba3535a"  
        }  
    ]  
}  

Because electricity usage and charges vary from month to month, Savings Analysis needs a full year of usage data to calculate an accurate solar savings forecast.

If you don't have a year's worth of data, use Intelligent Baselining. In our profile, for example, we only had three months of usage data.

Intelligent Baselining can extrapolate a full year of data from as little as one electricity bill.

To use Intelligent Baselining, repeat the API call above with the following property added to it: "useIntelligentBaselining": true.

{
  "providerAccountId": "forecast-savings-example",
  "fromDateTime": "2017-01-01",
  "useIntelligentBaselining": true,
  "propertyInputs": [
    "..."
  ],
  "rateInputs": [
    "..."
  ]
}

The response below has been shortened to show the summary, scenarios, series, and representative series data:

{  
    "status": "success",  
    "count": 1,  
    "type": "AccountAnalysis",  
    "results": [  
        {  
            "designId": null,  
            "dataStatus": 2,  
            "currency": "USD",  
            "summary": {  
                "lifeTimeUtilityAfterCost": 10424.395,  
                "lifeTimeUtilityAvoidedRate": 0.341,  
                "lifetimeAvoidedCost": -1803.135,  
                "lifetimeSolarCost": 28865.31,  
                "lifetimeWithoutCost": 37486.57,  
                "netAvoidedCost": 1028.56,  
                "netAvoidedCostPctOffset": 0.7759,  
                "netAvoidedKWh": 4561.92,  
                "netAvoidedKWhPctOffset": 0.673,  
                "netAvoidedRate": 0.225467,  
                "postTotalCost": 297,  
                "postTotalKWh": 2216.145801,  
                "postTotalKWhCost": 239.458381,  
                "postTotalKWhRate": 0.108052,  
                "postTotalMinCost": 119.9171,  
                "postTotalNonBypassableCost": 103.21,  
                "postTotalNonMinCost": 296.996081,  
                "postTotalRate": 0.134017,  
                "preTotalCost": 1325.56,  
                "preTotalKWh": 6778.064004,  
                "preTotalKWhCost": 1360.364613,  
                "preTotalKWhRate": 0.200702,  
                "preTotalMinCost": 119.9171,  
                "preTotalNonBypassableCost": 0,  
                "preTotalNonMinCost": 1325.564613,  
                "preTotalRate": 0.195567  
            },  
            "scenarios": [  
                {  
                    "id": null,  
                    "name": "before",  
                    "serviceType": "ELECTRICITY",  
                    "inputs": [  
                        {  
                            "keyName": "lseId",  
                            "displayName": "Utility or Load Serving Entity",  
                            "dataType": "INTEGER",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "100747",  
                            "scenarios": "before"  
                        },  
                        {  
                            "keyName": "masterTariffId",  
                            "displayName": "Residential",  
                            "dataType": "INTEGER",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "3200682",  
                            "scenarios": "before"  
                        },  
                        {  
                            "keyName": "profileId",  
                            "displayName": "Electricity Bills",  
                            "dataType": "STRING",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "599cd2544e2822336ba3535a",  
                            "scenarios": "before"  
                        },  
                        {  
                            "keyName": "rateInflation",  
                            "displayName": "Rate Inflation",  
                            "dataType": "DECIMAL",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "3.5",  
                            "scenarios": "before"  
                        },  
                        {  
                            "keyName": "tariffCode",  
                            "displayName": "tariffCode",  
                            "dataType": "INTEGER",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "E-1",  
                            "scenarios": "before"  
                        },  
                        {  
                            "keyName": "territoryId",  
                            "displayName": "Territory",  
                            "description": "Territory where tariff is operational",  
                            "dataType": "INTEGER",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "7573",  
                            "accuracy": 100,  
                            "scenarios": "before"  
                        }  
                    ]  
                },  
                {  
                    "id": null,  
                    "name": "after",  
                    "serviceType": "ELECTRICITY",  
                    "inputs": [  
                        {  
                            "keyName": "lseId",  
                            "displayName": "Sonoma Clean Power",  
                            "dataType": "INTEGER",  
                            "dataValue": "100747",  
                            "scenarios": "after"  
                        },  
                        {  
                            "keyName": "masterTariffId",  
                            "displayName": "Residential - Time of Use",  
                            "dataType": "INTEGER",  
                            "dataValue": "3200687",  
                            "scenarios": "after"  
                        },  
                        {  
                            "keyName": "profileId",  
                            "displayName": "2.7 kW | PVWatts",  
                            "dataType": "STRING",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "f836f03e-fe32-46f0-a1f9-b2b869770787",  
                            "scenarios": "after",  
                            "operator": "-"  
                        },  
                        {  
                            "keyName": "profileId",  
                            "displayName": "Electricity Bills",  
                            "dataType": "STRING",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "599cd2544e2822336ba3535a",  
                            "scenarios": "after"  
                        },  
                        {  
                            "keyName": "rateInflation",  
                            "displayName": "Rate Inflation",  
                            "dataType": "DECIMAL",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "3.5",  
                            "scenarios": "after"  
                        },  
                        {  
                            "keyName": "solarDegradation",  
                            "displayName": "Solar Degradation",  
                            "dataType": "DECIMAL",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "1.5",  
                            "scenarios": "after"  
                        },  
                        {  
                            "keyName": "tariffCode",  
                            "displayName": "E-6",  
                            "dataType": "STRING",  
                            "dataValue": "E-6",  
                            "scenarios": "after"  
                        },  
                        {  
                            "keyName": "territoryId",  
                            "displayName": "Territory",  
                            "description": "Territory where tariff is operational",  
                            "dataType": "INTEGER",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "7573",  
                            "accuracy": 100,  
                            "scenarios": "after"  
                        }  
                    ],  
                    "rates": []  
                },  
                {  
                    "id": null,  
                    "name": "solar",  
                    "serviceType": "SOLAR_PV",  
                    "inputs": [  
                        {  
                            "keyName": "profileId",  
                            "displayName": "2.7 kW | PVWatts",  
                            "dataType": "STRING",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "f836f03e-fe32-46f0-a1f9-b2b869770787",  
                            "scenarios": "solar",  
                            "operator": "+"  
                        },  
                        {  
                            "keyName": "rateInflation",  
                            "displayName": "Rate Inflation",  
                            "dataType": "DECIMAL",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "1.9",  
                            "scenarios": "solar"  
                        },  
                        {  
                            "keyName": "solarDegradation",  
                            "displayName": "Solar Degradation",  
                            "dataType": "DECIMAL",  
                            "fromDateTime": "2017-01-01T00:00:00-08:00",  
                            "toDateTime": "2018-01-01T00:00:00-08:00",  
                            "dataValue": "1.5",  
                            "scenarios": "solar"  
                        }  
                    ],  
                    "rates": [  
                        {  
                            "fromDateTime": null,  
                            "toDateTime": null,  
                            "chargeType": "FIXED_PRICE",  
                            "chargePeriod": "MONTHLY",  
                            "rateBands": [  
                                {  
                                    "tariffRateBandId": null,  
                                    "tariffRateId": null,  
                                    "rateSequenceNumber": null,  
                                    "hasConsumptionLimit": null,  
                                    "hasDemandLimit": null,  
                                    "hasPropertyLimit": false,  
                                    "rateAmount": 99.99,  
                                    "rateUnit": null,  
                                    "isCredit": null,  
                                    "prevUpperLimit": null  
                                }  
                            ],  
                            "scenarios": "solar"  
                        }  
                    ]  
                }  
            ],  
            "series": [  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2018-01-01T00:00:00-08:00",  
                    "scenario": "before",  
                    "displayLabel": "Before Solar Utility (Mo/Year 1)",  
                    "seriesPeriod": "MONTH",  
                    "seriesDuration": 12,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0.19556617,  
                    "qty": 6778.064004,  
                    "cost": 1325.56  
                },  
                {  
                    "seriesId": 2,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2018-01-01T00:00:00-08:00",  
                    "scenario": "after",  
                    "displayLabel": "After Solar Utility (Mo/Year 1)",  
                    "seriesPeriod": "MONTH",  
                    "seriesDuration": 12,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0.13401645,  
                    "qty": 2216.145801,  
                    "cost": 297  
                },  
                {  
                    "seriesId": 3,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2018-01-01T00:00:00-08:00",  
                    "scenario": "solar",  
                    "displayLabel": "Solar (Mo/Year 1)",  
                    "seriesPeriod": "MONTH",  
                    "seriesDuration": 12,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0.263021,  
                    "qty": 4561.918203,  
                    "cost": 1199.88  
                },  
                {  
                    "seriesId": 4,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2018-01-01T00:00:00-08:00",  
                    "scenario": "savings",  
                    "displayLabel": "Total Savings (Mo/Year 1)",  
                    "seriesPeriod": "MONTH",  
                    "seriesDuration": 12,  
                    "designId": null,  
                    "key": null,  
                    "qty": 0,  
                    "cost": -171.31146786507081  
                },  
                {  
                    "seriesId": 5,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "scenario": "before",  
                    "displayLabel": "Before Solar Utility (Annual)",  
                    "seriesPeriod": "YEAR",  
                    "seriesDuration": 20,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0.276529,  
                    "qty": 135561.28008,  
                    "cost": 37486.57  
                },  
                {  
                    "seriesId": 6,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "scenario": "after",  
                    "displayLabel": "After Solar Utility (Annual/Lifetime)",  
                    "seriesPeriod": "YEAR",  
                    "seriesDuration": 20,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0.185403,  
                    "qty": 56225.50008,  
                    "cost": 10424.395081  
                },  
                {  
                    "seriesId": 7,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "scenario": "solar",  
                    "displayLabel": "Solar (Annual/Lifetime)",  
                    "seriesPeriod": "YEAR",  
                    "seriesDuration": 20,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0.363837,  
                    "qty": 79335.778203,  
                    "cost": 28865.31  
                },  
                {  
                    "seriesId": 8,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "scenario": "savings",  
                    "displayLabel": "Total Year Savings (Annual/Lifetime)",  
                    "seriesPeriod": "YEAR",  
                    "seriesDuration": 20,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0,  
                    "qty": 0,  
                    "cost": -1803.135081  
                },  
                {  
                    "seriesId": 9,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "scenario": "before",  
                    "displayLabel": "Before Solar Utility (Lifetime)",  
                    "seriesPeriod": "ALL",  
                    "seriesDuration": 20,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0.276529,  
                    "qty": 135561.28008,  
                    "cost": 37486.57  
                },  
                {  
                    "seriesId": 10,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "scenario": "after",  
                    "displayLabel": "After Solar Utility (Lifetime)",  
                    "seriesPeriod": "ALL",  
                    "seriesDuration": 20,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0.185403,  
                    "qty": 56225.50008,  
                    "cost": 10424.395081  
                },  
                {  
                    "seriesId": 11,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "scenario": "solar",  
                    "displayLabel": "Solar (Lifetime)",  
                    "seriesPeriod": "ALL",  
                    "seriesDuration": 20,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0.363837,  
                    "qty": 79335.778203,  
                    "cost": 28865.31  
                },  
                {  
                    "seriesId": 12,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "scenario": "savings",  
                    "displayLabel": "Total Savings (Lifetime)",  
                    "seriesPeriod": "ALL",  
                    "seriesDuration": 20,  
                    "designId": null,  
                    "key": null,  
                    "rate": 0,  
                    "qty": 0,  
                    "cost": -1803.135081  
                }  
            ],  
            "seriesData": [  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2017-02-01T00:00:00-08:00",  
                    "rate": 0.18269773,  
                    "qty": 599.980637,  
                    "cost": 109.61510042385401  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-02-01T00:00:00-08:00",  
                    "toDateTime": "2017-03-01T00:00:00-08:00",  
                    "rate": 0.18149252,  
                    "qty": 522.946951,  
                    "cost": 94.91095996330652  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-03-01T00:00:00-08:00",  
                    "toDateTime": "2017-04-01T00:00:00-07:00",  
                    "rate": 0.20246761,  
                    "qty": 573.760544,  
                    "cost": 116.16792605597984  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-04-01T00:00:00-07:00",  
                    "toDateTime": "2017-05-01T00:00:00-07:00",  
                    "rate": 0.16940692,  
                    "qty": 542.984688,  
                    "cost": 91.98536222666976  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-05-01T00:00:00-07:00",  
                    "toDateTime": "2017-06-01T00:00:00-07:00",  
                    "rate": 0.20388622,  
                    "qty": 548.974228,  
                    "cost": 111.92828022433816  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-06-01T00:00:00-07:00",  
                    "toDateTime": "2017-07-01T00:00:00-07:00",  
                    "rate": 0.20421133,  
                    "qty": 535.262656,  
                    "cost": 109.30669888109248  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-07-01T00:00:00-07:00",  
                    "toDateTime": "2017-08-01T00:00:00-07:00",  
                    "rate": 0.20543869,  
                    "qty": 569.275344,  
                    "cost": 116.95118092065936  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-08-01T00:00:00-07:00",  
                    "toDateTime": "2017-09-01T00:00:00-07:00",  
                    "rate": 0.2053946,  
                    "qty": 568.677996,  
                    "cost": 116.8033895172216  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-09-01T00:00:00-07:00",  
                    "toDateTime": "2017-10-01T00:00:00-07:00",  
                    "rate": 0.20738566,  
                    "qty": 577.703732,  
                    "cost": 119.80746974528312  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-10-01T00:00:00-07:00",  
                    "toDateTime": "2017-11-01T00:00:00-07:00",  
                    "rate": 0.17631508,  
                    "qty": 580.816686,  
                    "cost": 102.4067421896094  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-11-01T00:00:00-07:00",  
                    "toDateTime": "2017-12-01T00:00:00-08:00",  
                    "rate": 0.20286446,  
                    "qty": 560.197724,  
                    "cost": 113.64420877248904  
                },  
                {  
                    "seriesId": 1,  
                    "fromDateTime": "2017-12-01T00:00:00-08:00",  
                    "toDateTime": "2018-01-01T00:00:00-08:00",  
                    "rate": 0.20425239,  
                    "qty": 597.482818,  
                    "cost": 122.03729356043502  
                },  
                {  
                    "seriesId": 2,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2017-02-01T00:00:00-08:00",  
                    "rate": 0.15744981,  
                    "qty": 371.666069,  
                    "cost": 58.51875270540963  
                },  
                {  
                    "seriesId": 2,  
                    "fromDateTime": "2017-02-01T00:00:00-08:00",  
                    "toDateTime": "2017-03-01T00:00:00-08:00",  
                    "rate": 0.15994072,  
                    "qty": 251.000398,  
                    "cost": 40.14518529008  
                },  
                {  
                    "seriesId": 10,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "rate": 0.185403,  
                    "qty": 56225.50008,  
                    "cost": 10424.395081  
                },  
                {  
                    "seriesId": 11,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "rate": 0.363837,  
                    "qty": 79335.778203,  
                    "cost": 28865.31  
                },  
                {  
                    "seriesId": 12,  
                    "fromDateTime": "2017-01-01T00:00:00-08:00",  
                    "toDateTime": "2037-01-01T00:00:00-08:00",  
                    "rate": 0,  
                    "qty": 0,  
                    "cost": -1803.135081  
                }  
            ]  
        }  
    ]  
}  

Key response fields

  • summary for lifetime and first-year cost values.
  • scenarios[] to confirm which inputs were applied.
  • series[] for monthly, annual, and lifetime totals.
  • seriesData[] for individual interval data.

Consult the Savings Analysis documentation for details.

Example 2: Run a Savings Analysis with Typicals

If you don't have enough usage data or want to perform a quick analysis using typical baseline information, you can run a Savings Analysis with our typical usage and solar data, also known as a Quick Switch.

Use this request:

POST /rest/v1/accounts/analysis
{
    "providerAccountId": "YOUR_PROVIDER_ACCOUNT_ID",
    "fromDateTime": "2024-08-01T00:00:00+00:00",
    "propertyInputs": [
        {
            "keyName": "projectDuration",
            "dataType": "INTEGER",
            "dataValue": "20"
        },
        {
            "keyName": "baselineType",
            "dataType": "STRING",
            "dataValue": "typicalElectricity",
            "scenarios": "before,after"
        },
        {
            "keyName": "baselineType",
            "dataType": "STRING",
            "dataValue": "typicalSolarPv",
            "scenarios": "after,solar",
            "operator": "-"
        },
        {
            "keyName": "solarPvLoadOffset",
            "unit": "%",
            "dataValue": "80",
            "scenarios": "after,solar"
        },
        {
            "keyName": "rateInflation",
            "dataType": "DECIMAL",
            "dataValue": "1.9",
            "scenarios": "solar"
        },
        {
            "keyName": "rateInflation",
            "dataType": "DECIMAL",
            "dataValue": "3",
            "scenarios": "before,after"
        },
        {
            "keyName": "masterTariffId",
            "dataType": "INTEGER",
            "dataValue": "3154723",
            "scenarios": "before"
        }
    ],
    "rateInputs": [
        {
            "masterTariffRateId": null,
            "tariffBookSequenceNumber": null,
            "tariffBookRateGroupName": null,
            "tariffBookRateName": null,
            "fromDateTime": null,
            "toDateTime": null,
            "chargeType": "CONSUMPTION_BASED",
            "chargePeriod": "MONTHLY",
            "transactionType": "BUY",
            "rateBands": [
                {
                    "tariffRateBandId": null,
                    "tariffRateId": null,
                    "rateSequenceNumber": null,
                    "hasConsumptionLimit": null,
                    "hasDemandLimit": null,
                    "hasPropertyLimit": false,
                    "rateAmount": 0.15,
                    "rateUnit": null,
                    "isCredit": null,
                    "prevUpperLimit": null
                }
            ],
            "scenarios": "solar"
        }
    ]
}

Key inputs for a Savings Analysis with Typicals:

  • baselineType - Specifies which type of baseline to use in the analysis. Multiple baselines can be used across scenarios. In this example, typicalElectricity provides a typical residential usage curve, and typicalSolarPv provides a solar production curve that can be scaled with solarPvLoadOffset.
  • solarPvLoadOffset - Specifies an offset percentage for the solar production value to be calculated. It must be used with a baselineType of typicalSolarPv.
  • masterTariffId - This is optional. If you set the pre-solar tariff on the account or wish to use the default, you do not need to pass it here. If you want to use the default post-solar tariff, you do not need to set masterTariffId for the after scenario.
  • fromDateTime - The fromDateTime is the expected date of interconnection. By setting the date in the future, the most recent rates will be used in your savings calculation.
  • rateInflation - How much electricity rates rise each year, as a percentage. Here we're using different values for the utility costs (the before and after scenarios) than we do for the solar cost (solar).
  • rateInputs - Here we define the cost of solar energy. rateInputs accepts a simplified version of a tariff rate. You can have a chargeType of either FIXED_PRICE or CONSUMPTION_BASED (representing a lease/loan vs a PPA) and one rateBand with one rateAmount.

Summary

You've now completed every step in the tutorial. You've created an account, populated it with the customer's tariff and electricity bill data, and run a savings analysis to determine savings from your modeled solar system.