Use this request template to run a Full Switch Savings Analysis with user-supplied usage and solar profiles.
Use this request template to run a Full Switch Savings Analysis with user-supplied usage and solar profiles.
For the full Savings Analysis request and response model, see Savings Analysis. To compare templates, see Savings Analysis Request Templates. For the full analysis workflow, see Analysis APIs.
What is a Full Switch?
A Full Switch is a Savings Analysis that uses custom profile data. Use Profiles to create usage and solar profiles with real-world data, then supply those profiles as inputs in a Savings Analysis request.
Full Switch vs. Quick Switch
A Full Switch uses user-supplied profiles, such as real-world hourly usage and solar production data. A Quick Switch uses Arcadia Typical Baseline data as an approximation when real-world profile data is unavailable.
Using a custom user-supplied profile in a Savings Analysis request triggers a Full Switch flow.
Full Switch template
{
"accountId": "4c6176b3-46c2-47d2-829f-5b8f842aa9ae",
"fromDateTime": "2025-10-01",
"useIntelligentBaselining": false,
"propertyInputs": [
{
"keyName": "profileId",
"dataValue": "676065b0fead7732016d4f85",
"scenarios": "before,after"
},
{
"keyName": "profileId",
"dataValue": "676065d859a56939848a15b7",
"scenarios": "after,solar",
"operator": "-"
},
{
"keyName": "rateInflation",
"dataType": "DECIMAL",
"dataValue": "1.9",
"scenarios": "solar"
},
{
"keyName": "rateInflation",
"dataType": "DECIMAL",
"dataValue": "3",
"scenarios": "before,after"
},
{
"keyName": "masterTariffId",
"displayName": "Residential",
"dataType": "INTEGER",
"dataValue": "522",
"scenarios": "before"
},
{
"keyName": "lseId",
"displayName": "Pacific Gas & Electric Co",
"dataType": "INTEGER",
"dataValue": "734",
"scenarios": "before"
},
{
"keyName": "tariffCode",
"displayName": "E-1",
"dataType": "STRING",
"dataValue": "E-1",
"scenarios": "before"
},
{
"keyName": "territoryId",
"dataValue": "3538"
}
],
"rateInputs": [
{
"chargeType": "CONSUMPTION_BASED",
"chargePeriod": "MONTHLY",
"transactionType": "BUY",
"rateBands": [
{
"rateAmount": 0.15
}
],
"scenarios": "solar"
}
]
}How to interpret the template
The request starts with top-level fields that identify the account and analysis start time.
- Use
accountIdorproviderAccountIdto identify the account. - Use
fromDateTimeto set the analysis start time. - Set
useIntelligentBaseliningtofalsewhen supplying full-year hourly profile data that does not need interpolation or extrapolation.
propertyInputs list
propertyInputs listThe propertyInputs list contains key/value objects that affect the calculation. These inputs can reference profile data, such as "keyName": "profileId", or account and tariff criteria, such as "keyName": "territoryId".
Review Properties API to understand available property keys and metadata. For guidance on using properties to improve savings analysis accuracy, see Improve calculation accuracy with rate criteria properties.
Because this is a Full Switch, the request defines usage or consumption data and solar production data with profile identifiers. This annotated fragment shows how those profile inputs work:
// This property references the profile that contains base consumption data.
// Because base consumption is used before and after solar, set scenarios to "before,after".
{
"keyName": "profileId",
"dataValue": "676065b0fead7732016d4f85",
"scenarios": "before,after"
}
// This property references the profile that contains solar production data.
// Use "after,solar" so solar production offsets utility consumption and is included in solar cost modeling.
{
"keyName": "profileId",
"dataValue": "676065d859a56939848a15b7",
"scenarios": "after,solar",
// Solar production offsets consumption, so apply the "-" operator.
"operator": "-"
}
// These examples use `profileId`. If you create profiles with `providerProfileId`, use `providerProfileId` as the `keyName` and pass the matching identifier as `dataValue`.You can use Intelligent Baselining when working with less granular data. This template illustrates the case where profile data is provided in 8,760-hour format. Because this data does not need interpolation or extrapolation, the request sets "useIntelligentBaselining": false.
rateInputs list
rateInputs listThe rateInputs list contains custom rates or adjustments for the calculation. In this template, the request models a PPA at a $0.15/kWh rate.
You can also include supplemental items that may not be captured by tariff models, such as local or state taxes. For more detail, see User-adjusted rates, Contracted rates in deregulated markets, and Handle taxes.
Next steps
- Return to Savings Analysis Request Templates to compare Quick Switch, Full Switch, and Storage-in-Switch.
- Use Profiles API to create or retrieve the usage and solar profiles referenced by this template.
- Use Savings Analysis Request Structure to adapt the template to your own
propertyInputs.
