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

# Performance

> A series of endpoints that drill down on performance related metrics for both entities and validators.

export const Endpoint = ({type, path, url}) => {
  const methodColors = {
    post: 'bg-blue-400/20 text-blue-700 dark:bg-blue-400/20 dark:text-blue-400',
    get: 'bg-green-400/20 text-green-700 dark:bg-green-400/20 dark:text-green-400',
    put: 'bg-yellow-400/20 text-yellow-700 dark:bg-yellow-400/20 dark:text-yellow-400',
    delete: 'bg-red-400/20 text-red-700 dark:bg-red-400/20 dark:text-red-400',
    patch: 'bg-orange-400/20 text-orange-700 dark:bg-orange-400/20 dark:text-orange-400'
  };
  const pathParts = path.startsWith('/') ? path.substring(1).split('/') : path.split('/');
  return <a href={url} className="relative flex-1 flex gap-2 min-w-0 rounded-xl items-center cursor-pointer p-1.5 border-standard">
        <div className={`rounded-lg font-bold px-1.5 py-0.5 text-sm leading-5 ${methodColors[type.toLowerCase()]}`}>
          {type}
        </div>
        <div className="flex items-center space-x-2 overflow-x-auto flex-1 no-scrollbar">
          <div className="group flex items-center flex-1 gap-0.5 font-mono">
            {url && <div className="absolute right-0 p-2 rounded-lg hidden group-hover:block">
                <Icon icon="arrow-right" />
              </div>}
            {pathParts.map((part, i) => {
    const isParam = part.includes('{');
    return <>
                  <div className="text-sm text-gray-400">/</div>
                  {isParam ? <div className="text-sm font-mono font-medium rounded-md px-1 border-2 min-w-max text-[#2AB673] bg-[#2AB673]/10 border-[#2AB673]/30">
                      {part}
                    </div> : <div className="text-sm font-medium text-gray-800 dark:text-white min-w-max">
                      {part}
                    </div>}
                </>;
  })}
          </div>
        </div>
      </a>;
};

## Entity Performance

We have structured the performance endpoints around three main pillars,

1. the **avg effectiveness** of an entity

2. drilldown of performance associated with **attestation duties**

3. drilldown of performance associated with **proposer duties**

You will find that this is similar to how we defined [Rated Effectiveness Rating](https://docs.rated.network/methodologies/ethereum/rated-effectiveness-rating) (RAVER), which is a measure of how well an entity has been performing its deterministic duties - attestations and proposals, over time.

### Get effectiveness for Pools, Operators and Addresses

<Endpoint type="GET" path="/v1/eth/entities/{entity_id}/effectiveness" url="/rated-api/api-reference/v1/ethereum/performance/get-effectiveness-for-pools-operators-and-addresses" />

### Get attestation duties metrics for Pools, Operators and Addresses

<Endpoint type="GET" path="/v1/eth/entities/{entity_id}/attestations" url="/rated-api/api-reference/v1/ethereum/performance/get-attestation-duties-metrics-for-pools-operators-and-addresses" />

### Get proposer duties metrics for Pools, Operators and Addresses

<Endpoint type="GET" path="/v1/eth/entities/{entity_id}/proposals" url="/rated-api/api-reference/v1/ethereum/performance/get-proposer-duties-metrics-for-pools-operators-and-addresses" />

***

## Validator Performance

At validator level, the same structure persists ie the performance endpoints are centered around three main pillars,

1. the **effectiveness** of a validator index

2. drilldown of performance associated with **attestation duties**

3. drilldown of performance associated with **proposer duties**

Validator performance endpoints can further be grouped into individual validator index or pubkey endpoints and aggregate endpoints. Find more details below 👇

### Individual Validators

#### Get validator effectiveness

<Endpoint type="GET" path="/v1/eth/validators/{validator_index_or_pubkey}/effectiveness" url="/rated-api/api-reference/v1/ethereum/performance/get-validator-effectiveness" />

#### Get validator attestation duties metrics

<Endpoint type="GET" path="/v1/eth/validators/{validator_index_or_pubkey}/attestations" url="/rated-api/api-reference/v1/ethereum/performance/get-validator-attestation-duties-metrics" />

#### Get validator proposal duties metrics

<Endpoint type="GET" path="/v1/eth/validators/{validator_index_or_pubkey}/proposals" url="/rated-api/api-reference/v1/ethereum/performance/get-validator-proposal-duties-metrics" />

***

## Aggregating Validator Indices

Unlike the entities endpoint, validators can be aggregated across all the metrics that live under the performance endpoints across an arbitrary number of validator indices or pubkeys. This aggregation is available over a time window or over validator indices.

#### Get aggregated effectiveness for validators

<Endpoint type="GET" path="/v1/eth/validators/effectiveness" url="/rated-api/api-reference/v1/ethereum/performance/get-aggregated-effectiveness-for-validators" />

#### Get attestation duties metrics for group of validators

<Endpoint type="GET" path="/v1/eth/validators/attestations" url="/rated-api/api-reference/v1/ethereum/performance/get-attestation-duties-metrics-for-group-of-validators" />

#### Get proposer duties metrics for a group of validators

<Endpoint type="GET" path="/v1/eth/validators/proposals" url="/rated-api/api-reference/v1/ethereum/performance/get-proposer-duties-metrics-for-a-group-of-validators" />

***

## Sets Performance

Sets or Private Sets, helps organizations group validators into custom, private, sets enabling use-cases such as executing controlled experiments and analyses to assess various aspects of their validators' cluster performance. Head to [Private Sets](/rated-api/api-reference/v1/ethereum/private-sets/private-sets) to learn more about the different endpoints you'll need to call as a precursor to calling the endpoints below.

<Note>
  Note that the set performance endpoints behave identical to the entities performance endpoints with the caveat that (i) only the org that creates a set can view performance metrics for that set (hence ***private*** sets) and (ii) sets data does not surface on the Rated Explorer.
</Note>

#### Get effectiveness for a private set

<Endpoint type="GET" path="/v1/eth/sets/{set_id}/effectiveness" url="/rated-api/api-reference/v1/ethereum/performance/get-effectiveness-for-a-private-set" />

#### Get attestation duties metrics for a private set

<Endpoint type="GET" path="/v1/eth/sets/{set_id}/attestations" url="/rated-api/api-reference/v1/ethereum/performance/get-attestation-duties-metrics-for-a-private-set" />

#### Get proposer duties metrics for a private set

<Endpoint type="GET" path="/v1/eth/sets/{set_id}/proposals" url="/rated-api/api-reference/v1/ethereum/performance/get-proposer-duties-metrics-for-a-private-set" />

***
