# What is a Register?

The eGauge meter stores data points in registers. Each register contains a cumulative value for a given data point. Any value stored by the eGauge is assigned a register, regardless of the source (raw reading from a sensor/voltage input, calculated values such as power, or values imported from other devices). A register is a single numerical value with an associated unit type, and cannot be de-aggregated. For example, a power register is calculated from the line voltage multiplied by amperage multiplied by power factor, but only a single value for power is stored in the register itself, meaning that amperage could not be derived from a power value. This can be represented by the equation V*I*PF = X; the register only stores the value X, and it's not possible to calculate a value for V, I, or PF with just X.

The eGauge has a finite number of register "slots" available. On most EG4xxx meters there are 64 registers available; most EG30xx meters have either 16 or 64 registers available. For more information on database capacity, see this article.

It's often helpful to use analogies to discuss registers and associated concepts. Registers can be visualized as columns in a spreadsheet, where each row is the cumulative value of the register at a given date and time. Consider the following example, using dollar values:

 Date Food Utilities Misc Expenses 1/4 \$70 \$250 \$895 1/3 \$55 \$250 \$655 1/2 \$40 \$250 \$584 1/1 \$25 \$100 \$522 12/30 \$10 \$100 \$500

Each column is a register (Food, Utilities, Misc Expenses), and each row contains the cumulative value for each register at a given date and time.

Let's focus on the Food column. The cumulative value of the Food column increases every day by \$15. You can find the amount spent on food over a given period by finding the difference between any two values in the Food column. For example, from 12/30 to 1/4, the total spent on food was \$70 - \$10 = \$60, or an average of \$15 per day over four days.

In contrast, Utilities and Misc expenses don't change by a fixed value every day. The Utilities register value increases by \$150 between 1/1 and 1/2, but doesn't increase after that. The Misc Expenses value increases by a different amount each day. However, the earlier concepts still hold true - to find the amount spent over a given period, simply find the difference between the starting value and ending value for that period.

Now, let's move on to some more complex concepts. Most registers are bidirectional, meaning their value can increase or decrease depending on the measurement. This is common with solar production - the register value increases during the day as the PV array produces power, but then decreases overnight by a small amount due to inverter draw in standby mode. In our monetary example, a negative value might indicate a return or refund on a specific day.

It's also important to note that registers are not retroactive, meaning they'll only record values from the time they're created moving forward. For example, if the meter is initially installed and configured on 1/1 but a new register is added on 1/5, all original registers will contain data from 1/1 onward but the new register will only contain values from 1/5 onward.

 Date Food Utilities Misc Expenses Coffee 1/6 \$100 \$250 \$910 \$10 1/5 \$85 \$250 \$865 \$5 1/4 \$70 \$250 \$895 1/3 \$55 \$250 \$655 1/2 \$40 \$250 \$584 1/1 \$25 \$100 \$522 12/30 \$10 \$100 \$500

In the example above, a new register was added to track expenditures on Coffee. Since this register was added on the 1/5, there is no historical data on coffee spending. On 1/4 there was also a refund in the Misc Expense register, so the cumulative register value actually decreased on that day.

The relationship between registers can also be calculated using virtual registers. This essentially allows the user to add or subtract register values from one another without using another register slot on the eGauge meter. In the monetary example above, let's say the user is interested in their total consumable cost (Food + Coffee), so they create a virtual register to track the total of those two registers.

 Date Food Coffee Total Consumables 1/6 \$100 \$10 \$110 1/5 \$85 \$5 \$90 1/4 \$70 \$70 1/3 \$55 \$55

Since Coffee wasn't created until 1/5, the value of Total Consumables is the same as the value of Food prior to that period (X + 0 = X).

All of these concepts can be applied to actual eGauge data. In the example below, we have total site usage and EV charger usage expressed in kWh:

 Date Usage (kWh) EV Charger (kWh) 1/5 17368 429 1/4 17326 429 1/3 17205 420 1/2 17164 420

The EV charger isn't used every day, so the cumulative value doesn't necessarily change from day to day. However, the building as a whole draws power every day, so that value is continually increasing.

To find the building usage on the 3rd:

17326 - 17205 = 121 kWh

The EV charger usage over the same period is:

429 - 420 = 9 kWh

On the 4th, the EV charger didn't run at all. The total building usage is:

17368 - 17326 = 42 kWh

But the EV charger usage is now zero:

429 - 429 = 0 kWh.

These are very simple examples designed to convey some basic concepts. For more advanced reading, please see:

Interpreting XML Data (focus on XML data, but the concepts apply to CSV data as well)