> For the complete documentation index, see [llms.txt](https://docs.upshift.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.upshift.finance/upshift-vault-curation/accounting-fees-and-fund-flows.md).

# Accounting, Fees & Fund Flows

## 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 impact the vault share price.

Example:&#x20;

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.&#x20;
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.&#x20;
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 the August pricing engine validates it; in the subaccount model August computes NAV directly from whitelisted integrations, options mark-to-market, and CeFi APIs.

## Fees

<table data-header-hidden><thead><tr><th width="205.32421875"></th><th width="532.0703125"></th></tr></thead><tbody><tr><td><strong>Fee</strong></td><td><strong>Mechanics</strong></td></tr><tr><td>Management fee</td><td>Accrued against TVL via chargeManagementFee(). Set per vault; changes behind 24h timelock.</td></tr><tr><td>Performance fee</td><td>Taken on yield above the high watermark.</td></tr><tr><td>Instant redemption fee</td><td>Premium for bypassing the epoch queue.</td></tr></tbody></table>

## Fund Flows

### Fund Flow: From Deposit to Strategy

The diagram below traces a deposit end-to-end. 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()`.

<img src="/files/W9RRRWGPlOEOm77RDYFx" alt="Deposit to strategy fund flow" height="323" width="624">

Figure 1: Deposit lifecycle. Steps 1–4 happen on the vault contract; steps 5–8 happen on the subaccount and feed back through NAV reporting.

The liquidity buffer (step 3) 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.

<img src="/files/JRgjnil1uK2TJq6nhuUR" alt="Redemption flows" height="307" width="624">

Figure 2: Epoch-based vs. instant redemption paths.

#### 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.&#x20;
2. Return capital with enough lead time for the operator to call withdrawFromSubaccount
3. Size the buffer to absorb expected instant-redemption volume.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.upshift.finance/upshift-vault-curation/accounting-fees-and-fund-flows.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
