Python library for portfolio optimization built on top of scikit-learn

Is skfolio/skfolio beginner-friendly?

In the last 30 days, skfolio/skfolio merged 30 of 47 pull requests from outside contributors, and its maintainers usually reply within 1 day. 1 beginner-friendly issue is open now.

Stars
2.5k
Forks
280
Open beginner issues
1
Indexed issues
29
Avg merge
1d 12h
Merged PRs (30d)
42
Dominant language
Python
License
BSD-3-Clause
Last GitHub push
Oct 18, 2026
Latest indexed
Oct 19, 2026
Contributing guide
No contributing guide
Code of conduct
No code of conduct
Beginner labels
No beginner labels indexed

How to contribute to skfolio/skfolio

  1. There is no contributing guide, so start from the README and a few recently merged pull requests to see how changes are proposed.
  2. Your contributions will be published under the project's BSD-3-Clause license.
  3. Pick the open beginner-friendly issue below and comment that you want to work on it before you start.

Issues somebody may already be working on are listed last. List everything by date

  • [BUG] prices_to_returns(fill_nan=False) drops mid-series rows and returns multi-period returns
    Open

    Difficulty 2/5 1-3 hours Newbie friendliness 74/100

    skfolio/skfolio#499 ·

    Maintainers usually reply within 1 day

  • [ENH] Add the Relativistic Value at Risk (RLVaR) risk measure
    Open

    Difficulty 5/5 Over a week Newbie friendliness 35/100

    skfolio/skfolio#498 · 1 comment ·

    Maintainers usually reply within 1 day

  • [ENH] Add a growth-optimal (Kelly) portfolio optimization
    Open

    Difficulty 5/5 Over a week Newbie friendliness 35/100

    skfolio/skfolio#497 · 1 comment ·

    Maintainers usually reply within 1 day

  • [ENH] Add a classical PCA/PPCA covariance estimator
    Open

    Difficulty 5/5 Over a week Newbie friendliness 38/100

    skfolio/skfolio#491 ·

    Maintainers usually reply within 1 day

  • [ENH] Add a nonlinear shrinkage covariance estimator (Ledoit-Wolf analytical and QIS)
    Open

    Difficulty 4/5 3-5 days Newbie friendliness 38/100

    skfolio/skfolio#484 ·

    Maintainers usually reply within 1 day

  • Design discussion: explaining infeasible problems (IIS)
    Open

    Difficulty 5/5 Over a week Newbie friendliness 38/100

    skfolio/skfolio#483 · 1 comment ·

    Maintainers usually reply within 1 day

  • [ENH] Probability of Backtest Overfitting (CSCV) and Minimum Track Record Length
    May be free again @anveshachuri claimed this 15 days ago, and no pull request is open. Open
    enhancement

    Difficulty 5/5 Over a week Newbie friendliness 38/100

    skfolio/skfolio#469 · 3 comments ·

    Maintainers usually reply within 1 day

  • [ENH] Add an effective number of trials for the deflated Sharpe ratio
    Open

    Difficulty 4/5 1-2 days Newbie friendliness 56/100

    skfolio/skfolio#463 ·

    Maintainers usually reply within 1 day

  • [ENH]MCP integration using OKF for documentation
    Open
    enhancement

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    skfolio/skfolio#402 · 5 comments · 1 reaction ·

    Maintainers usually reply within 1 day

  • [ENH] Add Box and Diamond uncertainty set
    May be free again @HugoDelatte claimed this 234 days ago, and no pull request is open. Open
    enhancement

    skfolio/skfolio#177 · 4 comments · 1 assignee ·

    Maintainers usually reply within 1 day

  • How can I do dynamic optimisation ?
    Open
    enhancement

    Difficulty 4/5 3-5 days Newbie friendliness 28/100

    skfolio/skfolio#115 · 10 comments ·

    Maintainers usually reply within 1 day

  • [ENH] Convex-solver consuming metadata to define time-dependent constraints
    Open
    enhancement

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    skfolio/skfolio#108 · 1 comment ·

    Maintainers usually reply within 1 day

  • [ENH] Differential Correction: Sherman-Morrison
    Open
    enhancement

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    skfolio/skfolio#105 · 2 comments ·

    Maintainers usually reply within 1 day

  • [BUG] MultiPeriodPortfolio replaces failed-period NaN weights with zeros
    Possibly taken @Cyber-Marty claimed this 14 days ago. Open

    Difficulty 3/5 1-2 days Newbie friendliness 35/100

    skfolio/skfolio#476 ·

    Maintainers usually reply within 1 day

  • [BUG] All-cash periods are reported as NaN in long_short_exposure
    Possibly taken @Cyber-Marty claimed this 15 days ago. Open

    Difficulty 3/5 1-2 days Newbie friendliness 35/100

    skfolio/skfolio#472 ·

    Maintainers usually reply within 1 day

  • [ENH] Explicit, configurable solver sequence for convex optimizations
    Possibly taken @tschm claimed this 56 days ago. Open

    Difficulty 5/5 Over a week Newbie friendliness 20/100

    skfolio/skfolio#319 · 1 comment ·

    Maintainers usually reply within 1 day

  • [ENH] Add a RegimeSplit class
    Possibly taken @aliassar claimed this 6 days ago. Open
    enhancement

    Difficulty 5/5 Over a week Newbie friendliness 35/100

    skfolio/skfolio#287 · 2 comments ·

    Maintainers usually reply within 1 day

  • [ENH] Add Parametric Portfolio Policies (predict portfolio weights directly)
    Possibly taken @Cashubski claimed this 49 days ago. Open
    enhancement

    Difficulty 5/5 Over a week Newbie friendliness 20/100

    skfolio/skfolio#262 · 4 comments ·

    Maintainers usually reply within 1 day

  • [ENH] Add classical Online Portfolio Selection algorithms
    Possibly taken @lcrmorin claimed this 31 days ago. Open
    enhancement

    Difficulty 5/5 Over a week Newbie friendliness 20/100

    skfolio/skfolio#261 · 12 comments ·

    Maintainers usually reply within 1 day

  • [ENH] Add `RollingFactor`, rolling-window aggregations as multi-output factor exposures
    Possibly taken @Cashubski claimed this 49 days ago. Open
    enhancement

    Difficulty 5/5 Over a week Newbie friendliness 25/100

    skfolio/skfolio#260 · 9 comments ·

    Maintainers usually reply within 1 day

  • [ENH] Support adjacency matrix metadata in clustering workflows
    Possibly taken @HugoDelatte claimed this 15 days ago. Open
    enhancement

    Difficulty 5/5 Over a week Newbie friendliness 35/100

    skfolio/skfolio#241 · 10 comments · 1 assignee ·

    Maintainers usually reply within 1 day

  • [ENH] Extenssion of cross_val_predict() to multiple portfolios (aka optimization estimator)
    Possibly taken @Iyanuoluwa007 claimed this 17 days ago. Open
    enhancement

    Difficulty 4/5 3-5 days Newbie friendliness 35/100

    skfolio/skfolio#172 · 5 comments ·

    Maintainers usually reply within 1 day

  • GraphicalLassoCV Example
    Possibly taken @albystack claimed this 76 days ago. Open
    documentation

    Difficulty 2/5 1-3 hours Newbie friendliness 25/100

    skfolio/skfolio#63 · 13 comments ·

    Maintainers usually reply within 1 day

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.