NORNDOCS
Using Norn / Optimize

Optimize

The Optimize wizard runs portfolio optimization on any set of tickers — from scratch, from a connected account, or from an existing saved Portfolio. It supports classic mean-variance (using historical data) and Black-Litterman (blending the market prior with your own forward views).

Open Optimize from the sidebar or hit E. Requires Pro.

The 3-step wizard

The footer shows the current step and a Continue → button; the primary action turns into Run optimization on step 3.

Step 1 · Holdings

Pick the tickers you want to optimize over.

  • Start from scratch — add tickers one at a time via the + Add ticker modal, or pick from the search picker.
  • Import from account — choose any connected account; positions seed the holdings list.
  • Skip strip — tickers Norn doesn't track (see Insights) surface at the top with Dismiss or Request coverage actions. Dismissed tickers are dropped from the run.
  • Remove — every row has an ✕; the counter updates live.

You can deep-link straight into the wizard with pre-filled holdings:

code
/optimization?tickers=NVDA,AVGO,TSM,AMD,MU&source=account&account_name=Fidelity%20IRA

The Accounts page includes an Optimize these holdings button that does exactly this.

Step 2 · Strategy

Choose the objective, the model, and the constraints.

Objective

  • Mean-Variance (default) — maximize risk-adjusted return.
  • Minimum Variance — lowest-variance feasible portfolio.
  • Equal Risk Contribution — every holding contributes the same amount of risk.

Model

  • Historical — 252-day empirical means and covariance.
  • Black-Litterman — combines the market-implied prior with views you supply.

Views (Black-Litterman only)

Open the Views modal to add opinions like "NVDA will beat SPY by 5% next year, 60% confidence". Each view takes an asset, a benchmark (or another asset), an expected relative return, and a confidence weight. Feasibility of the resulting posterior is validated before the run.

Constraints

  • Min / max weight — floor and cap per name. A feasibility checker warns when the constraint set can't sum to 100%.
  • Long-only — on by default. Turn off to allow shorts.
  • Risk-free rate and Risk aversion (δ) — Black-Litterman parameters.

Errors surface inline on the constraint card. Fix them before continuing.

Step 3 · Review

  • Diversification check — flags concentrated pairs (same sector, similar market cap) so you can back off before running.
  • Correlation card — pairwise correlation matrix for the holdings.
  • Efficient frontier preview — computed frontier if enough data is available, simulated cloud otherwise.

Hit Run optimization to launch the run. You'll see a 5-step crafting animation while the solver works.

Results (
code
/optimization/result
)

Optimization finishes on the results page:

  • Efficient frontier chart with your run's point highlighted.
  • Weights table — per-ticker allocation, sorted by size.
  • Stats — Sharpe, expected return, volatility, sum of weights.
  • Configuration card — same panel as Step 2, collapsible. Editing dims the results and re-enables Re-run.
  • Save — name the result and persist it as a saved Portfolio. You'll be redirected to
    code
    /portfolio/[id]
    after save.

Unsaved runs are treated as Plans on the Items page — they show up but age out over time. Save the ones you want to keep.

Common recipes

  • Rebalance an existing account — Accounts → Optimize these holdings → Step 2, set max weight to 25% → Run.
  • Build a themed portfolio — Insights → sort by Sharpe, filter to ETFs → collect 5–8 tickers → Optimize wizard from scratch → save.
  • Test a thesis with Black-Litterman — pick tickers, switch model to Black-Litterman, add one or two views for your favored names, run, and compare the tilt vs. the historical mean-variance run.

Ask Norn AI

Optimization from Norn AI uses the same solver. Try:

  • "Optimize NVDA, AVGO, TSM, AMD, MU for max Sharpe with no name over 30%."
  • "Rebalance my Fidelity IRA to minimum variance."
  • "Optimize with a Black-Litterman view that NVDA beats SPY by 5%."
  • "Add MU to my Semis Core portfolio and re-optimize."

Saved output lives at Portfolios.