For portfolio and risk analysts

From a spreadsheet allocation to one you can defend.

An optimiser that prints what it assumed, a stress test replayed on the dates it actually happened, and a report a committee can read without a follow-up call to ask what the numbers mean.

Portfolio Optimisation Portfolio Optimisation with the rail open: constraints, weight bounds, the method notes, the solved max-Sharpe headline figures and the candidate portfolios table.

01A week with Quant Compose

From a universe and its risk diagnostics to a report a committee can act on, across one working week.

  1. Day 1

    Universe and risk diagnostics

    Apply a universe and compute the full risk and return set — annualised return, volatility, Sharpe, Sortino, Calmar, drawdown, beta and correlation — for every security before any allocation decision is made.

    Market Explorer Growth of one unit for every security in the universe, rebased to the first shared date.
  2. Day 2

    Choose a covariance estimator

    Sample covariance, Ledoit-Wolf shrinkage, a denoised random-matrix-theory estimator, or EWMA at a 0.94 decay. The estimator is a choice the analyst makes explicitly, not a default inherited silently.

    Risk & Return Correlation matrix of daily returns across the universe, the input every covariance estimator starts from.
  3. Day 3

    Optimise, with refusals recorded

    Mean-variance, minimum variance, maximum Sharpe, risk parity, hierarchical risk parity, Kelly or CVaR optimisation. An infeasible weight-bound combination is refused outright, and frontier points the solver could not reach are listed with the specific reason rather than dropped.

    Portfolio Optimisation Max-Sharpe, minimum-variance and equal-weight allocations side by side.
  4. Day 4

    Stress the result

    Replay one of six real historical episodes — the 2008 crisis, the 2010 flash crash, the 2011 European sovereign selloff, the 2015 China devaluation, February 2018, or the 2020 Covid crash — on the portfolio's own loaded price history, or propagate a hypothetical shock through each asset's beta.

    Scenario & Stress Testing Loss contribution by asset under the shock, beside base-versus-stress risk comparison.
  5. Day 5

    Report to the committee

    Export the fixed evidence pack in PDF, DOCX, HTML or JSON, with portfolio construction and benchmark-relative risk as their own sections and the no-live-order-routing statement printed in the footer of every page.

    Evidence pack (PDF) Page 1 of the exported evidence pack: universe and data, absolute risk and return, benchmark-relative risk, portfolio construction.

02Three problems it removes

Named specifically, not as a category.

01

Optimisation in a spreadsheet

A spreadsheet solver rarely states which weight bounds made the problem infeasible, or which covariance estimator it assumed — an analyst is left explaining a number they cannot fully trace.

02

Ad hoc stress tests

A stress scenario built from scratch each time is a new set of assumptions each time, and a shock magnitude picked without a stated method is hard to defend when questioned.

03

Manual reporting

Assembling charts and tables into a committee memo by hand costs a day that could go to the analysis itself, and invites a transcription error the source data never had.

03Assumptions, printed

Method that holds up when someone checks.

A committee does not need to trust the analyst's memory of what was assumed — the assumptions are in the output.

Equal weight as the standing baseline
Equal weight is always available as the baseline optimisers frequently fail to beat, so a fancier allocation has to earn its place against it.
Refused frontier points, named
A point the solver could not reach under the stated constraints is recorded with the reason, never silently dropped from the chart.
The covariance estimator is a stated choice
Sample, Ledoit-Wolf, denoised or EWMA — whichever is used is named in the output, not buried in a default nobody set deliberately.
Losses reported as positive numbers
Value at Risk and Conditional VaR are reported as positive loss figures across all four VaR methods, avoiding the ambiguity of a signed convention that reverses between reports.
VaR methods named
Historical, parametric, Cornish-Fisher and Monte Carlo are each labelled explicitly rather than presented as one undifferentiated "VaR" figure.
Portfolio Optimisation The Monte Carlo cloud: randomly weighted feasible portfolios coloured by Sharpe ratio.

04Objections, taken seriously

The questions this audience actually asks.

Can I trust the optimiser's assumptions?

They are printed. Frontier points the solver could not reach are listed with the reason, equal weight is always the baseline, and the covariance estimator is a choice you make, not a default you inherit.

Which VaR?

You choose from four named methods — historical, parametric, Cornish-Fisher and Monte Carlo — and the choice appears in the output rather than being averaged away.

Is it execution?

No. The workspace is a research and analytics tool; it does not place or route an order, run against a broker, or manage live positions.

Can I use my holdings?

Upload your own OHLCV price history as a CSV — the accepted format is date, ticker, open, high, low, close and volume — and build the allocation from it using any of the seven portfolio construction methods. There is no separate holdings-file import; weights come from a construction method run on your data.

05In beta, for you

What is available to portfolio and risk teams today.

  • Full access to the seven construction methods, four covariance estimators and four VaR methods
  • All six historical stress episodes plus hypothetical shock testing, at no cost during the beta
  • PDF, DOCX, HTML and JSON export of the same evidence model, so a committee memo and a downstream system read the same numbers
  • Direct feedback into which additional stress episodes and estimators get added next

Build the allocation you can defend in the room.

Beta access is open to individual analysts today; teams standardising across a desk should get in touch directly.