Five risk-adjusted measures are already available from the performance-measurement work: Sharpe, Treynor, Jensen's alpha, the information ratio and M². Three more complete the set, and each exists because the first five share a blind spot.
How is the Sortino ratio calculated?
The Sortino ratio replaces total volatility with downside deviation, on the argument that upside volatility is not a thing investors want less of. Fix a minimum acceptable return, MAR, and compute
downside deviation = sqrt(sum of min(r_i - MAR, 0)^2 / n), then Sortino = (mean r - MAR) / downside deviation
Two conventions have to be stated every time or the number is not reproducible. The first is the MAR: zero, the risk-free rate and an actuarial target are all in use and they give materially different answers. On the twelve-quarter series, a MAR of 1.00 percent per quarter gives an annualised Sortino ratio of 0.8822 and a MAR of zero gives 1.6240, from identical data. The second is the denominator, and three of them are in circulation. Dividing the sum of squared shortfalls by the number of periods, n, is the standard construction. Dividing by n − 1 treats the shortfalls as a sample. Dividing by the count of shortfall periods, which some vendors do, is a different statistic again, and it runs in the harsh direction rather than the kind one, because a smaller divisor raises the deviation and lowers the ratio. At a MAR of 1.00 percent the twelve-quarter portfolio has 5 shortfall quarters, and the three divisors give annualised downside deviations of 7.708, 8.051 and 11.941, so the same twelve returns support Sortino ratios of 0.8822, 0.8447 and 0.5695. State your convention before anyone asks.
Advertisement
What is maximum drawdown?
Maximum drawdown answers the question a client actually asks, which is how far down did it go. Build the wealth index, track the running peak, and take the largest percentage fall from a peak to a subsequent trough. Two companion figures matter as much as the depth: drawdown duration, the time from peak to trough, and recovery time, the time from trough back to the old high. A 20 percent fall recovered in two quarters and a 20 percent fall recovered in five years are not the same experience, and only the second one gets a manager fired.
The frequency of the data is not a detail here. A maximum drawdown computed from quarterly returns is a lower bound on what the client lived through, because it cannot see any trough that occurred and reversed inside a quarter. Worked Example 2's portfolio shows a maximum drawdown of 8.90 percent on quarterly data; the daily figure over the same three years would certainly be larger, and a factsheet quoting the quarterly number without saying so is quoting the friendliest available version.
What do upside and downside capture show?
Upside and downside capture are the most direct statement in the whole toolkit of whether excess return was skill or leverage. Split the periods by the sign of the benchmark's return. Upside capture is the manager's geometric mean return in up-benchmark periods divided by the benchmark's own geometric mean in those periods, as a percentage; downside capture is the same computation over down-benchmark periods. The capture spread is upside capture minus downside capture, and it is the number to read first.
The reason is that beta produces capture ratios above 100 on both sides in roughly equal measure, so it produces a capture spread near zero or negative. Skill produces asymmetry. A manager at 110 upside and 85 downside has a capture spread of +25 and is doing something a leverage dial cannot reproduce. A manager at 130.67 upside and 157.95 downside has a spread of minus 27.29 and is running a levered index fund whatever her marketing says, and Worked Example 2 shows exactly that fund, whose beta of 1.392 and negative Jensen's alpha say the same thing in two other languages. Three measures agreeing is worth more than any of them alone.
{
"skill": "Screening a manager universe on active share, active risk and capture, then verifying the shortlist by hand",
"use": "Have an assistant write the code that computes active share from two holdings files, tracking error from a return series, and upside/downside capture with an explicit up-market rule, over a whole universe of funds at once, so your own time goes on the four or five funds that survive rather than on the arithmetic for four hundred.",
"tools": ["Chat assistants with code execution - Claude, ChatGPT, Gemini", "Python: pandas for the holdings join and the return series", "The fund's own disclosed holdings file and the index provider's constituent file as the two primary sources"],
"prompt": "I have two CSV files: fund_holdings.csv (columns: isin, name, weight_pct, as_of_date) and index_constituents.csv (columns: isin, name, weight_pct, as_of_date). Write Python that (a) outer-joins them on ISIN, filling missing weights with zero, (b) asserts each weight column sums to 100 within 0.05 and raises if not, (c) computes active share as half the sum of absolute weight differences AND as one minus the overlap, and asserts the two agree to 1e-9, (d) reports the ten largest active weights by absolute size, and (e) computes across-sector active share from a supplied sector column. Print the as_of_date of both files in the header of the output. Do not fill missing sectors silently.",
"verify": "Recompute active share by hand on the ten largest active positions and confirm the partial sum is consistent with the total. Check that both weight vectors sum to 100 before believing any output, because an active share computed on a holdings file that sums to 97 percent is wrong by three points and nothing in the code will say so. Trace both files to their primary sources, the asset manager's own disclosure and the index provider's own constituent list, and Match the two as-of dates: a fund file from month-end against an index file from a quarter earlier manufactures active share out of index reconstitution. Date-check the holdings snapshot against the return window used for tracking error, and Cite both files with their pull dates. An active share quoted without a date is not a measurement.",
"diy": "You must be able to compute active share, the overlap identity and the sector split with a calculator on a fourteen-name table, which is Worked Example 1, and you must be able to say why a 64 percent active share on a ten-name benchmark is aggressive while the same number on a five-hundred-name benchmark is ordinary. The code cannot tell you that, and a screen calibrated on the wrong thresholds rejects the right managers.",
"market": "IN"
}