Utilization Metrics
How to work out where the vault's money is sitting at any given moment.
Everything here comes from
vault.cached_nav_usdcand the position fields. There are no view helpers to call; just read theVaultaccount directly.
Buckets
Everything the vault holds falls into one of these:
Liquidity buffer
Vault USDC ATA balance — sized to liquidity_buffer_bps × cached_nav_usdc / 10_000 target
Reserve fund
reserve_fund_usdc (productively lent on Kamino)
Parked capital
Kamino USDC reserve via lend_idle_usdc
jitoSOL spot leg
jitoSOL held unlevered (normal basis) — spot holdings × oracle jitoSOL price
Perp-venue margin
USDC margin on Phoenix via Ember (normal basis)
Perp PnL
Settled funding + mark-vs-entry PnL on the open position
Derived ratios
const buffer = vaultUsdcAtaBalance; // off-chain query
const target = vault.cachedNavUsdc.muln(vault.liquidityBufferBps).divn(10_000);
const bufferUtilBps = Number(buffer.mul(10_000n).div(target.toBigInt())); // 10_000 = exactly on target
const queuePendingRatioBps = vault.queuePendingUsdc * 10_000n / vault.cachedNavUsdc;
const navPerShare1e9 = vault.cachedNavUsdc * 1_000_000_000n / vault.totalShares;bufferUtilBps
Whether the buffer holds enough to cover instant withdrawals. 10,000 means exactly on target. Below 9,000 it's underfunded and the keeper should move more capital into it.
queuePendingRatioBps
How much USDC is owed to queued withdrawals, as a share of NAV. If this stays above 10%, the keeper needs to unwind position to free up cash.
navPerShare1e9
The live share price, scaled by 1e9. Drifts up with carry, and only ever starts at par on the very first deposit.
When to alert
bufferUtilBps < 5_000 for > 1h
The buffer is under half its target, so instant withdrawals may start failing
queuePendingRatioBps > 1_500 for > 6h
The queue is over 15% of NAV; the keeper should unwind position faster
Perp margin or jitoSOL value drifts > 5% from what the mode implies
Something is wrong with margin, the oracle, or settlement. Investigate.
Related
NAV & share pricing — full NAV formula
Monitoring — what to watch
Withdraw — instant vs. queued paths
Last updated