Savings Analysis Tips & Tricks
Savings Analysis
The Savings Analysis endpoint is the recommended place to go when you want to figure out how much money your residential customer can save by installing rooftop solar, 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. We have a great tutorial that defines the end-to-end steps you should follow. Read that before you continue here. Once you are familiar, this page dives into some of the details of how to get more out of your Savings Analysis call.
Running a Savings Analysis
Let's start with a common example of running a Savings Analysis to get our feet wet. For this example, your account would already have electricity usage and a solar model. You pass in the usage and solar profiles, PPA rate, cost escalation assumptions, and other important parameters you want to use for the calculation. Savings Analysis returns the complete results of the scenarios that you specify over the life of the project. Specifically, it returns a number of data series, each of which contains your cost and savings numbers for the corresponding scenario. By default, there are two series for each of these scenarios: without solar ("before"), solar itself ("solar"), and with solar ("after"). The first set of series contains monthly results for the first year of the analysis, while the second set of series contains annual results for the entire analysis period.
Here's an example of a request. It includes load and solar profiles, a post-solar tariff, a solar lease, and utility and solar cost escalators.
{
"providerAccountId" : "example_account",
"fromDateTime" : "2018-01-01",
"propertyInputs" : [
{
"scenarios" : "before,after",
"keyName" : "providerProfileId",
"dataValue" : "load_profile"
},
{
"scenarios" : "after,solar",
"keyName" : "providerProfileId",
"dataValue" : "solar_profile"
},
{
"scenarios" : "after",
"keyName" : "masterTariffId",
"dataValue" : "518"
},
{
"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
}]
}]
}
Switching Tariffs After Going Solar
Set the masterTariffId
property on the after
scenario:
{
"scenarios" : "after",
"keyName" : "masterTariffId",
"dataValue" : "518"
}
Model Different System Sizes Efficiently
Sometimes you want to know what will happen if your PV system is half (or twice) the size that it is now. With the dataFactor
parameter, you can do this without having to create an entirely new solar profile:
{
"scenarios" : "after,solar",
"keyName" : "providerProfileId",
"dataValue" : "{providerProfileId}",
"dataFactor" "0.5"
}
This also works for consumption profiles.
Set A Solar Lease or PPA Price
Add an item to the rateInputs
array set its scenario to solar
, and set the charge type to FIXED_PRICE
for a lease or CONSUMPTION_BASED
for a PPA:
"rateInputs" : \[ {
"scenarios" : "solar",
"chargeType" : "FIXED_PRICE",
"rateBands" : [ {
"rateAmount" : 137.05
} ]
} ]
This example would set your first-year lease rate to $137.05 per month. These inputs are structured just like TariffRates.
Extend the Duration of the Projection
The default duration of a savings analysis is 20 years. For some customers, you may want to go longer -- 25 years, for example. To do that, you can use the projectDuration
property input parameter.
{
"scenarios" : "before,solar,after",
"keyName" : "projectDuration",
"dataValue" : "25"
}
Run an Accurate Analysis with Annual Usage or Cost
It can often be difficult to get detailed usage data from a potential solar customer. Most of the time, this means that you have to do what you can with limited data. The savings analysis endpoint helps you here by giving you a simple way to do a detailed calculation if you only have one number: the customer's annual energy consumption. If you instead know your customer's annual electric cost, you can turn that cost into consumption with a simple Annual Bill Solve Request, and then run a saving analysis against the resulting annual kWh.
Here's a bare-bones example:
{
"providerAccountId" : "api-eg-01",
"fromDateTime" : "2014-09-01",
"propertyInputs" : [ {
"scenarios" : "before,after",
"keyName" : "baselineType",
"dataValue" : "typicalElectricity"
}, {
"scenarios" : "before,after",
"keyName" : "loadSize",
"dataValue" : "5000",
"unit":"kWh"
} ]
}
The two input parameters that we use are baselineType
and loadSize
. baselineType
tells the API that you want to use our database of hourly Typicals to do your analysis. It will automatically choose an appropriate load profile based on your account's location, customer type, and building type. loadSize
tells the API how much energy your customer is using in a year. In this case, they're using 5,000 kWh. The typical profile is scaled up or down to meet the target load.
Run an Analysis with Limited Customer Usage
Do you need to run a Solar Savings Analysis but have incomplete usage data for your customer? Arcadia's APIs and tools can fill gaps in customer usage data. Building on the previous example, below are the most common usage scenarios we’ve come across along with our suggested approaches in Savings Analysis.
Usage Scenario | Solution | Summary of API Steps |
---|---|---|
No data | Use a typical load profile for your customer’s location. | - Create account with customer’s zip code - Include SA parameter: {"scenarios" : "before,after", "keyName" : "baselineType", "dataValue" : "typicalElectricity", "dataFactor" : "1""} - Optionally scale typical up/down using dataFactor |
Annual Usage | Use a typical load profile scaled to your customer’s annual usage. | - Create account with customer’s zip code - Include SA parameters: {"scenarios" : "before,after", "keyName" : "baselineType", "dataValue" : "typicalElectricity", {"scenarios" : "before,after", "keyName" : "loadSize", "dataValue" : "12000"", "unit" : "kWh"} |
Monthly Usage | Use Intelligent Baselining (aka IB) to extrapolate one or more months of usage to rest of year and interpolate to hourly. | - Create account with customer’s zip code - Create profile with 1 or more months of usage - Include top level SA parameter: {"providerAccountId" : "api-eg-01", "fromDateTime" : "2018-01-01", "useIntelligentBaselining" : "true", - Use IB is true by default |
Annual Bill | Use Bill Solve to turn annual cost to usage, then scale typical load profile to annual usage. | - Create account with customer’s zip code and tariff - Run Annual Bill Solve (input: annual cost, output: annual usage) - Include SA parameters: {"scenarios" : "before,after", "keyName" : "baselineType", "dataValue" : "typicalElectricity", {"scenarios" : "before,after", "keyName" : "loadSize", "dataValue" : "usage_from_bill_solve"", "unit" : "kWh"} - Alternatively, but less accurately, create a profile on account with annual usage output from Bill Solve and include the profile id in your SA call. |
Monthly Bill | Use Bill Solve to turn monthly cost to usage, then use Intelligent Baselining to extrapolate one or more months of usage to rest of year and interpolate to hourly. | - Create account with customer’s zip code and tariff - Run Monthly Bill Solve for each bill (input: monthly cost, output: monthly usage) - Create profile with 1 or more months of usage from Bill Solve - Include top level SA parameter: "useIntelligentBaselining" : "true" - Use IB is true by default |
Hourly Usage | Use Intelligent Baselining to align your customer’s past hourly usage with future Savings Analysis dates. This aligns weekdays and weekends in past usage with a future analysis year and may result in small differences from the actual load profile. | - Create profile with customer’s past hourly usage - Include top-level SA parameter: "autoBaseline" : "true" - Alternatively, run an SA on non-IB’d past hourly usage with the latest tariff rates using: "autoBaseline" : "false" "tariffEffectiveOn" : “YYYY-MM-DD” |
Further Reading
The Savings Analysis endpoint 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.
Updated 6 months ago