The Four Checks That Say the Portfolio Is Investable

Tam
Tam
·Founder & AI Builder·2026-10-23
Constraint Violations cover

Four assertions, one scan

Four assertions make a portfolio investable: weights sum to one, no weight below zero, no weight above the cap, and a violation count of zero. Two assets sit exactly at 35% and two at zero, which is what binding constraints look like.

Before any question about optimality, a portfolio has to be investable. Four checks establish that.

CheckResult
Weights sum to 11.0000
No weight below 0%0.0000
No weight above 35%0.3500
Constraint violations at the optimum0

The four checks look like rounding; they are the checks that catch the two ways a constrained optimizer fails without erroring.

Sum to one

A portfolio that sums to 1.0001 is 0.01% invested in nothing. It sounds like a rounding artifact and it is, until the portfolio is leveraged 20 times and the uninvested sliver is a real cash balance nobody is managing.

The tolerance matters. Too tight and a solver that is accurate to 10⁻⁹ fails; too loose and a 0.5% cash drag passes. The workbook uses a tolerance that a converged solver clears by several orders of magnitude. That is the same additivity demand as the key-rate additivity check, where the segments have to sum back to the whole.

MODEL sheet, constraint violations: weights sum, lower bound, upper bound and a violation count of zero
The four assertions that make the portfolio investable. Two assets sit exactly at 35%, which is what a binding cap looks like.

The bounds

Two assets sit exactly at 35%: government bonds and property. Two sit exactly at zero: emerging markets and corporate bonds.

Those four positions are the interesting output. An optimizer that produces interior weights everywhere is one whose constraints are not binding. On a six-asset problem with a hard cap, that usually means the bounds are not being applied.

A weight of exactly 0.3500 and exactly 0.0000 is what complementary slackness looks like from the weights side, and the KKT article is the same statement from the multipliers side.

The violation count

One number: the count of constraints violated at the optimum. It must be zero.

Why have it when the individual checks already cover the same ground? Because the count is the check that survives when the constraint set changes. Add a minimum holding in cash, or a sector limit, or a turnover budget, and the individual checks need rewriting. The count does not.

That is the difference between a check that tests a model and a check that tests a rule. The four individual checks are the rule; the count is the model's compliance with whatever rules it was given.

What the scan does not check

That the bounds were the intended ones. A 35% cap is an input. The workbook checks the cap is respected, not that 35% is the right number.

That the constraints are jointly feasible. Every constraint can be individually satisfied while the set is infeasible: a 35% cap with a 40% minimum, for example. A feasible answer proves the set was feasible for this data, which is useful and not the same thing.

That the solution is unique. Multiple optimal portfolios can exist, and which one a solver returns depends on its starting point. The constraints cannot distinguish them.

Why this belongs next to KKT

Feasibility and optimality are different claims and they fail differently. A portfolio can be perfectly feasible and badly suboptimal. Early stopping produces the first case; a specification error produces the second, where a portfolio is optimal for the constraints it was given and infeasible for the ones actually intended, which is a specification error.

Running the four checks and the six KKT conditions together covers both. Running either alone leaves a class of failure unexamined.

Feasibility is only half the claim; optimality is the other half, in the KKT article. A different objective on the same constraint set is risk parity, and what the constrained weights earned is in attribution. The portfolio hub holds the full 24 checks.

Each bound is written as a check against the weight cell in Mica, so a solver that stops early leaves a failing row. A check beside the input is the Excel pattern the series uses to keep feasibility visible.

This model-validation series uses synthetic cases for method demonstration. It is not investment, tax or legal advice.

Last updated: 2026-11-01 · Internally checked; not independently audited. · Methodology & review

Tam
Tam

Tam is the Founder & CEO of MINDLINK TEC LTD, an AI creator and product builder building creative AI tools including Mica and Bobi.


Mica

Local AI for smarter Spreadsheets. Automate Excel workflows using natural language.

Contact

Email: service@mindlink.tools

Company: MINDLINK TEC LTD

© 2026 MINDLINK TEC LTD. All rights reserved.