NAV & Valuation Methodology
How Nyx computes its shadow NAV — pricing sources, timing, fees, series accounting, and known limitations.
Purpose & Status
Nyx produces a shadow NAV. It reconciles the shadow NAV against the client's fund administrator; the administrator's NAV remains official.
Pricing Sources
Nyx routes every asset to exactly one pricing rung, keyed off its registered asset class — five routes, no others exist:
- →Crypto / stablecoin: CoinGecko daily (00:00 UTC) price, frozen per run.
- →Listed equities, ETFs, funds, and priced commodities/futures: Yahoo Finance daily close, keyed to the registry’s price_symbol override where one is set.
- →Non-USD fiat cash: a daily FX pair rate against USD.
- →USD fiat cash: face value ($1 — the functional currency; definitional, not fetched).
- →Bonds, options, private/illiquid positions, and real assets: manager manual fair-value marks — no market price route exists for these classes. A commodity or futures position without a registered price symbol falls back to the same manual-marks path (never a guessed quote, never carried silently at zero without surfacing as unpriced).
- →Assets that cannot be priced are carried at zero and the run is flagged partial — never a fabricated price.
Valuation policy for manual marks: every fair-value mark carries an explicit provenance record and an age/staleness indicator, and a mark update on a manual-mark-only class routes through the maker-checker dual-control approval workflow before it can affect NAV.
Staleness: quotes are graded against the valuation date; a stale quote is treated as unpriced (fail-safe).
Valuation Timing
The valuation point is the 00:00 UTC snapshot of the valuation date; the valuation date is the only time input, with no intraday cut.
Re-running a historical date reproduces the identical NAV, verified by a SHA-256 hash over the canonical inputs stored on every run.
Ledger
The general ledger is double-entry and append-only at the database layer; corrections are reversing entries only. Every entry must balance exactly, at 8-decimal-place precision, before it can commit. Digital assets are carried at cost in the general ledger, with fair value marked through dedicated control accounts.
Cost Basis / Lot Relief
Cost basis / lot relief methods available: average cost (default), FIFO, or HIFO — configurable per fund. Specific identification is not supported. Disposal history is append-only.
Management Fee
The management fee accrues on pre-fee NAV by default (configurable to a gross or net basis), using an ACTUAL/365 day count, prorated over elapsed days since the last accrual, and accrued at each NAV strike.
Performance Fee
The performance fee accrues against a per-unit high-water mark, with an optional hurdle; the fee base is per-unit NAV net of the management fee. The high-water mark ratchets only at crystallisation (annual or on redemption), and crystallised amounts are banked — never reversed by a subsequent drawdown.
Two-strike sequence: NAV₁ fixes the fee base and fees post; NAV₂ is the reportable post-fee NAV.
Series Accounting
Accounting operates at the subscription-lot level — each lot carries its own units, high-water mark, and fee terms (share-class overrides supported). Investor capital ties to fund NAV within 1e-8 as a fail-closed check on every run.
Equalisation is achieved through per-lot high-water marks; equalisation credits/deficits are not used.
Income Recognition
Staking, reward, and airdrop income is recognised when the manager books the corresponding reconciliation item, at that item's observed price — not accrued over time.
Transfers
Wallet-to-wallet and bridge transfers preserve cost basis and holding period when booked. Pairing the outgoing and incoming legs is a manager action, not automatic. An unpaired in-flight transfer at a valuation point appears as an open reconciliation break.
Trade vs. Settlement
Economic recognition occurs at trade date; redemption cash settlement is a distinct, later-dated step through a redemptions-payable account. General T+n settlement-date accounting is not implemented.
Scope Exclusions
Precision
Exact decimal arithmetic is used throughout — no floating point on money. Banker's rounding is applied; USD is carried at 8 decimal places, quantities at 18. Sums are computed at full precision and rounded once.
Reproducibility & Audit Trail
Every core ledger/NAV/fee lifecycle action emits an event to an append-only audit stream enforced by database-level immutability — updates, deletes, and truncation are rejected for every database role, including privileged service roles.
Known Limitations
- →An asset that cannot be priced contributes zero to gross asset value and the NAV run is flagged partial; fee, capital, and dealing engines refuse to run on a partial NAV. There is no stale-price reserve policy.
- →Non-USD fiat cash is FX-revalued at each strike; non-USD fiat held as an asset position has no FX source in the NAV pricing seam and falls to a manual mark or unpriced.
- →DeFi and perpetual futures are excluded from NAV (see Scope Exclusions above).
- →Transfer pairing and staking-income recognition are manager actions; timeliness depends on the manager’s reconciliation cadence.
- →The standing cost-basis election is fund-wide (average, FIFO, or HIFO); specific-lot identification is available per disposal when booking a reconciliation break, not as a standing method.
- →The audit event stream is append-only and hash-chained from 2026-08; prior rows were retro-chained in (created_at,id) order. Chain heads are periodically Bitcoin-anchored via OpenTimestamps; events since the most recent anchor are not yet externally pinned.
- →Price caching is per-server-instance; historical daily prices are immutable once fetched.