Optimize searches for fund substitutions inside the allocation you already chose. It can change the ticker saved in a fund slot; it never changes slice percentages or fund splits.
If the selected model has no recorded allocation or its allocation has no slices, Optimize says which part is missing and offers Open Target Models. Add the version, slices, and funds there, then return to the still-selected Optimize page; the recovery does not invent an allocation or skip model setup.
The three stages
- Choose model and objective. The page optimizes the model version shown as Effective today, using the same dated-version rule as Target Models. If every version is future-dated, it instead names the First scheduled allocation and says No version in force. Run and Apply then target that scheduled allocation; the page never pretends it is effective. Start with a plain objective: balanced risk and return, favor growth, limit downside, or stress resilience.
- Confirm candidate rules. Each ordinary slice starts with suggested candidate categories taken from its currently saved funds plus narrow, broad-market metadata matches where the saved vocabulary is too specific (for example Mid/Small or International). Sector-like categories are not inferred from generic dimensions. The readiness line counts category matches in the chosen ETF / broker universe; price, minimum-history and still-being-quoted eligibility is checked on Run. You can use the complete manual category list, choose a different universe, or exclude a slice. Ladder, self-directed, and fundless slices are not silently treated as fund-substitution candidates.
- Run, verify and apply. Choose an evidence preset and Fast or Thorough, then optimize the whole model. The timeline keeps the training period separate from the evaluation dates and says when all-history consistency controls prevent a strict holdout claim. After a run, the result and proposed swaps move above configuration so the decision sequence is proposal → whole-model comparison → explicit Apply.
Compare is required; Apply is still your decision
The training result is selection evidence, not verification. Compare on evaluation data measures the current and proposed whole model over the evaluation window and decomposes the return gap by slice and fund. Apply stays locked until that exact proposal has a completed comparison. Editing a swap, changing evaluation dates, changing a run input, or crossing into a different effective version invalidates the evidence instead of reusing it.
Apply is the only write. It remains a separate click because a favorable historical comparison is evidence, never a guarantee. Every reviewed fund substitution is sent as one batch: the app rechecks the exact model version, rebalance cadence, slice weights and every saved fund row from the comparison, plus the addressed source fields and each replacement in Ticker Metadata, before it writes anything. All substitutions commit together or none do.
If a database write fails, the app confirms that no substitutions were saved and keeps the unchanged, compared proposal available for a safe retry. If the model changed after comparison, the page synchronizes to the database and invalidates the old evidence; review the current allocation and compare again. An unavailable replacement also saves nothing. Choose another fund, then compare the edited proposal again.
If Run, Compare, or the single-slot ranking fails, the page moves focus to a visible alert above Advanced. The failed action becomes available again and any proposal that was already assembled stays in place, so you can review the message and retry without reopening Advanced or rebuilding the proposal.
A forward, disjoint evaluation is labeled out-of-sample verification only for a whole-model proposal chosen by training-window criteria. Active hit rate, information ratio, excess CAGR, or the hit-rate gate use all shared history, including evaluation dates, so their later comparison is labeled corroboration rather than a strict holdout. Manually assembled proposals get the same conservative treatment because the expert table exposes all-history benchmark evidence before selection.
Advanced
Advanced keeps every research control available: exact training/evaluation dates, minimum history, metric pillars and weights, the benchmark hit-rate gate, candidates per slot, benchmark overrides, and single-slot ranking with cost-versus-risk attribution. A slice's benchmark resolves the same way here as in a whole-model run, and the ranked table names which columns are whole-model numbers and which are the fund's own. See how candidates are scored. Fast keeps its one-pass greedy search; Thorough keeps whole-model combination search. Funds within one slice must remain distinct.
Worst rolling five-year return needs a complete 5×365.25-day training window. The page warns when a preset does not supply that full span; another active criterion can still score, or use custom dates slightly wider than five years.