# Accounting — NAV proposals and settlement \[Run the NAV cycle: propose, settle, verify]

:::info
In Railnet smart contracts, an Advanced Strategy is implemented as a **Specialized Vehicle**.
:::

A NAV cycle keeps share pricing current and settles the pending request queues. The valuation manager proposes a value, the Strategy confirms and settles it, so no single party both prices the vault and finalizes the price. [Vault 7540 mechanics](/strategies/advanced/vault) covers the contract surface behind each call.

## Run a cycle

:::steps
### Check validity

`isTotalAssetsValid()` returns `true` while the current NAV is fresh. The valuation manager cannot propose until it expires, so if you need a cycle now, the Strategy calls `expireTotalAssets()`. That immediately disables sync operations.

### Prepare liquidity

The Strategy wallet must hold enough liquid assets to cover pending redemptions. If it does not, the NAV is still confirmed and deposits still settle; the redemption side simply does not execute, and nothing reverts.

### Propose

The valuation manager calls `updateNewTotalAssets(newTotalAssets)`. This snapshots pending requests, creates the epoch boundary, and stages the value. It reverts with `ValuationUpdateNotAllowed` if the NAV is still valid, or `GuardrailsViolation` if the price-per-share move exceeds the configured bounds; the Security Council can bypass bounds with `securityCouncilUpdateTotalAssets()`.

Persist the exact `newTotalAssets` value. Settlement must pass it identically.

### Settle

The Strategy calls `settleDeposit(newTotalAssets)` to settle both queues, or `settleRedeem(newTotalAssets)` to skip the deposit queue. Settlement finalizes the NAV, mints management and performance fee shares, records the epoch's entry and exit rates, moves deposited assets from the Silo to the Strategy, and pulls redemption assets back for claiming when liquidity allows.

### Verify

`totalAssets()` matches what you finalized and `isTotalAssetsValid()` is now `true`, which reopens the sync window.
:::

:::warning
Settlement runs once per cycle. Finalizing clears the staged value, so a redemption settlement that failed on liquidity cannot be retried — you run a full propose-and-settle cycle again, fee logic included.
:::

## Liquidity during the sync window

Async redemptions give you until the next settlement to unwind positions. Sync redemptions do not: while the window is open a shareholder can pull assets straight out of the Strategy wallet, so the idle balance has to hold continuously.

Three levers when it runs low: `expireTotalAssets()` closes the window immediately and enables a new cycle; `setSyncMode(SyncDeposit)` or `setSyncMode(None)` disables sync redeems without expiring the NAV; or let the lifespan run out.

## Delegating the proposal

The valuation step can go to a third-party NAV service: the vault owner calls `updateValuationManager(serviceWallet)` and that wallet proposes on its own schedule. `updateNewTotalAssets()` is gated by `onlyValuationManager`, not the access lists, so the service wallet needs no allowlist entry.

The Strategy still settles, and can let several proposals pass before doing so. Each call overwrites the staged value, which then stays until a settlement consumes it. A proposal alone does not reopen the sync window; only settlement refreshes the NAV expiration.

## Next steps

<Cards>
  <Card title="Vault 7540 mechanics" description="The contract surface behind each call." icon="vault" to="/strategies/advanced/vault" />

  <Card title="Operate an Advanced Strategy" description="Route protocol calls through the policy engine." icon="terminal" to="/strategies/advanced/operate" />

  <Card title="Policy engine" description="What the asset manager may execute." icon="shield-half" to="/strategies/advanced/policy-engine" />
</Cards>
