Skip to main content

Overview

Missed rewards represent potential earnings your validators could have received if they had performed perfectly. Tracking missed rewards helps you identify issues, optimize performance, and quantify the cost of downtime or misconfigurations.
API Endpoint: This guide uses /api/v2/ethereum/validators/rewards-list for per-epoch missed reward breakdowns.
See Also: The APY & ROI Metrics endpoint also provides missed reward data as part of its return calculations. Use this document for detailed per-epoch analysis; use APY & ROI for aggregated impact on your returns.

Why Track Missed Rewards?

Diagnose Issues

Identify which duty types (attestations, proposals, sync) are causing losses.

Quantify Downtime Cost

Calculate the exact ETH lost during outages or maintenance windows.

Optimize Setup

Compare missed rewards before/after configuration changes to measure improvements.

Client Reporting

Show customers transparent breakdowns of actual vs. potential earnings.

Impact on Returns

See how missed rewards affect your overall APY & ROI using aggregated metrics.

Understanding Missed Rewards

The Rewards API returns detailed breakdowns including missed_reward fields for each duty type:
FieldDescription
total_missedSum of all missed rewards across all duty types
attestation.head.missed_rewardLost rewards from incorrect/late head votes
attestation.source.missed_rewardLost rewards from incorrect source votes
attestation.target.missed_rewardLost rewards from incorrect target votes
sync_committee.missed_rewardLost rewards from missed sync committee duties
proposal.missed_cl_rewardEstimated CL rewards lost from missed block proposals (see estimation method below)
proposal.missed_el_rewardEstimated EL rewards lost from missed block proposals (see estimation method below)
Missed vs Penalty: Missed rewards are potential earnings you didn’t receive. Penalties are actual deductions from your balance. Both reduce your net rewards, but penalties are more severe.
How Missed Proposal Rewards Are Estimated: The actual value of a missed block is impossible to determine since the block was never produced. We estimate it using the median reward from the 32 surrounding blocks — 16 before and 16 after the missed slot [n-16, n+16). This provides a reasonable approximation based on network conditions at the time.

Quick Start: Fetch Missed Rewards

Get missed rewards for a specific epoch:
curl --request POST \
  --url https://beaconcha.in/api/v2/ethereum/validators/rewards-list \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "chain": "mainnet",
  "validator": {
    "dashboard_id": 123
  },
  "epoch": 414000,
  "page_size": 10
}
'

Response

{
  "data": [
    {
      "validator": {
        "index": 123456,
        "public_key": "0xabc..."
      },
      "total": "9103000000000",
      "total_reward": "9103000000000",
      "total_penalty": "0",
      "total_missed": "250000000000",
      "attestation": {
        "total": "9103000000000",
        "head": {
          "total": "2348000000000",
          "reward": "2348000000000",
          "penalty": "0",
          "missed_reward": "0"
        },
        "source": {
          "total": "2364000000000",
          "reward": "2364000000000",
          "penalty": "0",
          "missed_reward": "0"
        },
        "target": {
          "total": "4391000000000",
          "reward": "4391000000000",
          "penalty": "0",
          "missed_reward": "0"
        }
      },
      "sync_committee": {
        "total": "0",
        "reward": "0",
        "penalty": "0",
        "missed_reward": "0"
      },
      "proposal": {
        "total": "0",
        "missed_cl_reward": "0",
        "missed_el_reward": "0"
      }
    }
  ]
}

Common Causes of Missed Rewards

CauseAffected DutiesSolution
Network latencyHead votesReduce latency to beacon node, use local execution client
Node downtimeAll dutiesImplement redundancy, monitoring, and failover
Missed proposalsProposalsEnsure MEV-boost and execution client are responsive
Sync committee offlineSync committeeKeep validators online during sync committee periods
Clock driftAttestationsUse NTP synchronization
Use the Notifications system to get alerts when validators miss duties. Early detection minimizes losses.

Best Practices

Monitor Regularly

Track missed rewards weekly to catch degradation before it becomes significant.

Set Thresholds

Alert when missed rewards exceed a percentage of total rewards (e.g., >0.1%).

Compare to BeaconScore

Use BeaconScore for relative comparison; use missed rewards for absolute ETH impact.

Investigate Spikes

When missed rewards spike, check node logs, network status, and duty assignments.

See Missed Rewards Impact on APY & ROI

For a high-level view of how missed rewards affect your overall returns, use the APY & ROI API. This endpoint provides aggregated missed reward data as part of its return calculations:
curl --request POST \
  --url https://beaconcha.in/api/v2/ethereum/validators/apy-roi \
  --header 'Authorization: Bearer <YOUR_API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "chain": "mainnet",
    "validator": { "dashboard_id": 123 },
    "evaluation_window": "30d"
  }'
The response includes roi.missed fields showing the impact of missed rewards on your overall ROI:
{
  "data": {
    "execution_layer": {
      "roi": { "total": 0.0012, "missed": -0.0001 },
      "apy": { "total": 0.0146, "missed": -0.0012 }
    },
    "consensus_layer": {
      "roi": { "total": 0.0008, "missed": -0.00005 },
      "apy": { "total": 0.0097, "missed": -0.0006 }
    }
  }
}
When to use which endpoint:
  • Use rewards-list (this document) for detailed per-epoch missed reward breakdowns by duty type
  • Use apy-roi for aggregated impact on your overall returns as a percentage