There is a gap in most research processes between the paragraph in the investment policy statement and the configuration that actually ran the backtest. The mandate says no net short exposure and a 25 percent sector cap. The backtest was run without either, and a memo afterwards asserts the strategy would have complied. That memo is doing work it cannot support.
The alternative is to encode the constraints as conditions in the strategy itself, so the historical simulation is compliant by construction. The result is a weaker headline number and a far stronger position in review, and the difference between the two numbers is itself the most useful output of the exercise.
Four clauses and their machine forms
Most mandates reduce to a handful of clause types. Each has a prose form that sounds unambiguous and a machine form that forces you to answer questions the prose left open.
No short exposure. The machine form is a condition that suppresses entries on the short side, which is trivial. The questions it forces are not. Does a short leg inside a pair count? Does an inverse instrument count? Does a hedge at the portfolio level count against a strategy-level rule? Write the answer down, because whichever one you pick will eventually be tested by a real position.
Sector concentration cap. Prose says no more than 25 percent in one sector. The machine form needs the classification scheme named, the measurement point fixed at either signal time or after execution, and the treatment of drift specified. A position that grows through appreciation into a 27 percent sector weight has not breached anything at entry, and the rule has to say whether it must be trimmed.
Participation ceiling. No more than a stated percentage of average daily volume. The machine form is a size cap computed per instrument per day, using a defined ADV window. Twenty-day and sixty-day ADV give different caps, and in thin names they give very different ones.
Restricted list. A membership test against a list that changes over time. The machine form must use the list as it stood at each date, which means the restricted list needs to be versioned like any other point-in-time dataset. Applying today's list to a three year backtest is the same class of error as a survivor-only universe.

A binding constraint changes the strategy, not just the returns
The instinct is to treat constraints as a haircut applied to an unconstrained result. That framing is wrong whenever a constraint binds often, because a constraint that binds is making allocation decisions.
Measure it directly. For each constraint, count the fraction of rebalance dates on which it was active, and the fraction of candidate signals it rejected. Then read the numbers with a simple scale. Under about 5 percent, the constraint is a boundary condition and the unconstrained result is a reasonable proxy. Between 5 and 25 percent, it is shaping the portfolio and both versions belong in the memo. Above 25 percent, the constraint is a core part of the strategy and the unconstrained backtest is describing something you will never run.
The sector cap is where this shows up most often. A momentum strategy on a US equity universe will concentrate, because momentum is a sector bet a good deal of the time. Cap it at 25 percent and you may find the cap binding on more than half of all rebalances, which means the mandate is running a substantial share of your allocation. That is not an argument against the cap. It is an argument for reporting the strategy as it will actually trade, and for attributing performance to the constrained version so the review conversation is about something real.
Where the constraint has to sit in the pipeline
Placement determines whether a compliant-looking backtest is implementable. There are three positions and they are not interchangeable.
- Pre-signal, as a universe filter. Correct for restricted lists and eligibility rules. The instrument is never a candidate, so no downstream logic has to know about it.
- Post-signal, at sizing. Correct for participation ceilings and concentration caps. The signal is generated, then the size is cut to fit, and the residual demand has to go somewhere explicit: dropped, deferred to the next day, or reallocated to the next candidate. Pick one and encode it, because the three produce different portfolios.
- At execution. Correct for venue rules and order-level limits, and wrong for anything a portfolio manager is accountable for. A constraint enforced only at execution will not appear in the backtest at all, and the simulated portfolio will drift steadily away from the real one.
The most common misplacement is putting a participation ceiling at execution instead of sizing. The backtest fills the intended size, the live system cannot, and the tracking difference gets logged as slippage. It is not slippage. It is a constraint that was never in the model, and it will grow with assets under management, which makes it a capacity problem masquerading as a cost problem.
The evidence pack a reviewer should be handed
When the constrained version is ready, the material that makes it defensible is short and specific.
A binding frequency table with one row per constraint, showing how often it was active and how many candidate signals it rejected. This is the document that answers the question of whether the mandate is running the strategy.
The rejected-trade log. Every signal a constraint suppressed, with the date, the instrument, the constraint, and what that trade would have returned. It is uncomfortable reading when the rejected trades did well, and that is exactly why it belongs in the pack rather than in a drawer. A reviewer who finds it themselves later has a different conversation with you than one who was handed it.
Both versions of the result, with the difference expressed in basis points per year and decomposed by constraint where the interactions allow. If three constraints together cost 180 basis points annually and the sector cap accounts for 140 of it, that is a specific conversation with the client about a specific clause, supported by a number.
And a reconciliation between the constraint definitions in the backtest and the rules in the pre-trade compliance system. These are usually written by different people at different times, and they disagree more often than anyone expects. Line them up clause by clause and confirm the ADV window matches, the classification scheme matches, and the measurement point matches. Where they do not, the backtest is not evidence about the portfolio you are permitted to run, and that discrepancy is far cheaper to find in a research review than in a breach report.