Skip to content

Releases: Jebel-Quant/jquantstats

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 29 Jul 16:18

Changelog

All notable changes to this project are documented in this file.

The format is based on Keep a Changelog,
and entries are generated from Conventional Commits.

[0.10.0] - 2026-07-29

New Features

  • (portfolio) Add deduct_management_fee for flat annual fee deduction (#901)

Bug Fixes

Documentation

  • Link changelog page from landing page (#874) (#885)

Maintenance

  • Update rhiza to v1.1.3 (#882)
  • Sync with rhiza (#884)
  • Chore(deps)(deps): bump the python-dependencies group with 7 updates (#886)
  • Sync rhiza template to v1.2.0 (#887)
  • Opt out of rhiza fuzzing/scorecard/weekly workflows (#888)
  • Update rhiza to v1.2.1 (#889)
  • Split data.py god-module and decompose B(10) blocks (#871) (#894)
  • Chore(deps)(deps): bump the github-actions group with 11 updates (#895)
  • Chore(deps)(deps): bump the python-dependencies group with 4 updates (#896)
  • (pyproject) Modernize Python version and license metadata (#897)
  • Chore(deps)(deps): bump the python-dependencies group with 8 updates (#900)
  • Chore(deps)(deps): bump docker/login-action from 4.4.0 to 4.5.1 in the github-actions group (#899)
  • Declare version bump locations for bump-my-version

Other Changes

  • Support Python 3.14; refresh README badges; add CLAUDE.md (#881)
  • Harden Rhiza sync schedule editing and tighten exception API typing (#883)

PyPI Package

jquantstats

Conda Recipe

A conda-forge recipe was generated with grayskull and uploaded as the conda-recipe workflow artifact.

v0.9.7

Choose a tag to compare

@github-actions github-actions released this 10 Jul 07:06

Changelog

All notable changes to this project are documented in this file.

The format is based on Keep a Changelog,
and entries are generated from Conventional Commits.

[0.9.7] - 2026-07-10

New Features

  • Add ClusterFuzzLite fuzzing scaffold for jquantstats (#845)

Bug Fixes

  • (make) Skip worktree/current branches in clean branch-prune (#838)
  • (stats) Kill scipy VaR RuntimeWarning (#839) and split large _stats modules (#840) (#841)
  • (reports) Narrow broad except blocks swallowing benchmark-metric errors (#857)
  • (deps) Migrate pl.concat to how="horizontal_extend" (#866) (#867)

Maintenance

  • Chore(deps)(deps): bump the python-dependencies group with 5 updates (#831)
  • Add Rhiza Claude commands (/rhiza_quality, /rhiza_update) (#829)
  • Skip kaleido image-export tests when no browser is available (#833)
  • Centralize cross-mixin TYPE_CHECKING stubs (closes #834) (#835)
  • Fix Sharpe scale-invariance property test (closes #836) (#837)
  • Chore(deps)(deps): bump the python-dependencies group with 6 updates (#844)
  • (plots) Split 1404-line _plots/_data.py into a subpackage (#846)
  • Chore(deps)(deps): bump the github-actions group with 3 updates (#849)
  • Chore(deps)(deps): bump the python-dependencies group with 6 updates (#850)
  • Silence incidental BenchmarkAlignmentWarning noise in the suite (#848)
  • Split the three largest src modules into focused submodules (#851)
  • (exceptions) Reduce noqa[TRY003] density via reusable exception subclasses (#858)
  • Chore(deps)(deps): bump the python-dependencies group with 3 updates (#860)
  • Decompose C-grade blocks to reduce cyclomatic complexity (#863) (#864)
  • Update rhiza to v1.0.2 (#865)
  • Chore(deps)(deps): bump docker/login-action from 4.2.0 to 4.4.0 in the github-actions group (#868)
  • Chore(deps)(deps): bump the python-dependencies group with 7 updates (#869)
  • Update rhiza to v1.1.1 (#870)
  • Remove orphaned git_repo fixture and test_utils from .rhiza/tests (#877)
  • Update rhiza to v1.1.2 (#878)

Other Changes

  • Add jquantstats vs QuantStats comparison documents
  • Move QuantStats comparison docs into book
  • Sync Rhiza template v0.18.8 → v0.19.3 (#832)
  • Sync Rhiza template v0.19.3 → v0.19.4 (#843)
  • Sync Rhiza template v0.19.4 → v0.19.6 + add github-paper (#847)
  • Sync Rhiza template v0.19.6 → v0.19.9 (#854)
  • Delete .rhiza/tests/test_git_repo_fixture.py (#876)
  • Delete .claude/commands directory (#875)
  • Bump version 0.9.6 → 0.9.7

PyPI Package

jquantstats

Conda Recipe

A conda-forge recipe was generated with grayskull and uploaded as the conda-recipe workflow artifact.

v0.9.6

Choose a tag to compare

@github-actions github-actions released this 13 Jun 08:37

[0.9.6] - 2026-06-13

💼 Other

  • Bump version 0.9.5 → 0.9.6

⚙️ Miscellaneous Tasks

  • Update CHANGELOG.md for v0.9.5 [skip ci]

PyPI Package

jquantstats

Conda Recipe

A conda-forge recipe was generated with grayskull and uploaded as the conda-recipe workflow artifact.

v0.9.5

Choose a tag to compare

@github-actions github-actions released this 12 Jun 03:22

[0.9.5] - 2026-06-12

🐛 Bug Fixes

  • Warn when benchmark alignment drops rows, loosen kaleido pin
  • Raise timeout for kaleido tests to absorb Chrome cold-start

💼 Other

  • Bump version 0.9.4 → 0.9.5

⚙️ Miscellaneous Tasks

  • Update CHANGELOG.md for v0.9.4 [skip ci]

PyPI Package

jquantstats

Conda Recipe

A conda-forge recipe was generated with grayskull and uploaded as the conda-recipe workflow artifact.

v0.9.4

Choose a tag to compare

@github-actions github-actions released this 12 Jun 02:33

[0.9.4] - 2026-06-12

🚀 Features

  • Typed stat decorators, snapshot tests, docs FAQ/diagrams, protocol dedup

🐛 Bug Fixes

  • CAGR sign flip in reports, accept integer rf, harden API endpoint (#791)
  • Harden public API, messaged exceptions, numerical edge-case docs, 100% coverage gate
  • Move coverage gate to custom-env.mk so rhiza validation passes

💼 Other

  • Bump version 0.9.3 → 0.9.4

🧪 Testing

  • Increase coverage to 100%

⚙️ Miscellaneous Tasks

  • Update CHANGELOG.md for v0.9.3 [skip ci]
  • Bump rhiza to v0.18.8 (#788)

PyPI Package

jquantstats

Conda Recipe

A conda-forge recipe was generated with grayskull and uploaded as the conda-recipe workflow artifact.

v0.9.3

Choose a tag to compare

@github-actions github-actions released this 05 Jun 02:54

[0.9.3] - 2026-06-05

🐛 Bug Fixes

  • Update test_release_workflow to match inline release workflow

💼 Other

  • Bump version 0.9.2 → 0.9.3

⚙️ Miscellaneous Tasks

  • Update CHANGELOG.md for v0.9.2 [skip ci]
  • Bump rhiza template to v0.11.0 (#776)
  • Update rhiza to v0.15.2 (#778)
  • Bump rhiza to v0.17.0
  • Apply rhiza sync v0.17.0
  • Update rhiza to v0.15.3 (#779)
  • Upgrade paper workflow actions to Node.js 24-compatible versions
  • Update rhiza to v0.18.4 (#781)

PyPI Package

jquantstats

v0.9.2

Choose a tag to compare

@github-actions github-actions released this 24 May 08:39

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

0.9.2 - 2026-05-24

Maintenance

  • Chore(deps)(deps): bump github/codeql-action from 4.35.4 to 4.35.5 in the github-actions group (#772)
  • Chore(deps)(deps): bump the python-dependencies group with 4 updates (#773)
  • Sync rhiza template to v0.10.9 (#774)
  • Bump rhiza to v0.14.1 with github-project profile and marimo template (#775)

Other Changes

  • Bump version 0.9.1 → 0.9.2

PyPI Package

jquantstats

v0.9.1

Choose a tag to compare

@github-actions github-actions released this 17 May 14:42

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

0.9.1 - 2026-05-17

Documentation

  • Fix README — remove duplicate lines, correct version and parameter name

Other Changes

  • Remove deprecated stats aliases (ghpr, r2, win_loss_ratio) from API surface (#762)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com

  • Bump version 0.9.0 → 0.9.1

PyPI Package

jquantstats

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 17 May 11:13

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

0.9.0 - 2026-05-17

Documentation

  • Clarify hhi_positive / hhi_negative as intentionally public optional metrics (#730)
  • Close edge-case metric coverage gaps vs quantstats (9 → 10) (#766)

Maintenance

  • Hide back-references on all facade classes (#709)
  • Add _positive/_negative filter helpers and eliminate inline filter duplication in _basic.py (#725)
  • Extract _is_finite/_fmt to _reports/_formatting.py (#727)
  • Document and normalise null-return convention in stats mixins (#724)
  • Rename _PerformanceStatsMixin to _RiskStatsMixin for clearer domain boundaries (#732)
  • Centralize DataLike protocol at package root and remove subpackage redefinitions (#736)
  • Cancel redundant runs with concurrency group
  • Extract inline Data setup into sub-fixtures in test_stats.py (#747)
  • Document _ReportingStatsMixin.rar() cross-mixin dependency via isolation test (#748)

New Features

  • Add winsorise and exponential_cov to PortfolioUtils (#726)
  • Add DataPlots.compare and figsize parity for log_returns/rolling_beta (#750)
  • Add Monte Carlo fan chart and simulation distribution plots to DataPlots (#749)

Other Changes

  • Refactor test_stats.py to reuse integer-indexed Data setup via sub-fixture (#711)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Initial plan
  • Merge branch 'copilot/address-issue-1a-1b-2a-2b-2c' into main
  • Refactor rolling_sortino to align with rolling stats implementation pattern (#723)
  • Update rhiza_ci.yml
  • Document cross-mixin method dependencies in reporting and risk stats mixins (#752)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com

  • Refactor stats decorators to support explicit data attribute contracts (#735)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com

  • Add Monte Carlo stats suite to close QuantStats parity gap (#751)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com

  • Refactor stats mixins to enforce Data null invariants and remove redundant null guards (#739)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com

  • Refine benchmark-aware null handling in information_ratio (#754)
  • Deprecate ghpr, r2, and win_loss_ratio aliases (preserve compatibility) (#756)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com

  • Refactor _reports StatsLike to the actual Report-facing surface (#755)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com
Co-authored-by: Copilot Autofix powered by AI 175728472+Copilot@users.noreply.github.com

  • Document legitimate empty-after-filter guards in stats mixins (#761)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Consolidate residual duplication in reports, stats, and plot helpers (#760)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com

  • Add snapshot tests for all DataPlots methods; update plot coverage docs to 10/10 (#765)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Add end-to-end benchmarks and close map_elements / Python-loop performance gaps (#768)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: Thomas Schmelzer thomas.schmelzer@gmail.com
Co-authored-by: tschm 2046079+tschm@users.noreply.github.com

  • Add migration tests for new jquantstats functionality (#770)

Co-authored-by: copilot-swe-agent[bot] 198982749+Copilot@users.noreply.github.com
Co-authored-by: Claude Sonnet 4.6 noreply@anthropic.com

  • Bump version 0.8.4 → 0.9.0

Performance

  • Align rolling_sortino to explicit native Polars expressions and add 10Y benchmark coverage (#740)

PyPI Package

jquantstats

v0.8.4

Choose a tag to compare

@github-actions github-actions released this 16 May 06:37

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.

0.8.4 - 2026-05-16

Bug Fixes

  • Add src path to mkdocstrings so jquantstats is importable

Maintenance

  • Merge save() into to_html(path=None)

Other Changes

  • Bump version 0.8.3 → 0.8.4

PyPI Package

jquantstats