Transparency is a feature. This page explains what return attribution measures and why we compute it this way — in plain terms. The precise formulas and numeric conventions are documented in our internal methodology; the summary here is deliberate, not an omission.
Return attribution splits a portfolio's total return into additive per-asset pieces, so you can see how much each holding contributed to the whole. This is contribution-to-return: it needs no benchmark and is not a Brinson-style allocation/selection attribution. Over a single period the split is simply each asset's weight times its return; across many periods we use a linking method so the per-asset pieces still add up exactly to the portfolio's compounded total.
For benchmark-relative sector effects (allocation, selection, and interaction) linked across monthly periods, see the linked Brinson methodology — the PORT Attribution tab's default.
Each asset's contribution is its share of the portfolio times its return for the period. Because the portfolio return is just the weighted sum of its holdings, these contributions add back up to the total return with no leftover residual. A holding that lost money contributes a negative number, and a short position flips the sign. The figure is signed and unannualized — it is expressed in the frequency of the returns you supplied. There must be at least one holding to split, and the weights and returns must line up one-for-one.
Simply adding up each period's single-period contributions does not reconcile to the compounded total, because compounding grows returns geometrically rather than arithmetically. To fix this we apply Carino logarithmic linking, which gently rescales each period's contributions with per-period and total smoothing factors so that, once linked, the per-asset pieces sum exactly to the compounded multi-period return — leaving no residual. A period with no gain or loss is handled cleanly (its linking factor simply has no effect), and with only one period the method collapses back to the plain single-period split. Contributions remain signed and unannualized.