HomeGuidesAPI ReferenceChangelog
Log In
Guides

Handle Taxes

Arcadia does not collect local utility tax rates but we do make them easy to incorporate these taxes into your calculations. Before we discuss how to incorporate taxes in the Arcadia Switch API, here are some important things to understand about taxes on utility bills.

Utility Tax is not Sales Tax

It is important to not equate the sales tax that is applied to the customer’s purchase price (solar system, battery, etc.) to the utility tax that is applied to their utility bill. In the overwhelming majority of cases, utility taxes are a separate tax rate that applies only to utility bills.

Utility Tax rates are not Filed with Utility Commissions

Unlike tariff rates that must be filed with the state utility commission, jurisdictions are not required to publish their utility rates or tax exemption rules. The good news is there is a good site that lists the UUT rates within California. As you will note, not every municipality within California applies a Utility Users Tax.

Overlapping Jurisdictions

Depending on the customer’s location, there are multiple jurisdictions that may apply utility taxes: State, County, City, School District, Irrigation District, Special Economic Zone, etc. We allow you to set multiple tax rates on a single account to account for multiple jurisdictions for this case.

Tax Exemptions/Reductions

For each jurisdiction that applies a utility tax, there is a chance that specific customer or customer types may be eligible for tax exemptions or reductions. In our work with one utility in California, we discovered that 60% of customers in one city qualified as exempt from the posted UUT rate.

Is Tax Applied to Every Rate

In our experience across thousands of bills, there are rare cases where the tax rate only applies to only a portion of the bill. When this has been identified, we flag that portion of the rate as “AFTER_TAX” so that the taxes are applied prior to the inclusion of those charges in the total.

There is only one 100% Accurate Source for Taxes -- A Customer Bill

As a rule when including taxes in your calculations, we recommend capturing the tax rate whenever the end user is most likely to have a utility bill to reference. Unlike electricity tariffs which are well-defined by the utility and approved by the utility commission, tax rates are the function of any number of jurisdictions and are not always applied as defined.

Passing Tax Rates into a Calculation

To perform a calculation with a tax rate, pass your tax rate(s) as a rate input using the chargeType set to "TAX". Tax rates are calculated using the subtotal from the calculated amount. Either a rate percentage or a specific rate dollar amount can be used. Optionally, you can set the rateName and rateGroup so the returned cost items can be broken out.

Here is a sample request for the Account Cost Calculator:

POST /rest/v1/accounts/pid/{providerAccountId}/calculate/
{  
   "fromDateTime": "2016-06-15T00:00:00-07:00",  
   "toDateTime": "2016-07-15T00:00:00-07:00",  
   "billingPeriod": true,  
   "propertyInputs":[  
    {  
         "keyName":"consumption",  
         "dataValue":1000  
    }],  
   "rateInputs":\[  
    {  
         "rateGroupName":"Taxes",  
         "rateName":"Utility Users Tax",  
         "chargeType":"TAX",  
         "rateBands":[  
            {  
               "rateAmount": 0.075,  
               "rateUnit":"PERCENTAGE"  
            }]  
    }]  
}  

Here is a snippet of the response where the item quantity reflects the subtotal amount:

{  
  "tariffRateId": 0,  
  "rateSequenceNumber": 10000,  
  "rateGroupName": "Taxes",  
  "rateName": "Utility User's Tax",  
  "fromDateTime": "2016-06-15T00:00:00-07:00",  
  "toDateTime": "2016-07-15T00:00:00-07:00",  
  "quantityKey": "percentage",  
  "rateType": "PERCENTAGE",  
  "rateAmount": 0.075,  
  "itemQuantity": 243.92856,  
  "cost": 18.294642,  
  "chargeType": "TAX"  
}  

You can also pass the absolute value of the TAX amount in place of the percentage by using "COST_PER_UNIT" as the "rateUnit".

{  
   "fromDateTime": "2016-06-15T00:00:00-07:00",  
   "toDateTime": "2016-07-15T00:00:00-07:00",  
   "billingPeriod": true,  
   "propertyInputs":[  
    {  
         "keyName":"consumption",  
         "dataValue":1000  
    }],  
   "rateInputs":\[  
    {  
         "rateGroupName":"Taxes",  
         "rateName":"Utility Users Tax",  
         "chargeType":"TAX",  
         "rateBands":[  
            {  
               "rateAmount": 18.29,  
               "rateUnit":"COST_PER_UNIT"  
            }]  
    }]  
}  

In the response, the item quantity reflects the subtotal amount and the rate amount will be the percentage computed based on the absolute tax amount passed in the call.

{  
  "tariffRateId": 0,  
  "rateSequenceNumber": 10000,  
  "rateGroupName": "Taxes",  
  "rateName": "Utility User's Tax",  
  "fromDateTime": "2016-06-15T00:00:00-07:00",  
  "toDateTime": "2016-07-15T00:00:00-07:00",  
  "quantityKey": "percentage",  
  "rateType": "PERCENTAGE",  
  "rateAmount": 0.075,  
  "itemQuantity": 243.92856,  
  "cost": 18.29,  
  "chargeType": "TAX"  
}  

Setting Tax Rates on an Account

You will likely want to set the tax rate on the account for use in subsequent calculations such as Account Cost Calculation or Savings Analysis.

Here is an example:

PUT /rest/v1/accounts/pid/{providerAccountId}/tariffs

... or if using our Arcadia Account ID ...

PUT /rest/v1/accounts/{accountId}/tariffs

Either of the above should have something like this in the request body:

{  
   "masterTariffId":"522",  
   "serviceType":"ELECTRICITY",  
   "rates":\[  
      {  
         "chargeType":"TAX",  
         "rateName":"Utility User's Tax",  
         "rateBands":[  
            {  
               "rateAmount":0.075,  
               "rateUnit":"PERCENTAGE"  
            }  
         ]  
      }  
   ]  
}  

Thats it! Whenever you run a Account Cost Calculation or Savings Analysis from now on it will include the customer's tax rate in costs and savings.