Choosing the appropriate portfolio workflow¶
Observed 2026-08-19 from each project’s official documentation. This is a workflow comparison, not a performance ranking. Versions identify the documentation inspected and should be refreshed when this page is updated.
Project |
Primary documented workflow |
Choose it when |
|---|---|---|
GoalBasedAllocation 0.3.1 |
analytical continuous-time MV policy, absorbing wealth floor, terminal distribution under two-regime jumps |
the research question is survival, floor risk, glide paths, or mandate distributions under this published model |
rolling multi-asset construction/backtesting with optimisers, constraints, covariance/factor inputs, and drift-aware workflows |
the task is asset-level portfolio weights, constraints, transaction costs, or historical backtesting |
|
expected-return/risk estimation and modular static optimisers including mean-variance, Black-Litterman, and HRP |
a compact, accessible single-period allocation/prototyping workflow is the priority |
|
convex portfolio optimisation across many risk measures, risk parity, factor, Black-Litterman, and related models |
broad risk-measure/model coverage and weight/risk-contribution constraints are required |
|
single- and multi-period trade optimisation, transaction/holding costs, constraints, and market simulation |
the decision is a sequence of trades with explicit costs and a backtest/simulator |
Where workflows overlap¶
All five projects can inform portfolio allocation, but they optimise different objects. GoalBasedAllocation solves one specialised continuous-time stochastic-control model and provides the resulting terminal distribution analytically. The other projects primarily construct asset-level weights or trades from user data/forecasts under broader constraints and objectives.
Decision guide¶
Choose GoalBasedAllocation for the paper’s two-regime jump model, an absorbing floor, survival/overshoot decomposition, endogenous de-risking, and analytical terminal moments.
Choose optimalportfolios when working inside Artur Sepp’s package ecosystem with rolling multi-asset portfolios, factor/covariance inputs, constraints, and factsheet/backtest workflows.
Choose PyPortfolioOpt for straightforward modular portfolio optimisation and educational or rapid prototyping workflows around expected returns, risk models, and optimisers.
Choose Riskfolio-Lib when the key requirement is a wide menu of portfolio risk measures, risk parity/factor models, and optimisation constraints.
Choose CVXPortfolio when transaction/holding costs and single- or multi-period trade decisions are central.
These tools can be complementary. For example, GoalBasedAllocation can study a strategic mandate’s floor-risk dynamics, while another tool constructs or backtests the asset-level sleeve. Do not copy APIs or analytics between packages; exchange explicit inputs and conventions.
Method and limitations¶
The table uses official project documentation and repositories accessed on 2026-08-19. It does not benchmark speed, solver quality, popularity, or investment performance. Absence of a feature from this table is not proof that no extension exists. Recheck versions, licenses, dependencies, and supported features before making a project decision.