Strategies

A strategy is a bucket of positions, asset legs, holdings, or wallets, measured as one book with its own return series and risk statistics.

Funds rarely report position by position. They report a basis trade, a stablecoin carry book, or an ETH staking sleeve. A strategy groups the positions behind that mandate and computes returns on the bucket's own NAV and flows, so the figures describe the mandate rather than an average of its parts.

What a strategy contains#

Member typeWhat it brings in
WalletEvery position and holding of that address, including ones opened later.
PositionThe whole position, at its engine-owned NAV.
Asset legOne asset of one position (an asset is always identified together with its position).
HoldingA direct token balance in a wallet.
  • Overlaps are rejectedAdding a position and one of its own asset legs to the same strategy is refused, so every member contributes something visible. A wallet plus one of that wallet's positions is harmless and is counted once.
  • Optional benchmarkA strategy can carry one benchmark from the catalog, including a composite. It is used for comparison only and never enters Sharpe or Sortino.
  • Tags and archiveStrategies can be tagged and archived. Archived strategies keep their history but are no longer rebuilt automatically, including when the risk methodology changes.

How the history is built#

Every rebuild recomputes the whole timeline from the earliest member's start date. Members' daily rows are aggregated into one row per day, then the return chain is walked across the bucket's own NAV and flows.

  • Priced on intraday eventsWithin a day, each deposit, withdrawal, or member entry/exit is priced on its own interval, so a large mid-day flow does not distort the day's return.
  • Capital episodesA full withdrawal ends an episode; capital coming back starts a new one. The lifetime TWR chains straight through idle days (which contribute no return), and chaining every episode's return reproduces it.
  • Rebuilt when inputs changeMembership edits, member recomputes, and risk-methodology changes rebuild the strategy from inception.

Returns#

Strategy returns use the same definitions as positions (see Metrics & formulas), applied to the bucket's aggregated series.

TWR and ROI
TWR=∏t(1+rt)−1ROI=PnLNAV0+∑wiFi\text{TWR} = \prod_{t}(1 + r_t) - 1 \qquad \text{ROI} = \dfrac{\text{PnL}}{\text{NAV}_0 + \sum w_i F_i}

TWR is a fraction (0.05 = 5%). ROI is a percentage. PnL is performance P&L: NAV_t − NAV_start − Σ flows.

APR and CAGR
APR=ROI×365DCAGR=(1+TWR)365/D−1\text{APR} = \text{ROI} \times \dfrac{365}{D} \qquad \text{CAGR} = (1 + \text{TWR})^{365/D} - 1

APR is a simple percentage. CAGR is a ratio on the flow-adjusted index and is not gated at one year.

Performance P&L is not the same as the sum of members' realised and unrealised P&L: the member ledger loses the history of members that closed, while the Modified Dietz numerator keeps it.

Risk statistics#

Sharpe, Sortino, maximum drawdown and Calmar use the organisation's risk-free rate and Sortino MAR and the same formulas as positions. Two rules are specific to strategies.

  • Partial days are excluded from the sampleA day on which capital arrived or left mid-day (an inception, restart, or termination stub) still chains into TWR, but it is not a daily observation for Sharpe, Sortino or volatility. A shorter interval would understate variance.
  • Risk reads the Modified Dietz flowsThe index behind drawdown, Sharpe, Sortino, CAGR and Calmar is chained from Dietz flows. The published TWR keeps the classic flow definition for compatibility, so CAGR can differ slightly from annualising the published TWR.

The strategy desk adds descriptive statistics computed on the same daily returns. Each one is empty below 20 observations.

Volatility, VaR and K-ratio
σ=s(r)365VaR95=rˉ−1.645 sK=βse(β)365\sigma = s(r)\sqrt{365} \qquad \text{VaR}_{95} = \bar{r} - 1.645\, s \qquad K = \dfrac{\beta}{\mathrm{se}(\beta)}\sqrt{365}

Each needs at least 20 daily observations. s is the sample standard deviation. VaR_95 is the normal 95% daily loss. K is Kestner's K-ratio (1996): the slope of the log-equity curve divided by its standard error.

StatisticDefinition
Win rateShare of daily returns above zero.
Historical VaRLeft-tail quantile of daily returns (signed).
Skewness / excess kurtosisBias-adjusted sample moments of daily returns.
Drawdown durationDays from the peak of the return index to the maximum-drawdown trough.

Comparing with a benchmark#

The benchmark's stored annual rates are turned into a daily index and laid on the same axis as the strategy's TWR. Both start at 1.0 on the first day both were observed.

Benchmark daily factor and excess
ft=(1+APYt)1/365excess=1+Rstrategy1+Rbenchmark−1spread=Rstrategy−Rbenchmarkf_t = (1 + \text{APY}_t)^{1/365} \qquad \text{excess} = \frac{1 + R_{strategy}}{1 + R_{benchmark}} - 1 \qquad \text{spread} = R_{strategy} - R_{benchmark}

Excess is geometric, over days both series were observed. Days the benchmark did not observe (carried flat) are excluded rather than read as 0% returns. A composite benchmark is a constant-weight blend rebalanced every day, so a gap against a real, drifting portfolio is not pure alpha.

Benchmarks and composites are described in Benchmark & alpha.

Where this lives in the app#

Strategies is a top-level area. Strategies lists every bucket with its returns; Vaults shows vault products and their share-price performance; Strategy Analysis reads several strategies as one book where it is enabled. Some risk statistics are part of the institutional analytics add-on and display a lock until it is enabled.