> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allium.so/llms.txt
> Use this file to discover all available pages before exploring further.

# validator.balances migration

> beacon.validator.balances → beacon.raw.balances_daily

[← Back to schema changes overview](/historical-data/supported-blockchains/evm/beacon-chain/schema-changes)

Historical daily balance snapshots (one row per validator per day).

* **Effective date:** March 27, 2026
* **End of life:** May 23, 2026
* **Replacement:** `beacon.raw.balances_daily`
* **Replacement available:** April 14, 2026 (before the legacy table is removed)
* **Last published:** April 7, 2026

The `beacon.validator.balances` table will not receive updates after **May 23, 2026**.

### Schema comparison

| Column Name                    | Old Schema (`beacon.validator.balances`)     | New Schema (`beacon.raw.balances_daily`)     | Change Type   | Notes                                                         |
| ------------------------------ | -------------------------------------------- | -------------------------------------------- | ------------- | ------------------------------------------------------------- |
| `SLOT_NUMBER`                  | Integer                                      | Integer                                      | No change     | Slot number remains the same                                  |
| `SLOT_TIMESTAMP`               | Timestamp                                    | Timestamp                                    | No change     | Timestamp format unchanged                                    |
| `VALIDATOR_INDEX`              | Integer                                      | Integer                                      | No change     | Validator index unchanged                                     |
| `RAW_BALANCE`                  | Integer (Wei) - `32787279442`                | Integer (Wei) - `32787279442`                | **Reordered** | Now appears BEFORE `BALANCE` column                           |
| `BALANCE` ⚠️                   | Float (ETH) - `32.787279442`                 | Float (ETH) - `32.787279442`                 | **Reordered** | Column moved after `RAW_BALANCE`                              |
| `RAW_EFFECTIVE_BALANCE`        | Integer (Wei) - `32000000000`                | Integer (Wei) - `32000000000`                | **Reordered** | Column moved in order                                         |
| `EFFECTIVE_BALANCE`            | Float (ETH) - `32`                           | Float (ETH) - `32`                           | **Reordered** | Column moved in order                                         |
| `STATUS`                       | String - `active_ongoing`                    | String - `active_ongoing`                    | **Reordered** | Moved after balance columns                                   |
| `PUBKEY`                       | String (hex)                                 | String (hex)                                 | No change     | Public key format unchanged                                   |
| `WITHDRAWAL_CREDENTIALS`       | String (hex)                                 | String (hex)                                 | No change     | Credentials unchanged                                         |
| `WITHDRAWAL_PREFIX`            | String (hex) - `0x02`                        | String (hex) - `0x02`                        | No change     | Prefix unchanged                                              |
| `WITHDRAWAL_ADDRESS`           | String (hex)                                 | String (hex)                                 | No change     | Address unchanged                                             |
| `IS_SLASHED` ⚠️                | Boolean - `FALSE`                            | ❌ Removed                                    | **REMOVED**   | Replaced by `SLASHED`                                         |
| `SLASHED` ⚠️                   | ❌ Not present                                | Boolean - `FALSE`                            | **NEW**       | Replaces `IS_SLASHED` (column renamed)                        |
| `ACTIVATION_ELIGIBILITY_EPOCH` | Integer                                      | Integer                                      | No change     | Epoch values unchanged                                        |
| `ACTIVATION_EPOCH`             | Integer                                      | Integer                                      | No change     | Epoch values unchanged                                        |
| `EXIT_EPOCH`                   | Integer                                      | Integer                                      | No change     | Epoch values unchanged                                        |
| `WITHDRAWABLE_EPOCH`           | Integer                                      | Integer                                      | No change     | Epoch values unchanged                                        |
| `EXECUTION_OPTIMISTIC`         | ❌ Not present                                | String (empty) or Boolean                    | **NEW**       | New field for optimistic execution status                     |
| `FINALIZED`                    | ❌ Not present                                | Boolean - `TRUE`                             | **NEW**       | New field for finalization status                             |
| `UNIQUE_ID` ⚠️                 | String - `date-2026-03-27_validator_index-0` | String - `date-2026-03-27-validator_index-0` | **BREAKING**  | Format changed: underscore removed between date and validator |
| `_CREATED_AT`                  | Timestamp                                    | Timestamp                                    | No change     | Creation timestamp unchanged                                  |
| `_UPDATED_AT`                  | Timestamp                                    | Timestamp                                    | No change     | Update timestamp unchanged                                    |
| `_CHANGED_SINCE_FULL_REFRESH`  | Boolean - `TRUE`                             | ❌ Removed                                    | **REMOVED**   | Field no longer available                                     |

### Breaking changes summary

<Warning>
  **Critical breaking changes** — address these in your queries:

  1. **Column order changed** (affects `SELECT *`): `RAW_BALANCE` before `BALANCE`; balance columns grouped; `STATUS` after balance columns
  2. **Column renamed**: `IS_SLASHED` → `SLASHED`
  3. **`UNIQUE_ID` format changed**: `date-2026-03-27_validator_index-0` → `date-2026-03-27-validator_index-0` (breaks filters/joins on `UNIQUE_ID`)
  4. **New columns**: `EXECUTION_OPTIMISTIC`, `FINALIZED`
  5. **Removed column**: `_CHANGED_SINCE_FULL_REFRESH`
</Warning>

### Non-breaking changes

* Core validator fields (`VALIDATOR_INDEX`, `PUBKEY`, `STATUS`, etc.) keep the same data types
* Withdrawal fields (`WITHDRAWAL_PREFIX`, `WITHDRAWAL_ADDRESS`) already present in the legacy schema
* Epoch fields remain integers; timestamps unchanged
* `RAW_BALANCE` and `RAW_EFFECTIVE_BALANCE` remain Integer (Wei)
