HomeGuidesAPI ReferenceChangelog
Log In
Guides

Use Intelligent Baselining

Use Intelligent Baselining to interpolate hourly usage, extrapolate annual usage, and improve estimates from limited bill data.

Use Intelligent Baselining to interpolate hourly usage, extrapolate annual usage, and improve estimates from limited bill data.

What is Intelligent Baselining?

Intelligent Baselining is a Switch product capability available in account calculators and usage profile APIs. It lets you fill in gaps in usage data and move usage data from one time period to another. In this context, “move” means aligning usage from the dates you have to the dates required by the calculation, such as using historical bills to represent usage during a future savings analysis period.

You can also construct a full year's worth of data from one or more bills. This lets you make forecasts and run what-if calculations. It also enables better estimates from small samples of customer usage data. One popular use case for Intelligent Baselining is running savings calculations without obtaining hourly meter data or 12 months of bills from customers.

There are two main aspects to Intelligent Baselining:

  • Interpolating hourly usage from larger readings, such as daily or monthly readings.
  • Extrapolating an annual usage total from less than 12 full months of bills.

When to use Intelligent Baselining

Use Intelligent Baselining when:

  • You have fewer than 12 months of bills.
  • You have monthly or billing-period usage but need hourly usage.
  • You need to move historical usage into a future savings analysis period.
  • You want better estimates than flat hourly proration for a TOU tariff.

Avoid Intelligent Baselining when:

  • You have a full year of high-quality hourly or 15-minute meter data.
  • You need an exact reconstruction of historical meter behavior.

Minimum data requirements

  • With autoBaseline=true and useIntelligentBaselining=true, you can use as little as one monthly bill.
  • Accuracy improves as more known bill data is supplied.
  • With autoBaseline=true and useIntelligentBaselining=false, you must provide at least 12 full months (1 year) of data.
  • If you have a full year of interval data, use that data directly instead of using Intelligent Baselining. Real-world meter data is more accurate than modeled assumptions.

Interpolate 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 data to interpolate hourly use more realistically.

Extrapolate 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. Typical Baselines vary by Utility Climate Zone.

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, gives you control over how we interpolate and extrapolate, and is described in the next section.

autoBaselineuseIntelligentBaseliningBehavior
falseAny valueDoes not move usage data between periods.
truetrueInterpolates and extrapolates usage using Typical Baselines. Use this for fewer than 12 months of usage.
truefalseUses simple time-weighted proration. Does not extrapolate, so you need at least 12 months of usage.

Use the autoBaseline property to enable or disable this feature. The table below shows how it defaults when not explicitly passed in:

useIntelligentBaselining only affects behavior when autoBaseline is true.

APIDefault ValueNotes
Savings AnalysistrueSavings Analysis usually uses this feature. Pass autoBaseline=false only when you explicitly want it off.
Account Cost CalculationfalseAccount Cost Calculation defaults to off, so explicitly switch it on when you need Intelligent Baselining.
Usage ProfilefalseUsage Profile requests can also use Intelligent Baselining when requesting usage data from a profile.

Intelligent Baselining is not currently a feature of the On Demand Cost Calculation or On Demand Mass Calculation endpoints. Read Estimate Consumption from a Bill for suggestions on how to perform your own baselining when using these calculators.

Choose the Intelligent Baselining method

The second property, useIntelligentBaselining, explicitly controls which method, or algorithm, we use to slice up and fill in usage data when autoBaseline is true. Set useIntelligentBaselining to true and we will intelligently interpolate and extrapolate usage into hourly intervals based on what is typical for the calculation 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 for us to move it.

For conceptual background about the logic we apply, read Smarter Savings Forecasts with Intelligent Baselining.

The useIntelligentBaselining property default can also 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 causes all future requests that don't explicitly set useIntelligentBaselining to use the value you want. You'll still be able to control whether Intelligent Baselining occurs on a given request by setting autoBaseline to false.

Maximize Intelligent Baselining accuracy

Follow these practices to get the best results from 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.

    Note that Arcadia always treats the toDateTime value as exclusive. For example, a range from 2015-07-01T00:00:00 to 2015-08-01T00:00:00 includes usage starting at July 1 midnight and excludes usage at or after August 1 midnight, using the tariff time zone of the invoked MTID.

  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, leave May out instead of entering it with a value 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. Take a look at our TOU example. Similarly, if the usage on the bill is split into two periods because a season or a version of the tariff changed, enter those too. Intelligent Baselining will take it all into consideration.

Intelligent Baselining is primarily designed for 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 can get meter data, try to get a year's worth and don't use Intelligent Baselining; a full year of meter data will be a better estimate.

Check whether Intelligent Baselining was used

You can determine from the results of a Savings Analysis call whether Intelligent Baselining was used or not. To inspect these assumptions, include "fields": "ext" in the Savings Analysis request. You can then 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.

Next steps