HomeGuidesAPI ReferenceChangelog
Log In
Guides

Step 5 - Run a Full Switch Savings Analysis

This is the fun step! Now you're ready to estimate savings.

Savings Analysis

The Savings Analysis endpoint is used to calculate 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 tell you how much your customer's electricity bill will be reduced by ("avoided cost"), how expensive your solar power will be over the life of the system (PPA or lease cost), and any number of other things, depending on how you configure the calculation.

To do a savings analysis, you pass in the usage profiles that you want to use to do the calculation, PPA rates, cost escalation assumptions, and other important parameters. It returns the complete results of the scenarios that you specify over the life of the project.

In a Savings Analysis request, there are three series: one for each of the without solar ("before"), solar itself ("solar"), and with solar ("after") scenarios. The first series contains the monthly results for the first year of the analysis, the second one contains annual results for the entire analysis period, and the third one has the total for the entire analysis period.


Example 1: Running a Savings Analysis with Your Usage and Solar Profiles

Here's an example of a request that contains the most common inputs for a Savings Analysis. It includes a solar lease, the tariff, and a solar profile.

POST /rest/v1/accounts/analysis
{  
  "providerAccountId" : "gdn-fst-eg-01",  
  "fromDateTime" : "2017-01-01",  
  "propertyInputs" : [ {  
    "scenarios" : "before,after",  
    "keyName" : "providerProfileId",  
    "dataValue" : "gdn-fst-eg-01-bills",  
    "dataFactor" : 1  
  }, {  
    "scenarios" : "after,solar",  
    "keyName" : "providerProfileId",  
    "dataValue" : "gdn-fst-eg-01-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  
    } ]  
  } ]  
}  


Let's take a quick look at each input to find out what it does.

  • scenarios - On each input, you'll see a scenarios property that is populated with before, after, solar, or some combination of the three. You use this input to tell Savings Analysis which portion of the analysis that input should be applied to: before solar, after solar, or the solar itself. In this request, for example, we've specified a masterTariffId property for the after scenario. This means that we want our customers to switch tariffs after going solar. In this case, we have them switching from RES-1, which we set up earlier, to RES-6, SCP's residential time-of-use tariff.
  • providerProfileId - We use this input to specify which profile(s) we want to use in each scenario. Here, we're using example_account_electricity_profile for both the before and after scenarios. This means that we do not expect our customer's baseline usage to change after going solar. If that was not the case -- for example, we're also implementing energy efficiency -- we could use a different providerProfileId for the after scenario. We also specify example_solar_profile for the after and solar scenarios. There's a good reason to have it in both: in the after scenario, our solar profile gets subtracted from our electricity profile in order to calculate post-solar cost. In the solar scenario, it's used to calculate the cost of solar energy.
  • masterTariffId - As described above, we have our customer switching from RES-1 to RES-6 in this Savings Analysis. That tariff change is represented by having the masterTariffId property in the after scenario. What about the before scenario? We don't need a separate input for that; the Savings Analysis API is smart enough to look at the account, see what its current tariff is, and use that in the analysis. If you wanted, you could specify a different tariff for the before scenario, but we leave it out here.
  • 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) then we do for the solar cost (solar).
  • solarDegradation - How much estimated solar production should be reduced each year, as a percentage. We need this in both the after and solar scenarios because it will affect the post-solar utility costs and solar costs separately.
  • rateInputs - Here we define the cost of solar energy. rateInputs accepts a simplified version of a [TariffRate][tariff-rate-api-ref]. 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.

Intelligent Baselining

Now that we understand all of the inputs, we can actually do the analysis. Unfortunately, when we run the request we get an 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"  
        }  
    ]  
}  

What happened?

Because electricity usage and charges vary from month to month, we need data for the whole year to get an accurate picture of savings from solar.

But what if you don't have a year's worth of data? In our profile, for example, we only had three months of usage data. If that's the case, Arcadia's API still has you covered.

Since we only have three bills from our prospective customer, we can still do a savings analysis by turning on Intelligent Baselining. Intelligent Baselining can extrapolate a full year of data from as little as one electricity bill.

To use intelligent baselining, just repeat the above API call with the following property added to it: "useIntelligentBaselining": true.

The new result should look like this:

{  
    "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": "3.0 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": "3.0 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  
                },  
              <!-- we have removed some series data entries to keep the page shorter -->  
                {  
                    "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  
                }  
            ]  
        }  
    ]  
}  

The above example is a very basic savings analysis: it specifies an account and a solar profile and then sets a new post-solar tariff. There's a lot more that you can do with this endpoint, though. Savings analysis provides a lot of flexibility, which allows you to set up complex pre- and post-solar parameters when the situation calls for it. Consult the Savings Analysis documentation for details.


Example 2: Running 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.

Here is an example of this:

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"
        }
    ]
}

Let's take a quick look at the important inputs for a Savings Analysis with Typicals.

  • baselineType - Is used to specify which type of baseline you would like to use in your analysis. Multiple baselines can be used in a single analysis for the various scenarios. In our example we've pulled in typicalElectricity which is a typical residential usage curve and typicalSolarPv which represents a solar production curve that can be scaled up or down by using solarPvLoadOffset.
  • solarPvLoadOffset - You can use this input to specify an offset percentage for the solar production value to be calculated. It must be used in conjunction with 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 also do not need to set this for the after, solar scenarios either.
  • 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) then we do for the solar cost (solar).
  • solarDegradation - How much estimated solar production should be reduced each year, as a percentage. We need this in both the after and solar scenarios because it will affect the post-solar utility costs and solar costs separately.
  • rateInputs - Here we define the cost of solar energy. rateInputs accepts a simplified version of a [TariffRate][tariff-rate-api-ref]. 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

That's it! 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 ran a savings analysis to determine savings from your modeled solar system.