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?"