HomeGuidesAPI ReferenceChangelog
Log In
Guides

Proration and Inference

We can now prorate usages and charges to the meter level and infer usages at the meter level when they are not present.

📘

Optional historical statement replay

When your organization opts into this feature, you have the option to specify whether and how you prefer your historical data to be replayed with this logic.

For the replayed statements, the statementId will stay the same, while the existing account and meter level usages and charges will be updated.

Most of your statements can be replayed upon first try, while some may take longer than others.

Overview

Bills from utility providers describe two levels of charges and usage: account and meter. There are instances where utility providers post statements with usage and/or charge line items at the account level and do not align them to specific meters. In these instances, Plug's statement data includes usages and charges at both the account and meter levels. If your use case requires meter-level resolution, we recommend that you request access to this preview feature to ensure consistent access to meter-level usage and charges.

Arcadia’s systems will prorate these account-level usages and charges down to the meter level where possible to ensure that each meter receives the necessary usage and charge values. This feature’s goals are:

  • All meters have total usages and total charges available
  • The sum of meters' charges sum up to the statement’s total charges
  • Infer a meter’s total usage when the total is not available on the bill by summing all meter level usages or calculating the delta between the meter’s previous and current reads

📘

Summary accounts

There will not be any prorated or inferred information at the summary account level. Prorated and inferred values will only occur at the meter level.

Usages

Usage Proration

For usage proration, the system will prorate account level usages if all meters below the account have the same service type. For example, if the bill contains one account with consumption totals and two electric meters without consumption totals, the system will split the account-level usage totals between both meters. The proration feature does not convert units of measure. Instead, the system will prorate each usage item in the statement’s reported unit of measure.

If the system is able to safely push down account level usage items to the meter level, the account-level usage item contributionStatus will be NON_CONTRIBUTING and prorationStatus will be PRORATION_SOURCE. The newly created meter-level usage items' prorationStatus will be PRORATED and the contributionStatus will be CONTRIBUTING.

If the system is not able to safely push down account level usage items to the meter level, the account-level usage item contributionStatus will be CONTRIBUTING and prorationStatus will be null. There will not be any newly created meter-level usage items.

The system will use meter level charges as a context clue to perform weighted proration. If meter charge totals are not available on the bill, the system will utilize even-share proration across all meters below the account. In this case, we recommend utilizing usages in CONTRIBUTING status and ignoring NON_CONTRIBUTING usages.

Usage Proration Example - Account Level Response Snippet

{
		"contributionStatus": "NON_CONTRIBUTING",
		"prorationStatus": "PRORATION_SOURCE",
}

Usage Proration Example - Meter Level Response Snippet

{
		"contributionStatus": "CONTRIBUTING",
		"prorationStatus": "PRORATED",
}

👍

Prorating demand

In addition to prorating usages, we also prorate demand where we see fit. We would prorate and push demand values from the account level to the meter level if the meters associated with the account does not have any demand usages already present on them.

Usage Inference

If there is no meter total usage printed on the bill, the system will attempt to compute a meter-level usage item for total usage and mark the newly created meter level usage item with prorationStatus as "INFERRED". If the system did not perform proration because all meters already contain total usages or all usages do not contain a unit of measure, the proration status will be null. The inference feature supports summing the meter’s time-of-use usage line items to create a total usage when all usage items contain a unit of measure. This feature also supports calculating the meter’s previous raw reading and current raw reading delta to generate a total usage.

For instance, if the statement’s meter contains multiple time-of-use usage line items in kWh without a total usage, the system will sum up the meter’s line items to infer the meter’s total usage and mark the meter’s prorationStatus as "INFERRED". For another example, if the meter contains a raw previous and current reading with unit of measure, the system will calculate the delta between the two readings to infer the meter’s total usage. It will display the meter’s prorationStatus as "INFERRED". In this scenario, we recommend using the inferred meter total usage to understand meter level consumption.

Inference Example - Meter Level Response Snippet

{
		"contributionStatus": "CONTRIBUTING",
		"prorationStatus": "INFERRED",
		"meterReadingRaw": 79562,
		"meterReadingRawPrevious": 73421,
		"meterReadingDelta": 6141,
}

Charges

Charge Proration

The system will prorate account-level charges if all meters below the account have the same service type.  If there are total consumption usage records available across all the target meters, the system will use this context clue to prorate weighted charges to each meter. If there is no clear indication of how much commodity was measured for each meter, the system will prorate total charges through an even-split approach across all meters.

The newly created meter level charge records will be marked with prorationStatus as PRORATED, and the account-level charge records that they spawned from will be marked with prorationStatus as PRORATION_SOURCE and contributionStatus as NON_CONTRIBUTING.

These fields will provide a way to prevent double counting when summing charge totals across account and meter levels. In this case, we recommend utilizing charges in CONTRIBUTING status and ignoring NON_CONTRIBUTING charges.

Charge Proration Example - Account Level Response Snippet

{
		"contributionStatus": "NON_CONTRIBUTING",
		"prorationStatus": "PRORATION_SOURCE",
}

Charge Proration Example - Meter Level Response Snippet

{
		"contributionStatus": "CONTRIBUTING",
		"prorationStatus": "PRORATED",
}

How we prorate charges

For meters with the same service type

We will always try to split charges by the usage amount at the meter level. Therefore, when a meter has a higher usage, it will be assigned a higher level of charges.

When that is not possible (i.e. there is no usage amount at the meter level), we will assign charges evenly to each meter.

For meters with different service types

We prorate charges to meters evenly.