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 ascenarios
property that is populated withbefore
,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 thesolar
itself. In this request, for example, we've specified amasterTariffId
property for theafter
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 usingexample_account_electricity_profile
for both thebefore
andafter
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 differentproviderProfileId
for theafter
scenario. We also specifyexample_solar_profile
for theafter
andsolar
scenarios. There's a good reason to have it in both: in theafter
scenario, our solar profile gets subtracted from our electricity profile in order to calculate post-solar cost. In thesolar
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 themasterTariffId
property in theafter
scenario. What about thebefore
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 thebefore
scenario, but we leave it out here.fromDateTime
- ThefromDateTime
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 (thebefore
andafter
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 theafter
andsolar
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 achargeType
of eitherFIXED_PRICE
orCONSUMPTION_BASED
(representing a lease/loan vs a PPA) and onerateBand
with onerateAmount
.
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 intypicalElectricity
which is a typical residential usage curve andtypicalSolarPv
which represents a solar production curve that can be scaled up or down by usingsolarPvLoadOffset
.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 theafter, solar
scenarios either.fromDateTime
- ThefromDateTime
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 (thebefore
andafter
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 theafter
andsolar
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 achargeType
of eitherFIXED_PRICE
orCONSUMPTION_BASED
(representing a lease/loan vs a PPA) and onerateBand
with onerateAmount
.
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.
Updated 4 months ago