HomeGuidesAPI ReferenceChangelog
Log In
Guides

Advanced Tariff Filtering

Filter tariff results by eligibility, rate characteristics, and enrollment status when a customer has multiple possible tariff options.

Filter tariff results by eligibility, rate characteristics, and enrollment status when a customer has multiple possible tariff options.

Some markets, such as California, have many tariffs to choose from. Use advanced filtering when the default tariff list is too broad or when customers need to meet additional tariff eligibility requirements.

If you need the standard utility and tariff selection workflow first, see Select the Right Utility and Tariff.

Use advanced filters when you need to:

  • Show only tariffs a customer is eligible to enroll in.
  • Find tariffs with specific rate structures, such as time-of-use (TOU), tiered rates, or net metering.
  • Hide tariffs that are closed to new enrollment.
  • Support customer-specific scenarios, such as solar or electric vehicle eligibility.

Filter tariffs with additional eligibility requirements

Some utilities require customers to switch to a different tariff when they move to solar or have tariffs that are only open to customers with an electric vehicle. Arcadia captures these additional eligibility criteria in the tariff properties collection, specifically in properties with a propertyType of APPLICABILITY.

Provide these three arguments when using the Account Tariff endpoint to filter by eligibility:

  1. populateProperties=true - Ensures the data needed to filter is considered.
  2. filterByApplicability=true - Applies a rule that results should also be filtered by applicability, meaning additional eligibility properties.
  3. applicabilityFilters[solarPvEligible]=true - Specifies the applicability criteria to filter by.

For example, the following request filters available account tariffs to those where the customer is solar eligible:

GET /rest/v1/accounts/pid/{providerAccountId}/tariffs?populateProperties=true&filterByApplicability=true&applicabilityFilters[solarPvEligible]=true

For an electric vehicle (EV) case, supply the parameter hasElectricVehicle=true instead of solarPvEligible=true.

When paginating through results with applicability filters applied, the count value in the response may not accurately reflect the number of matching filtered results. Continue requesting subsequent pages until a response returns fewer than pageSize results, which may include zero results. This indicates that all applicable results have been retrieved and there are no more pages to request.

Filter tariffs based on rate characteristics

Occasionally, you might want to retrieve a list of tariffs that include rates with a specific characteristic, such as rates that vary by time-of-use (TOU). You can filter on the following explicit parameters:

NameTypeDescription
hasNetMeteringBooleanReturn tariffs that have or do not have net-metered tariff rates.
hasTimeOfUseRatesBooleanReturn tariffs that have or do not have time-of-use rates.
hasTieredRatesBooleanReturn tariffs that have or do not have tiered rates.
hasContractedRatesBooleanReturn tariffs that have or do not have contracted rates.

For example, the following request returns available account tariffs that have TOU rates:

GET /rest/v1/accounts/pid/{providerAccountId}/tariffs?hasTimeOfUseRates=true

Use the same pattern for other rate characteristics:

GET /rest/v1/accounts/pid/{providerAccountId}/tariffs?hasNetMetering=true
GET /rest/v1/accounts/pid/{providerAccountId}/tariffs?hasTieredRates=true
GET /rest/v1/accounts/pid/{providerAccountId}/tariffs?hasContractedRates=true

To exclude tariffs with a characteristic, set the parameter to false:

GET /rest/v1/accounts/pid/{providerAccountId}/tariffs?hasTimeOfUseRates=false

Filter out tariffs that are closed to new enrollment

Sometimes utilities retire tariff rate plans. These retired tariff rate plans are flagged with the date they closed.

If you are presenting a list of tariffs that customers could change to, you’ll typically want to remove all closed tariffs. To accomplish this:

  • Pass in a date value to the openOn property, which will usually be the same date used for the effectiveOn property.
  • Don’t filter on this property if your use case is to select or choose the existing tariff a customer is on, as they might be grandfathered into a closed tariff.

For example, the following request returns tariffs that are effective and open to new enrollment on January 1, 2024:

GET /rest/v1/accounts/pid/{providerAccountId}/tariffs?effectiveOn=2024-01-01&openOn=2024-01-01

Use effectiveOn to control which tariff version is effective for the date. Use openOn to remove tariffs that are closed to new enrollment by that date.

Next steps