Performance-based Rewards
How the Performance-based Rewards (PBR) v1 schedule scales monthly node rewards according to block-maker failure rates relative to subnet baseline.
Node providers were originally paid a flat monthly rate per machine regardless of how the node performed. Performance-based Rewards (PBR) changes that. PBR scales each node's monthly reward by a multiplier derived from the Trustworthy Node Metrics — specifically, its block-maker failure rate relative to the rest of its subnet. Healthy nodes are paid the full baseline; nodes that fall materially behind are paid less, with the penalty capped.
This entry summarises how the v1 schedule works, how unassigned
nodes are handled, and how a provider can pull their own performance
data using the open-source dre tool. For the rate cards themselves,
see Node Provider Remuneration.
How v1 works
PBR treats the existing per-node rate as the baseline maximum —
the most a node can earn in a month, before any performance
adjustment. The actual monthly reward is the baseline times a
performance multiplier in the range [0.2, 1.0].
The headline curve:
- Up to 10% relative failure rate — no penalty. Multiplier is 1.0. The node is paid the full baseline.
- Between 10% and 60% relative failure rate — linear reduction. The penalty grows from 0% at 10% to 80% at 60%.
- Above 60% — capped. The multiplier never falls below 0.2; a node always earns at least 20% of its baseline.
Block-maker failure rate
Every node in a subnet is given equal opportunity to propose blocks. A node that is unreachable, low on CPU, low on RAM, or starved on disk I/O fails to produce blocks when its slot comes up. The NNS collects this data per node.
Node Failure Rate = Failed Blocks / (Proposed Blocks + Failed Blocks)
Subnet baseline
Subnets vary — an entire subnet can run hot during a state-sync or under heavy traffic. PBR normalises by subtracting the subnet's own baseline from each node's failure rate. The baseline is the 75th-percentile failure rate across nodes in that subnet, i.e. the rate at the edge of the slowest 25%.
Relative Performance = max(0, Node Failure Rate - Subnet Performance)
Performance multiplier
The multiplier is a piecewise function of Relative Performance:
If Relative Performance < 10%:
Multiplier = 1.0
Else if Relative Performance >= 60%:
Multiplier = 0.2
Else:
Multiplier = 1.0 - ((Relative Performance - 10%) / 50%) * 80%
Worked example
A node has Relative Performance = 16.66%.
Penalty = ((16.66% - 10%) / 50%) * 80% = 10.66%
Multiplier = 100% - 10.66% = 89.34%
The node earns 89.34% of its baseline reward for the month.
Unassigned nodes
A node not currently assigned to a subnet has no opportunity to propose blocks, so it has no failure rate of its own. PBR pays unassigned nodes at the average performance multiplier of their provider's assigned nodes. A provider whose assigned fleet is healthy is paid in full for their unassigned nodes; a provider whose assigned fleet is degraded is paid less for both.
Pulling your own performance data
The dre command-line tool, maintained by DFINITY, surfaces PBR
data per provider. It is open source and packaged for Linux and
macOS:
github.com/dfinity/dre/releases.
Upgrade an existing install with:
dre upgrade
Current rewards
dre node-rewards ongoing
Prints the current projected monthly rewards versus baseline and identifies which of your nodes are currently underperforming.
Past rewards
dre node-rewards past-rewards YYYY-MM
Prints the daily breakdown for a past month.
CSV export
dre node-rewards --csv-detailed-output-path ./pbr-data
Generates several CSV files in the target directory:
rewards_summary— daily total rewards plus the IDs of any underperforming nodes that day.base_rewards— daily breakdown by node type and region.- One file per node — daily failure rate, multiplier, and adjusted reward.
Investigating a penalty
When a node has been penalised:
- Pull the CSV bundle for your node provider principal.
- Open
rewards_summaryand identify the dates and nodes flagged. - Open the per-node CSV for each flagged node and read off the failure rate, the subnet baseline that day, and the resulting multiplier.
- Cross-reference against Node Provider Troubleshooting for the likely physical causes — networking, storage, power.
Related
- Node Provider Remuneration — the rate cards PBR scales.
- Proof of Useful Work — the framing model PBR implements.
- Reward Configuration Guide — required so a node earns rewards in the first place.
- Thirty-Day Moving Average — how XDR rewards are converted to ICP at minting time.