HomeGuidesAPI ReferenceChangelog
Log In
API Reference

Many utilities (LSEs) charge different tariff rates depending on the time of year. A utility might charge 8.5¢ during summer, and 7¢ in winter, for instance. Utilities have their own definition of when these times of year start and end. For example, one utility might define "Summer" as starting on 4/1 and "Winter" on 9/15, whereas another says "Summer" starts on 6/15 but also defines different rates for "Spring" and "Fall" too. Arcadia has a data-driven way of defining these periods, called Seasons (as they usually, but not always, have names resembling seasons of the year). A Season belongs to a utility (LSE), and one or more Seasons are organized into a Season Group, where together they span a full calendar year.

Seasons can start on a fixed date, which is defined by the combination of the seasonStartMonth and seasonStartDay properties. Similarly the seasonEndMonth and seasonEndDay properties define the end date. However, in some cases, the start date or the end date of the Season is not fixed but is dynamically overridden by either the start date or end date of the billing period that it occurs in. This behavior is recorded by the Season's optional fromEdgePredominance and toEdgePredominance properties. When populated they can be set to PREDOMINANT, which tells you that this date should move to the start of the bill or SUBSERVIENT, which means it moves to the end of the bill.

As an example, consider a utility customer who gets their March 5th to April 4th bill. This utility defines their "summer" Season as starting at the beginning of the bill that includes March 15th. And to be consistent their "winter" season also ends at the start of the bill that includes March 15th. The customer would pay "summer" rates for the entire billing period, and no "winter" rates, because the "summer" start date and "winter" end date would both be dynamically overridden to March 5th.

Data Definitions

Season

The Season object has the following data structure.

NameTypeFieldsDescription
seasonIdLong Unique Arcadia ID (primary key) for each season
lseIdLong The ID of the LSE this territory belongs to
seasonGroupIdLong The ID of the season group that contains this season
seasonNameString The name of the season (i.e. "Summer" or "Winter")
seasonFromMonthInteger Value of 1-12 representing the month this season begins
seasonFromDayInteger Value of 1-31 (depending on month) representing the day this season begins
fromEdgePredominanceStringECan be null (from date is a fixed date), PREDOMINANT (from date is the start of the bill the season starts in), or SUBSERVIENT (from date is the end of the bill the season starts in).
seasonToMonthInteger Value of 1-12 representing the month this season ends
seasonToDayInteger Value of 1-31 (depending on month) representing the day this season ends
toEdgePredominanceStringECan be null (to date is a fixed date), PREDOMINANT (to date is the start of the bill the season starts ends in), or SUBSERVIENT (to date is the end of the bill the season starts in).

Season Group

The SeasonGroup object has the following data structure.

NameTypeDescription
seasonGroupIdLongUnique Arcadia ID (primary key) for each season group
seasonsList of SeasonA List of the Seasons within this Season Group

Here's an example in JSON of one season group populated with two seasons that start and end on fixed dates:

{
   "status":"success",
   "count":1,
   "type":"SeasonGroup",
   "results":[
      {
         "seasonGroupId":1,
         "seasons":[
            {
               "seasonId":3,
               "seasonGroupId":1,
               "lseId":1,
               "seasonName":"Winter",
               "seasonFromMonth":10,
               "seasonFromDay":1,
               "fromEdgePredominance":null,
               "seasonToDay":31,
               "seasonToMonth":5,
               "toEdgePredominance":null
            },
            {
               "seasonId":4,
               "seasonGroupId":1,
               "lseId":1,
               "seasonName":"Summer",
               "seasonFromMonth":6,
               "seasonFromDay":1,
               "fromEdgePredominance":null,
               "seasonToDay":30,
               "seasonToMonth":9,
               "toEdgePredominance":null
            }
         ]
      }
   ]
}

Get a List of Season Groups for an LSE

This returns a list of season groups for a given LSE. The result set is a list of season group objects in the standard response format.

Resource URI

GET /rest/public/seasons

Request Parameters

Along with the standard pagination parameterssearching and sorting parameters, and the required security parameters, the following parameters are available as part of the request:

NameTypeDescription
lseIdLongThe LSE ID who's seasons we want. (Required)

Example

GET /rest/public/seasons?lseId=734

{
   "status":"success",
   "count":1,
   "type":"SeasonGroup",
   "results":[
      {
         "seasonGroupId":1,
         "seasons":[
            {
               "seasonId":3,
               "seasonGroupId":1,
               "lseId":1,
               "seasonName":"Winter",
               "seasonFromMonth":10,
               "seasonFromDay":1,
               "fromEdgePredominance":"SUBSERVIENT",
               "seasonToDay":31,
               "seasonToMonth":5,
               "toEdgePredominance":"SUBSERVIENT"
            },
            {
               "seasonId":4,
               "seasonGroupId":1,
               "lseId":1,
               "seasonName":"Summer",
               "seasonFromMonth":6,
               "seasonFromDay":1,
               "fromEdgePredominance":"PREDOMINANT",
               "seasonToDay":30,
               "seasonToMonth":9,
               "toEdgePredominance":"PREDOMINANT"
            }
         ]
      }
   ]
}

Example

GET /rest/public/seasons?lseId=734

{
   "status":"success",
   "count":1,
   "type":"SeasonGroup",
   "results":[
      {
         "seasonGroupId":1,
         "seasons":[
            {
               "seasonId":3,
               "seasonGroupId":1,
               "lseId":1,
               "seasonName":"Winter",
               "seasonFromMonth":10,
               "seasonFromDay":1,
               "fromEdgePredominance":"SUBSERVIENT",
               "seasonToDay":31,
               "seasonToMonth":5,
               "toEdgePredominance":"SUBSERVIENT"
            },
            {
               "seasonId":4,
               "seasonGroupId":1,
               "lseId":1,
               "seasonName":"Summer",
               "seasonFromMonth":6,
               "seasonFromDay":1,
               "fromEdgePredominance":"PREDOMINANT",
               "seasonToDay":30,
               "seasonToMonth":9,
               "toEdgePredominance":"PREDOMINANT"
            }
         ]
      }
   ]
}