HomeGuidesAPI ReferenceChangelog
Log In
Guides

Use Intelligent Baselining

What is Intelligent Baselining?

Intelligent Baselining is a Switch product capability available in our various account calculators and usage profile APIs that allows you to a) fill in gaps in usage data and/or b) move usage data from one time period to another. All in an intelligent way (hence the name). More specifically, you can take historical usage data that you have gathered from bills and move that into a period of time that you don't have data for, such as the future. You can also construct a full year's worth or data from just 1 or more bills. This allows you to make forecasts and run what-ifs. It also enables better estimates from small samples of customer usage data. As such one popular use case for Intelligent Baseline is running savings calculations without having to obtain hourly meter data or even 12 months of bills from customers.

There are two main aspects to Intelligent Baselining: Interpolating hourly time-of-use usage from monthly readings, and extrapolating annual usage from less than 12 months of bills.

Interpolating Time-of-Use

With Intelligent Baselining off, our code will assume an even usage rate: a monthly bill reading is divided by the number of hours in the interval and each hour is assumed to have the same number of kWh. While this works well for most residential tariffs, residential time-of-use tariffs are becoming more popular. Intelligent Baselining uses our Typical Baselines to interpolate hourly use more realistically.

Extrapolating from less than 12 months of bills

Without Intelligent Baselining running a Savings Analysis requires a full year of usage coverage for the first year of the analysis. With Intelligent Baselining on, you can use as little as one monthly bill to estimate usage, and it can be for a time period outside of year one of your analysis. (Using two or more months of billing data if available will increase accuracy.) We use our Typical Baselines to fill in any gaps and to provide the seasonality that makes sense for that location (our Typical Baselines vary by Utility Climate Zone).

How to Enable Intelligent Baselining

There are two properties associated with baselining. The first, autoBaseline, switches on or off the ability to "move" usage data from one period to another. When this is true the second property, useIntelligentBaselining, give you control over how we interpolate and extrapolate, and is described in the next section.

So you use the autoBaseline property to enable or disable this feature. Below shows you how it defaults when not explicitly passed in:-

APIDefault ValueNotes
Savings AnalysistrueYou usually want to run a Savings Analysis with this feature on. Only when you explicitly want it off should you pass in this property.
Account Cost CalculationfalseUnlike Savings Analysis, this defaults to false (off), so explicitly switch it on.
Usage ProfilefalseWe also support IB when requesting usage data from a profile.

⚠️

Note that at this time IB is not a feature of our On Demand Cost Calculation nor our On Demand Mass Calculation endpoints. Read this How To for some suggestions on how to perform your own baselining when using these calculators.

The method of Intelligent Baselining by Default

The second property, useIntelligentBaselining, can be used to explicitly control which method (algorithm) we use to actually slice up and fill in usage data when autoBaseline is true. Set the useIntelligentBaselining property to true and we will intelligently interpolate and extrapolate usage into hourly intervals based on what is typical for the calcs circumstances. This is what you need to do if you have less than 12 months of usage data. Set useIntelligentBaselining to false and we will use a simple time-weighted proration approach to interpolate larger usage intervals. In this case, we do not extrapolate usage data, so you need at least 12 months of historical usage data in order for us to move it.

For more details of the actual logic we apply, please read our blog: Smarter Savings Forecasts with Intelligent Baselining.

Note also that the useIntelligentBaselining properties default can actually be set at an organization level. If you would like to change the default for a given appId, contact us and we can set a flag on our end that will cause all future requests that don't explicitly set useIntelligentBaselining to the value you want. You'll still be able to control whether Intelligent Baselining actually occurs on a given request by setting autoBaseline to false.

Maximizing the Accuracy of Intelligent Baselining

There are a few things you can do to make sure that you take the best advantage of the data you have.

  1. Enter the dates with as much precision as you can. If you have a "July bill", don't just enter "2015-07-01" and "2015-08-01" for the fromDateTime and the toDateTime. Most likely, the actual billing period is not the exact month; it might start on June 26th or July 8th, for example. Enter the correct billing dates.
  2. Some utilities, such as PG&E, represent billing periods differently than we do. This difference is captured in the Billing Period Representation object, which is returned when you obtain the LSE object with extended fields. Make sure that you take this difference into account when entering billing dates.
  3. Don't enter a value of zero for months that you don't know about and want us to extrapolate. For instance, if you have one bill from July 15th through August 15th, enter just that one bill. Do not enter bills for August 15th through September 15th, etc. with a value of zero kWh.
  4. Non-contiguous months work as long as you enter the dates correctly. If you have an April bill and a June bill, enter them both to increase the accuracy. (As above, just leave May and June out, don't enter them with values of zero.)
  5. If your customer is on a Time-of-Use (TOU) tariff, then their bill probably splits out usage into various peak and off-peak periods. Enter these (here's a [handy How to][how-to-tou]). Similarly, if the usage on the bill is split into 2 periods because a season or a version of the tariff changed, enter those too. IB will take it all into consideration.

📘

IB is primarily designed for taking the types of usage data you get from a bill or a web form. If you have hourly or 15 minute meter data, it will still work and can be useful for filling in blanks. However, if you do get meter data, try to get a years worth (and don't use IB); a full year of meter data will be a better estimate.

Was IB Used?

You can determine from the results of a Savings Analysis call whether Intelligent Baselining was used or not. If you ask for extended fields (by setting the top-level parameter "fields" to "ext"), you can examine the assumptions field of the Scenarios. The intelligentBaselining Assumption will be true if Intelligent Baselining was used, false if not. If the Assumption is not present, that means that Intelligent Baselining was not relevant (e.g. a full year of hourly data was available).

If Intelligent Baselining was used, an additional typicalBaseline Assumption is present; its value is a UUID string that identifies the baselineId of the Typical Baseline that was used in combination with your data.