Interactive simulation of the parameter change proposed in
utilization_scaled_pledge_bonus.md:
multiply the pledge bonus A by pool utilization u = S/Ssat.
Every current-formula curve is in red/green/blue (same colors as
SPO_REWARD_ANALYSIS_CHART.html);
each is overlaid with its proposed-formula counterpart in cyan / purple-dashed.
Drag the blending coefficient b from 0 (today) to 1 (full proposal) to watch the
dilution regime collapse and the red zone disappear.
— Guided walkthroughs. Cards appear bottom-right; arrows point at the relevant
sliders, checkboxes, and chart regions. Click ▶ Play
in the card to let the tour run itself. Press
Esc at any time to return to free exploration.
Pool Lookup — Mainnet via Koios + corsproxy.io (no API key needed)
Enter a ticker or a full pool ID (pool1…) then press Enter or click Load Pool.
Sliders for margin, fee, pledge, current delegation, and performance will be set automatically.
Ctrl+K returns focus here.
Pool Parameters
Performance Analysis — actual vs expected blocks, auto-fetched from Koios on Load Pool
Load a pool above to auto-compute performance. Epochs with fewer than 0.5 expected blocks are excluded. Adjust the window or the factor manually for what-if analysis.
Current Formula (at cursor)
Pledge Bonus (A_eff)
—
ADA/epoch
SPO Income
—
ADA / epoch
Delegator ROA
—
% per year
Performance Factor
100.0%
actual / expected blocks
Proposed Formula (at cursor) — pledge bonus scaled by utilization
Pledge Bonus (A_new)
—
ADA/epoch
SPO Income (Proposed)
—
ADA / epoch
Delegator ROA (Proposed)
—
% per year
ROA Delta (Proposed − Current)
—
percentage points / year
Chart Cursor — Current Delegation Level
SPO Income (solid, left axis) & Delegator ROA %/yr (dashed, right axis) — External Delegation 0 → 70 M ADA | dashed orange = saturation Current formula —
SPO:
green helps
red hurts | ROA:
dashed blue
||
Proposed formula —
SPO:
cyan | ROA:
dashed purple
Cursor markers (on current-formula curves):
slope ≥ 0
slope < 0
Proposal Controls — blending coefficient and curve visibility
At b = 0 the proposed curves overlap the current curves exactly.
At b = 1 the pledge bonus A is fully multiplied by utilization
u = S/Ssat. Saturated pools (S = Ssat) earn
the same under either formula.
Marginal Delegator ROA — dROA/dS (units: %/year change in ROA per +1 M ADA added)
This is the quantity a rational delegator actually optimises against:
does adding stake to this pool help or hurt per-delegator ROA right now?
|
Current:
dashed blue |
Proposed:
dashed purple |
above 0 = delegation helps,
below 0 = delegation dilutes.
Marginal ROA at Cursor (effect of adding 1 M ADA right now)
Marginal ROA (Current)
—
%/yr per +1 M ADA
Marginal ROA (Proposed)
—
%/yr per +1 M ADA
Reference Formulas — current vs proposed
Current formula (today's mainnet) gross_eff(S, P, p)
= p × r × (S + a₀·P) / (1 + a₀)
| p = performance factor (0–1)
| a₀ = 0.3 (protocol constant) SPO income
= F + m·(gross_eff − F) + (P/S)·(1−m)·(gross_eff − F)
[when gross_eff > F; otherwise SPO takes all of gross_eff] Delegator ROA/yr
= (1−m)·(gross_eff − F) / S × 73 epochs × 100% A_eff = p·r·a₀·P / (1+a₀)
|
mmin = (A_eff − F) / (p·r·P − F) when A_eff > F, else 0%
| Ceiling: a₀/(1+a₀) ≈ 23.1% r = 0.000548 (epoch rate — slowly declining as ADA reserve depletes)
| Saturation Ssat ≈ 75 M ADA (2025) Performance p
= actual blocks / expected blocks (averaged over chosen epoch window)
| expected = (pool active stake / network active stake) × total epoch blocks
Proposed formula — utilization-scaled pledge bonus u = min(S, Ssat) / Ssat
(pool utilization, 0 to 1)
|
blend(b) = (1 − b) + b · u
(b = 0 reproduces current; b = 1 = full proposal) gross_proposed(S, P, p, b)
= p × r × (S + a₀·P·blend(b)) / (1 + a₀) A_new = A_eff · blend(b)
|
SPO income (proposed) and
ROA (proposed)
use gross_proposed in place of gross_eff.
Key result: at S = Ssat (saturated pool) the two formulas coincide for any b.
Below saturation, the proposed formula removes the dilution regime —
d(ROA)/dS = +F/S² > 0 always — so adding delegation to any pool monotonically
raises per-delegator ROA. See
utilization_scaled_pledge_bonus.md §§3–4.
Marginal ROA — dROA/dS (used by the companion chart) d(ROA)/dS (current)
= −(1−m) · (A_eff − F) / S² · 73 · 100
→ negative whenever A_eff > F (dilution) d(ROA)/dS (proposed, b = 1)
= +(1−m) · F / S² · 73 · 100
→ strictly positive (no dilution regime) d(ROA)/dS (proposed, blended)
= (1−m) · [F − A_eff · (1 − b)] / S² · 73 · 100
Both curves on the marginal-ROA chart are computed by numerical forward difference
(dS = 0.1 M ADA) and scaled to %/year per +1 M ADA added — the dimensionally natural
unit for "if one more delegator arrives, how much does ROA move?"