Calculate Electricity Costs

Create an Electricity Profile for actual usage

The next step is to create the electricity profile that will contain the customer's electricity usage (typically kWh) data. For the best accuracy, use utility revenue grade meter interval data. If you don't have access to this you could use sub-meter data or billing consumption data. If you don't have access to any actual electricity usage data, call us to discuss options around estimating usage.

Below is an example to add a new electricity profile to the account. In this example we have included a year's worth of actual monthly readings (presumably from bills). For the best results use hourly or smaller meter data.

POST /rest/v1/profiles
{ 
  "providerAccountId" : "{providerAccountId}",
  "providerProfileId" : "{providerProfileId}",
  "profileName" : "Actual Electricity Usage",
  "isDefault" : true,
  "serviceTypes" : "ELECTRICITY",
  "sourceId" : "ReadingEntry",
  "readingData" : [ 
      { "fromDateTime" : "2015-06-19T00:00-0700",
        "quantityUnit" : "kWh",
        "quantityValue" : "-438",
        "toDateTime" : "2015-07-20T00:00-0700"
      },{ "fromDateTime" : "2015-07-20T00:00-0700",
        "quantityUnit" : "kWh",
        "quantityValue" : "-368",
        "toDateTime" : "2015-08-19T00:00-0700"
      },{ "fromDateTime" : "2015-08-19T00:00-0700",
        "quantityUnit" : "kWh",
        "quantityValue" : "-79",
        "toDateTime" : "2015-09-20T00:00-0700"
      },{ "fromDateTime" : "2015-09-20T00:00-0700",
        "quantityUnit" : "kWh",
        "quantityValue" : "180",
        "toDateTime" : "2015-10-19T00:00-0700"
      },{ "fromDateTime" : "2015-10-19T00:00-0700",
        "quantityUnit" : "kWh",
        "quantityValue" : "705",
        "toDateTime" : "2015-11-18T00:00-0800"
      },{ "fromDateTime" : "2015-11-18T00:00-0800",
        "quantityUnit" : "kWh",
        "quantityValue" : "959",
        "toDateTime" : "2015-12-17T00:00-0800"
      },{ "fromDateTime" : "2015-12-17T00:00-0800",
        "quantityUnit" : "kWh",
        "quantityValue" : "1182",
        "toDateTime" : "2016-01-19T00:00-0800"
      },{ "fromDateTime" : "2016-01-19T00:00-0800",
        "quantityUnit" : "kWh",
        "quantityValue" : "895",
        "toDateTime" : "2016-02-18T00:00-0800"
      },{ "fromDateTime" : "2016-02-18T00:00-0800",
        "quantityUnit" : "kWh",
        "quantityValue" : "973",
        "toDateTime" : "2016-03-20T00:00-0700"
      },{ "fromDateTime" : "2016-03-20T00:00-0700",
        "quantityUnit" : "kWh",
        "quantityValue" : "-49",
        "toDateTime" : "2016-04-19T00:00-0700"
      },{ "fromDateTime" : "2016-04-19T00:00-0700",
        "quantityUnit" : "kWh",
        "quantityValue" : "-220",
        "toDateTime" : "2016-05-18T00:00-0700"
      },{ "fromDateTime" : "2016-05-18T00:00-0700",
        "quantityUnit" : "kWh",
        "quantityValue" : "-492",
        "toDateTime" : "2016-06-19T00:00-0700"
      }
    ]
}

For more information, check out our documentation on how to add monthly Electricity Readings profile.

Below is an example of an electricity profile for a customer with dual register meters. You will use "importQuantityValue" and "exportQuantityValue" for the kWh values when the meter is importing and exporting.

POST /rest/v1/profiles
{ 
  "providerAccountId" : "{providerAccountId}",
  "providerProfileId" : "{providerProfileId}",
  "profileName" : "Dual Register Meter Profile",
  "isDefault" : true,
  "serviceTypes" : "ELECTRICITY",
  "sourceId" : "ReadingEntry",
  "readingData" : [ 
      { "fromDateTime" : "2015-06-19T00:00-0700",
        "quantityUnit" : "kWh",
        "importQuantityValue" : "1.41746",
        "toDateTime" : "2015-06-19T01:00-0700"
      },
      { "fromDateTime" : "2015-06-19T01:00-0700",
        "quantityUnit" : "kWh",
        "importQuantityValue" : "1.412371",
        "toDateTime" : "2015-06-19T02:00-0700"
      },

/* edited for length */

      { "fromDateTime" : "2015-06-19T08:00-0700",
        "quantityUnit" : "kWh",
        "exportQuantityValue" : "1.035186",
        "toDateTime" : "2015-06-19T09:00-0700"
      },
      { "fromDateTime" : "2015-06-19T09:00-0700",
        "quantityUnit" : "kWh",
        "exportQuantityValue" : "2.515777",
        "toDateTime" : "2015-06-19T10:00-0700"
      },

/* edited for length */

    ]
}

Periodically update the Electricity Profile with the latest usage

You only need to add a new profile for actual electricity usage one time. Then periodically you will append new interval data to it, say, at the end of each day or month. Here is an example request that adds new readings to an existing electricity profile:

PUT /rest/v1/profiles/{profileId}/readings
{
  "usageProfileId": "{profileId}",
  "readings" : [ {
    "fromDateTime" : "2016-06-19T00:00-0700",
    "toDateTime" : "2016-07-19T00:00-0700",
    "quantityUnit" : "kWh",
    "quantityValue" : 235
  } ]
}

Visit our Genability Developer documentation to learn more about how to Update Readings.

Calculate the Actual Bill Cost each month

Once you have the actual electricity usage loaded, you will be able to calculate the Actual Bill cost for that billing period. Below is a sample request to calculate the Actual Bill cost for a billing period from 7/20/2015 to 8/19/2015. You set the property "billingPeriod" to true as this calculation is for one billing period. Doing so will handle the proration of fixed and other billing period charges correctly. Note also that in this example, a usage profile is not passed in. That is because the calculation will use the actual electricity usage profile you created above since it was flagged as the default profile.

POST /rest/v1/accounts/pid/{providerAccountId}/calculate/
{
   "fromDateTime":"2015-07-20T00:00-0700",
   "toDateTime":"2015-08-19T00:00-0700",
   "billingPeriod": true,
   "minimums": false,
   "groupBy":"MONTH",
   "detailLevel":"CHARGE_TYPE"
}

Here is the calculated result:

/* edited for length */
     "summary": {
        "ELECTRICITY": {
          "kWh": -368,
          "kW": 0
        },
        "subTotalCost": -61.68,
        "taxCost": 0,
        "totalCost": -61.68,
        "adjustedTotalCost": -61.79,
        "kWh": -368,
        "kW": 0
      }
/* edited for length */

You can read our documentation on Account Cost Calculation for more information.

Previously you provisioned your site with a correct tariff and other settings. In this step you loaded electricity usage data into it, and used that to calculate the site's actual electricity costs.

Next : Load solar production data as well as optionally calculate what that costs.