TL;DR — the decision rule

A deep deposit drawdown and a healthy exit queue are different signals, and they point opposite ways. ether.fi’s pool fell 46.7% peak-to-trough over six months and has recovered only a tenth of it — that is rented capital leaving with a narrative, and it should cap sizing on retention grounds. But the same run is the best liquidity evidence available: the queue cleared 415,141 ETH in its worst week at NAV with no discount mechanism and no gate. Size an LST/LRT position on the exit throughput demonstrated during its worst run, not on steady-state depth or on TVL — and treat a large drawdown as a reason to re-check who is left, not as evidence the exit is broken. Corollary for monitoring: a pool this size does not move in a day. Any TVL alert on a 24h window is unreachable — 24h drops never exceeded 4.7% across a 47% collapse.

Question

We were refreshing protocols/etherfi-weeth.md and found the prior eval’s retention read (“Apr-2026: 542,792 ETH redeemed in 33 days”) was one slice of a much longer decline. Two decisions hung on getting it right: how much of the endowment can sit in weETH, and what TVL thresholds the alert spec should carry. Both generalise — every LST/LRT we hold or might hold poses the same pair of questions, and the “24h window is unreachable” finding applies to any venue whose deposits move on a weekly, not daily, clock.

Methodology

Data sources & how to reproduce

Daily samples of three LiquidityPool/weETH reads at ~7,200-block intervals against an archive node, 2026-01-07 → 2026-08-06 (211 days, block 24,716,533 → 25,695,733):

  • LiquidityPool.getTotalPooledEther() — pooled ETH (identical to eETH totalSupply)
  • LiquidityPool.totalValueInLp() — the instant-redemption buffer
  • weETH.totalSupply() — wrapped supply

Rerun with ./scripts/pull-series.sh [head-block] > data/pooled-eth-daily.csv (needs $ETH_RPC_URL on an archive node), then python3 scripts/analyse.py for the shape and python3 scripts/thresholds.py for the threshold sweep. Raw series in data/pooled-eth-daily.csv.

Assumptions: 7,200 blocks ≈ 1 day (drifts a few minutes/day, immaterial at daily resolution). Pooled ETH falls only via withdrawals — rebases and deposits add — so a decline in this series is realised queue throughput, not repricing.

Findings

The shape of the run

DatePooled ETH
Peak2026-01-303,405,470
Trough2026-07-181,815,898
Latest2026-08-061,982,053

Peak → trough −46.7%. Trough → latest +9.2%. Latest vs peak −41.8%. The recovery has retraced roughly a tenth of the fall.

Worst rolling moves

WindowPooled ETHweETH supplyLP buffer
24h−4.70% (05-11→12)−4.84% (04-24→25)−98.69% (07-14→15)
7d−16.39% (05-06→13)−13.15% (05-05→12)−99.94%
30d−29.59% (04-24→05-24)−29.40%−99.97%

Demonstrated queue throughput

WindowOutflowRate
Worst 1d118,403 ETH118,403 ETH/day
Worst 7d415,141 ETH59,306 ETH/day
Worst 30d801,908 ETH26,730 ETH/day

All settled at oracle NAV. No gate, no pro-rata haircut, no discount window.

The instant-exit buffer is structurally thin

Buffer as a share of TVL, across 211 days: p10 0.22%, p25 0.66%, median 1.05%, p75 1.90%. The instant-redemption path shuts below a 1%-of-TVL watermark — so it was closed on 103 of 211 days, with 7 sustained runs of ≥7 days and 2 of ≥14 days. Absolute floor: below 5,000 ETH on 12 days, below 2,000 ETH on 3 days.

Threshold reachability sweep (firings across 211 days)

Metric / window5%8%10%12%15%20%
Pooled ETH / 24h000000
Pooled ETH / 7d2798320
weETH supply / 24h000000
weETH supply / 7d31126200

Every 24h threshold is unreachable. On 7d, anything ≥20% (pool) or ≥15% (supply) is also unreachable.

Decision framework

  1. Size on demonstrated stressed throughput. Take the worst 7d outflow the venue has actually cleared and divide by 7. For ether.fi that is 59,306 ETH/day, so a 26,335 ETH ($50M) exit is under half a day of proven capacity. Steady-state DEX depth is irrelevant at this size — Curve saturates two orders of magnitude earlier.
  2. Read drawdown and exit quality separately. Deep drawdown + intact NAV redemption = rented capital, working machinery: cap the position on retention, not on liquidity. Deep drawdown + gated or discounted redemption = a different venue entirely; exit.
  3. Never set a TVL alert window shorter than the venue’s observed move clock. Sweep the historical series for reachability before picking a window. A threshold that never fires across the worst run in the venue’s history is not conservative — it is absent.
  4. Treat a “buffer below watermark” condition as a level, not an event, when the median sits at the watermark. Alert on a deep absolute floor (here p5 ≈ 4,700 ETH) instead.

This stops applying when: the venue introduces a redemption gate, fee, or pro-rata mechanism (throughput history stops being predictive); the queue’s finalisation dependency changes (ether.fi’s runs on a 3-of-3 oracle quorum — one silent key stalls it); or deposits reverse durably, in which case re-run and re-read retention.

Caveats

We measured pooled ETH, not depositor identity — so “rented capital” is inferred from the shape of the flow, not from cohort analysis of who left. Where we split levered from unlevered, the residual nets out Aave only: as of 2026-08-06 a further 116,593 weETH sits in Morpho Blue (104,312), Fluid (7,047) and Compound v3 (5,234), so any “unlevered base” computed this way is an upper bound on durable spot holdings and the levered share is understated — 72% of supply is lending-market collateral, not 65%. We did not net out validator-exit mechanics, so daily throughput conflates queue finalisation with beacon-chain exit timing. The 24h samples are point-in-time at ~7,200-block spacing, so an intraday spike between samples would be missed — the buffer series in particular is volatile enough that daily sampling understates its true range.

Smallest fact that would falsify the retention conclusion: evidence that a material share of the 1.4M ETH outflow was a single entity’s rotation rather than broad depositor exit. Next-most-useful follow-up: a holder-cohort study on weETH (Dune) splitting the outflow into Aave loopers vs spot holders, which would tell us whether the capital beside us in the loop is the durable part.