← Back to blog index · 2026-05-10
Per-Symbol Floor Tuning — Why fUSD ≠ fUST (and Same Settings Lose 30-100% Yield)
fUSD and fUST have completely different market structures. fUSD spike-rich, fUST flat. Real data + Yieldsforge's 2026-05 per-symbol floor upgrade that lifted fUST APY from 7.6% to 17.6%.
If you run both fUSD and fUST on Bitfinex with the same strategy parameters, at least one symbol is leaving 50-100% yield on the table.
This post explains why, and shows the empirical 2.3x improvement Yieldsforge got after switching to per-symbol floors in May 2026.
TL;DR
- fUSD candle highs frequently reach 12-24% (spike-rich) → high floor pays off
- fUST candle highs mostly 5-12% (no spikes) → high floor never fills, must lower
- Same 6/8/12/15% floor: fUSD 32.88% APY, fUST only 7.61%
- Drop fUST to 4/5/7/9% floor: jumps to 17.62% APY (2.3x)
Two Symbols, Two Market Structures
Chart: 30d (long bucket) candle high distributions for fUSD vs fUST in 2026 Q1:

Clearly:
- fUSD high median ~10%, p90 ~22% — most weeks have a chance to fill at 12%+
- fUST high median ~7%, p90 ~14% — spikes too rare; 12% floor sits empty most of the time
Why fUSD and fUST Differ Structurally
fUSD is “USD” funding (requires wire transfer to Bitfinex), users skew institutional / large. Borrowers are real BTC leverage traders with stable demand and can pay high rates.
fUST is “USDT” funding, users skew retail + automated strategies. Borrowers are short-term speculators, rate-sensitive, won’t pay too high.
Result:
- fUSD: high rates + high volatility (institutional demand + spike opportunities)
- fUST: low rates + flat (retail demand + competition compresses floor)
Yieldsforge’s Pre-2026-05 Mistake
We previously used the same floor across both symbols:
- All: short 6%, mid 8%, long 12%, xlong 15%
This set was the global walk-forward optimum across 5.5 years of data. Problem: 5.5y includes 2020-2021 bull market (avg funding rate 30%), biasing the optimum toward fUSD’s spike-rich regime.
Real 2026 results:
- fUSD: 32.88% APY (great)
- fUST: 7.61% APY (terrible), util 54% (half the capital sleeping)
54% utilization means the bot kept waiting for 12-15% rates while market only offered 4-7%, so half the capital sat idle earning $0.
After Per-Symbol Switch
Full 2026 Q1-Q2 sweep across 5 floor combos:
preset fUSD APY fUST APY
production (6/8/12/15) 32.88% 7.61% ← previous
high (5/7/10/12) 32.79% 8.89%
moderate (4/6/8/10) 28.21% 9.58%
moderate (4/5/7/9) 18.98% 17.62% ← fUST sweet spot
low (3/4/6/8) 12.87% 11.11%
Clear story:
- fUSD optimal at “production” (6/8/12/15) — fUSD spikes worth waiting for
- fUST optimal at “moderate” (4/5/7/9) — fUST no spikes, lower floor wins on fill rate
So 2026-05 we shipped per-symbol defaults:
- fUSD balanced: 6/8/12/15% (kept)
- fUST balanced: 4/5/7/9% (lowered)
Real Production Data — fUST Util 54% → 88%
This is real production data:
fUST old floor (6/8/12/15):
Last 30d util: 54%
Last 30d net APY: 7.61%
Low utilization, few fills, terrible APY
fUST new floor (4/5/7/9):
Last 30d util: 88%
Last 30d net APY: 17.62%
High utilization, frequent fills, doubled APY
Floor change only, nothing else touched. fUST yield 7.6% → 17.6% (2.3x).
Why Other Bots Don’t Do Per-Symbol
A structural oversight:
- Coinlend / Cryptolend / others mostly use “one strategy fits all” approach
- Dev cost: per-symbol needs two backtest runs, two parameter validations
- UI complexity: do users decide fUSD vs fUST settings? Or auto?
Yieldsforge’s solution: per-symbol applied automatically by default (no user thought required), advanced users can override in settings.
What You Can Do
If you run manually:
- fUSD: keep 6/8/12/15% floor, wait for spikes (matches Yieldsforge balanced)
- fUST: use 4/5/7/9% floor, fill faster (matches Yieldsforge balanced)
If you use another bot (Coinlend etc.):
- Most don’t have per-symbol floor option. Consider switching or manually patching (annoying)
If you use Yieldsforge:
- Already automatic per-symbol. Nothing to do.
What’s Next — Adaptive Floor (Phase 1 Shipped)
We’ve launched the adaptive floor program, target: floor dynamically adjusts to market regime:
- Collect 30d of BookSnapshot data (started 2026-05)
- Compute rolling 30d median bid
- floor = max(min_floor, median × multiplier)
After 30 days of data accumulates, opens for per-user opt-in. In theory beats static per-symbol floor.
Related Reading
- 5.5-year walk-forward backtest results
- Multi-bucket vs single-period strategies
- Prepayment hazard explained
- How to pick the 4 funding periods
- Why Bitfinex Funding beats DeFi yields — the hub
Yieldsforge 7-day free trial →
Disclosure: I’m the developer of Yieldsforge. Empirical data from production worker, April-May 2026. Not investment advice.