IMLInvestment
Model Library

Implementation contracts / v1.0.0

Two-sided and one-way turnover

Measure traded capital fractions from aligned drifted and target weights under a stated convention.

Synthetic educational references. Not a fitted investment strategy, forecast, provider model or client return. First publication: 2026-10-16. Model and engine version 1.0.0.

Calculation contract

trade_i = after_i - before_i; gross = sum(abs(trade_i)); one_way = gross/2
Version 1.0.0 input contract
InputAllowed valuesMeaning
before2-50 nonnegative weights summing to oneDrifted pretrade weights at the measurement time
afterSame-length weights summing to onePosttrade targets on the same NAV basis

Method and interpretation

Moving 60/40 to 40/60 sells 20% of NAV in one exposure and buys 20% in the other. Gross traded weight is 40%; the half-sum convention reports 20% one-way turnover. Both are retained because cost formulas and reports can use different denominators.

The before vector must describe holdings immediately before the rebalance. Comparing today with an older target omits price drift and can understate or overstate the actual rebalance. An asset-order mismatch can also create fictitious trades even when totals look correct.

Where the reference stops

The half-sum convention presumes a fully invested, self-financing comparison on one NAV basis. External flows, leverage changes, cash accounting and derivatives require a richer trade ledger. The card never silently normalizes weights to hide those differences.

Published synthetic inputs

{
  "before": [
    0.6,
    0.4
  ],
  "after": [
    0.4,
    0.6
  ]
}

Frozen calculation output

{
  "trades": [
    -0.19999999999999996,
    0.19999999999999996
  ],
  "gross_traded_weight": 0.3999999999999999,
  "one_way_turnover": 0.19999999999999996
}

Both vectors use the same pretrade NAV and asset order, sum to one, and exclude external flows. before means drifted pretrade weights, not an earlier target.

Verification coverage

  • No trade, full rotation and partial balanced reallocation.
  • Sum-one, alignment and unsigned-weight constraints tested.

Unit and independent-reference checks test arithmetic and rejection rules, not future investment performance.

Method references

Read the assumptions in context

Allocation references

Turnover definitions: count the trades before comparing the number

Distinguish gross trading, half-turnover, cash movements and drift using a fully reconciled synthetic rebalance.

Allocation references

Transaction cost units: from a quoted rate to portfolio drag

Reconcile basis points, trade notional, ticket fees and portfolio-level drag without confusing a cost assumption with observed execution.