{% if v.operator_index is not none %}#{{ v.operator_index }}{% else %}{{ v.operator_id }}{% endif %}
{% if v.display_name %}
{{ v.display_name }}
{{ v.pubkey or v.operator_id or "—" }}
{% elif v.pubkey %}
{{ v.pubkey }}
{% elif v.operator_index is not none and v.operator_id and v.operator_id != (v.pubkey or '') %}
{{ v.operator_id }}
{% endif %}
{{ v.status }}
{{ format_balance(v.balance_base_units if v.balance_base_units is not none else v.balance_gwei, snapshot) }}
Effectiveness{{ v.effectiveness_score }}%
{{ snapshot.risk_label }}{{ v.risk_score if v.risk_score is not none else v.slashing_risk_score }}
{{ snapshot.primary_duty_label }}
{{ v.attestations.successful }}/{{ v.attestations.expected }}
Missed
{{ v.attestations.missed }}
{{ snapshot.secondary_duty_label }}
{{ v.proposals.successful }}/{{ v.proposals.expected or "—" }}
{% if snapshot.chain == 'ethereum' %}
Window rewards · {{ "complete" if v.reward_data_complete else "partial" }}
{% else %}
Rewards
{% endif %}
{{ format_rewards(v.rewards_base_units if v.rewards_base_units is not none else v.rewards_gwei, snapshot) }}
{% if v.recent_attestations %}
{% endif %}
Recent {{ snapshot.primary_duty_label|lower }}
{% endif %}
{% if v.recent_proposals %}
{% for d in v.recent_attestations %}
{{ d.outcome[0]|upper }}
{% endfor %}
Recent {{ snapshot.secondary_duty_label|lower }}
{% endif %}
{% if v.recent_duties and not v.recent_attestations and not v.recent_proposals %}
{% for d in v.recent_proposals %}
{{ d.outcome[0]|upper }}
{% endfor %}
Recent duties
{% endif %}
{% for d in v.recent_duties %}
{{ d.outcome[0]|upper }}
{% endfor %}