The Analyst's Path

Active portfolio construction

Active portfolio construction is the optimisation behind an active book, whether or not anyone writes it down, and writing it down is how you find out what your constraints are doing. The objective is a trade between forecast active return and forecast active risk. Each binding constraint lowers the objective, and on a 30-name book a 2.50 percentage point position cap and a 4.50 point sector band cut the ex-ante information ratio from 0.369872 to 0.320226.

6 min readPart of Index Construction, ETFs and the Mechanics of Passive and Active EquityOpen in course mode

Advertisement

An active book is the solution to an optimisation whether or not anyone writes it down, and writing it down is how you find out what your constraints are doing.

The objective is a trade between forecast active return and forecast active risk. With a the vector of active weights (portfolio minus benchmark), α the vector of alpha forecasts and Σ the covariance matrix, the manager maximises a'α - (λ/2) a'Σa subject to whatever the mandate says. The risk aversion λ works less as a preference than as a translation. It is the dial that converts a tracking-error budget into a portfolio, and every value of it traces out one point on a frontier of expected active return against tracking error.

Which three numbers describe an active portfolio?

Three quantities describe the answer, and a risk report that gives you one without the others is hiding something.

Active share is 0.5 × Σ|w_P - w_B|, the fraction of the portfolio that differs from the benchmark. It is a measure of how different the book is, and it says nothing about how risky the difference is. A book that swaps every constituent for a same-sector, same-beta neighbour can have a high active share and almost no tracking error.

Ex-ante tracking error is sqrt(a'Σa), the forecast volatility of the active return. It answers the risk question that active share does not, and it depends entirely on the covariance matrix, which is a model and can be wrong.

The ex-ante information ratio is the expected active return divided by the ex-ante tracking error, and it is the only one of the three that is a judgement about quality rather than a description of shape.

Advertisement

What do constraints cost an active portfolio?

Now the constraints, which is where the arithmetic earns its keep. Every real mandate carries some of these: long-only, fully invested, a cap on each position's active weight, a band on each sector's active weight, a beta band, a liquidity floor, a minimum number of holdings. Each one removes portfolios from the feasible set, and since the unconstrained optimum was optimal, every constraint that binds must reduce the objective. That is the same argument the branch's optimisation node makes about allocation constraints, applied one level down.

The reduction is computable, and the honest way to report it is as an information-ratio give-up rather than a return give-up, because a constraint that cuts expected return by cutting risk may be cheap or free. On the 30-name book in Worked example 8, a 2.50 percentage point cap on each position's active weight and a 4.50 point band on each sector's takes expected active return from 164.2041 to 119.7338 basis points and tracking error from 443.9491 to 373.9034, so the ex-ante information ratio falls from 0.369872 to 0.320226. The constraints cost 44.4703 basis points of expected active return and about 0.0496 of information ratio.

Two findings from that exercise generalise well beyond it. The first is that the binding constraint is usually not the one the committee argues about: the position cap binds on 14 of the 30 names while only one of the ten sector bands binds. The second is that a long-only book's largest active positions are frequently the names it does not own. The biggest active weight in the constrained book belongs to no holding at all. It is a negative 5.9078 percentage points on the index's second-largest constituent, which the manager has simply left out. A position limit written to cap overweights does nothing about that, and a great many mandates are written exactly that way.

Can a sector band be infeasible?

There is also a feasibility question that a risk system will answer and a committee will not think to ask. A sector band can be arithmetically impossible given the name cap and the names held. In Worked example 8 the manager holds three Financials names whose combined benchmark weight is 6.159779%; at the position cap their maximum combined weight is 13.659779%, against a sector benchmark weight of 17.9117%, so the tightest achievable Financials underweight is 4.251943 points. A mandate demanding sector weights within 4.00 points would be infeasible rather than merely demanding, and the only fixes are a wider band, a higher name cap or more Financials names.

{
  "skill": "Building and stress-testing a constrained active-equity optimisation",
  "use": "Once you can compute active share and ex-ante tracking error by hand on a small book, have a coding assistant write the constrained optimiser, then have it produce a second, independent implementation of the objective and the constraint set so the two can be diffed before either result is shown to anyone.",
  "tools": ["A coding-focused chat assistant or editor copilot", "Python: NumPy for the covariance algebra, SciPy or cvxpy for the constrained solve", "A spreadsheet for the by-hand reconciliation on a five-name cut of the same problem"],
  "prompt": "Here are benchmark weights, alpha forecasts, factor loadings, factor volatilities and idiosyncratic volatilities for a 50-name universe, and a list of 30 names the manager holds. Maximise a'alpha - (lambda/2) a'Sigma a over the held names subject to weights summing to one, weights non-negative, each name's active weight at most +2.50 percentage points, and each sector's active weight within +/-4.50 points. Report active share, expected active return, ex-ante tracking error and the ex-ante information ratio, and separately assert that (a) the weights sum to 1 within 1e-10, (b) no bound is violated by more than 1e-9, and (c) the solver reported convergence. Then re-solve with the constraints removed and report the difference in every statistic.",
  "verify": "Do not accept a solver's answer because it returned a number. Check the reported convergence flag, then check every constraint yourself against the returned weights, because an interior-point solver will return a slightly infeasible point without saying so and a violated bound is invisible in a summary table. Before trusting a constrained result, prove the constraint set is feasible at all by computing the arithmetic bound directly, the way the Financials calculation above does. Recompute the active share and the tracking error on a five-name cut by hand. Cite the source and the date of every covariance input, and state the risk model's estimation window; a tracking error is a forecast from a model, not a measurement.",
  "diy": "You must be able to compute active share from a weight vector, tracking error from a two-factor model, and the information ratio from the two, with a calculator. Worked examples 4 and 8 are the drills. An optimiser will tell you what the constrained portfolio is; only you can tell a committee that its sector band is infeasible and why, and that judgement is what the gate rewards.",
  "market": "US"
}

Advertisement

Part of the course

This page is part of Index Construction, ETFs and the Mechanics of Passive and Active Equity (AA1.08), in Phase 12: Finance Plus, AI and the quant-code track. The module's flashcards and its quiz are in the app.