# Accounting, Fees & Fund Flows

> How share-based accounting and NAV reporting work, the vault fee schedule, and how capital flows from deposit to strategy and back through redemptions.

## Share Accounting and NAV Reporting

Upshift vaults use share-based accounting: `price per share = total underlying assets ÷ total shares in circulation`. Deposits mint shares at the current ratio and withdrawals burn at the current ratio, so neither impacts the vault share price.

Example:

1. A vault holds 100,000 USDC against 100,000 shares (ratio 1.0)
2. A user deposits 1,000 USDC and receives 1,000 shares — ratio unchanged.
3. The strategy then earns 500 USDC over a week; assets become 101,500 against 101,000 shares, so the ratio rises to ≈1.00495.
4. Redeeming 1,000 shares now returns ≈1,004.95 USDC.

### What curators must respect when reporting NAV

- **Max percentage change:** each NAV update is bounded by a strict ceiling and floor on the share-price move per cycle. This caps damage from faulty oracles or erroneous reports and kills latency arbitrage by MEV snipers. Plan large markups/markdowns across multiple cycles.
- **High watermark:** performance fees only accrue above the previous peak share price.
- **Validation:** in the Fordefi model the strategist proposes NAV and Upshift's pricing engine validates it; in the subaccount model Upshift computes NAV directly from whitelisted integrations, options mark-to-market, and CeFi APIs.

## Fees

| Fee | Mechanics |
| --- | --- |
| Management fee | Accrued against TVL via `chargeManagementFee()`. Set per vault; changes behind 24h timelock. |
| Performance fee | Taken on yield above the high watermark. |
| Instant redemption fee | Premium for bypassing the epoch queue. |

## Fund Flows

### Fund Flow: From Deposit to Strategy

A deposit travels end-to-end from the depositor through the vault contract to the curator's strategy: the deposit and share mint (and the liquidity buffer hold-back) happen on the vault contract, then the deployed capital sits on the subaccount and feeds back through NAV reporting. Two properties matter to curators: deposits and withdrawals never change the share price (only yield does), and capital reaches the curator only after the operator pushes it with `depositToSubaccount()`.

![Eight-step fund flow: deposit, share mint, buffer retained, capital pushed to the subaccount, curator deployment, yield accrual, NAV report, share price rise](/images/curators/fund-flow-deposit-to-strategy.avif)

The liquidity buffer is a configurable percentage held back in the vault so instant redemptions never force a strategy unwind. Curators should treat deployable capital as TVL minus buffer minus pending redemptions, not raw TVL.

### Fund Flow: Redemptions

Redemptions follow one of two paths. The standard path is epoch-based: `requestRedeem()` queues the request and returns a claimable epoch; the operator settles the epoch in batch; the holder (or anyone, on their behalf) calls `claim()`. The instant path (`instantRedeem()`) bypasses the queue for a fee and is served from the liquidity buffer.

![The epoch-based redemption path (request, operator liquidity prep, claim) against the instant path (instantRedeem paid from the liquidity buffer)](/images/curators/redemption-flows.avif)

#### Curator obligations around redemptions

1. Monitor the pending-redemption book for each upcoming epoch. Upshift offers API endpoints and a curator-specific dashboard for easier management of vault liquidity.
2. Return capital with enough lead time for the operator to call `withdrawFromSubaccount()`.
3. Size the buffer to absorb expected instant-redemption volume.
