Immutable
release. Only release title and notes can be modified.
Big release with lots of changes.
🚀 Features
- Feature/add transactions foreign currency ibkr @bogdanutanu (#755)
- Trading212: Fix unknown columns and support card operations @ivaigult (#733)
- Trading212: Support stop limit buy/sell transactions (#708) @ivaigult (#722)
- Trading212: Count "Currency conversion" as adjustment @ivaigult (#725)
- Trading212: Handle "Dividend manufactured payment" (#709) @ivaigult (#723)
- Upgrade to pyrate-limiter 3.9 @dwoffinden (#715)
- Add interactive brokers support @vmartinv (#712)
- Adjust CUSIP bond prices automatically. @amaksoft (#683)
- Add Bond Interest and Credit Interest action types. @amaksoft (#685)
- Add Full Redemption transaction support. @amaksoft (#687)
- Filter out cancelled Buy transactions for Schwab. @amaksoft (#686)
- Also process GOOGL in addition to GOOG. @thibwk (#657)
- Better error handling for Sharesight parser @KapJI (#658)
- Schwab Equity Award: support dividends and their taxes. @thibwk (#568)
- Add row context to broker parser errors @KapJI (#656)
- Add header to RAW format CSV @KapJI (#652)
- Better error handling for Morgan Stanley parser @KapJI (#649)
- Improve errors handling @KapJI (#648)
- Print help if no arguments provided @KapJI (#640)
- Add CGT allowance for 2025/26 @KapJI (#636)
- Improve help output @KapJI (#635)
- Write outputs to "out" folder by default @KapJI (#634)
- Unify argument names @KapJI (#633)
- Deprecate --report in favour of --output @KapJI (#630)
- Implement Freetrade parser @podtserkovskiy (#564)
- Don't print 'no file provided' messages @KapJI (#622)
- Don't print tracebacks by default @KapJI (#621)
- Better, colourised logging @KapJI (#618)
🐛 Bug Fixes
- Fix Vanguard parsing for funds without symbols and fractional share quantities @newwaylw (#757)
- Fix yfinance API compatibility issue @amaksoft (#698)
- Fix decimal rounding errors by reordering operations. @amaksoft (#697)
- Fix negative balance error and add new raw example @vmartinv (#692)
- Fix interest calculations. @nihn (#669)
- Fix splits during bed&breakfast @vmartinv (#668)
- Skip bed-and-breakfast passes with zero quantity @OrmEmbaar (#659)
- Docker: Don't change directory in CLI shim. @thibwk (#663)
- Use RSU settlement date as acquisition date in Schwab @vmartinv (#667)
- Fix typos in latex template @KapJI (#628)
- Rename --schwab_equity_award_json arg @KapJI (#616)
- Fix corner cases with ERI and polish @ivendor (#610)
📔 Documentation
- Update README.md to reference new Schwab params in Cli @vahron (#732)
- Document BED_AND_BREAKFAST_DAYS constant. @amaksoft (#688)
- Update section about additional files @KapJI (#654)
- Add privacy notice @KapJI (#653)
- Update README.md to fix broken link @elatier (#642)
- Add script to update example preview @KapJI (#631)
- Add script to regenerate example report @KapJI (#629)
- Move more files to docs/ @KapJI (#617)
- Improve README @KapJI (#615)
🏅 Code Quality Improvements
- Add standard CSV base parser for even easier parsers @vmartinv (#706)
- refactor: encapsulate broker-specific logic into self-contained classes @vmartinv (#696)
- Parsers improvements @KapJI (#655)
- Enable more ruff rules @KapJI (#647)
- Simplify list of ignored ruff rules @KapJI (#646)
- Accept path types in arguments parser @KapJI (#645)
- Parse --output into Path object @KapJI (#639)
- More improvements for arg parser @KapJI (#637)
- Show clear pytest diff @KapJI (#627)
- Reorganise test files @KapJI (#619)
- Use zip(strict=True) for extra protection @KapJI (#614)
- Upgrade Python to 3.12 @KapJI (#613)
- Migrate from Poetry to uv @KapJI (#609)
🧱 Dependency Updates
- Bump docker/setup-buildx-action from 3 to 4 @dependabot[bot] (#750)
- Bump docker/build-push-action from 6 to 7 @dependabot[bot] (#752)
- Bump crazy-max/ghaction-github-labeler from 5.3.0 to 6.0.0 @dependabot[bot] (#747)
- Bump types-python-dateutil from 2.9.0.20260302 to 2.9.0.20260305 @dependabot[bot] (#754)
- Bump codespell from 2.4.1 to 2.4.2 @dependabot[bot] (#753)
- Bump release-drafter/release-drafter from 6.2.0 to 6.4.0 @dependabot[bot] (#751)
- Bump types-python-dateutil from 2.9.0.20260124 to 2.9.0.20260302 @dependabot[bot] (#749)
- Bump dprint-py from 0.51.1.0 to 0.52.0.0 @dependabot[bot] (#748)
- Bump pytest-env from 1.3.2 to 1.5.0 @dependabot[bot] (#746)
- Bump pandas from 3.0.0 to 3.0.1 @dependabot[bot] (#745)
- Bump yfinance from 1.1.0 to 1.2.0 @dependabot[bot] (#744)
- Bump pylint from 4.0.4 to 4.0.5 @dependabot[bot] (#742)
- Bump pytest-env from 1.2.0 to 1.3.2 @dependabot[bot] (#740)
- Bump pandas-stubs from 2.3.3.260113 to 3.0.0.260204 @dependabot[bot] (#739)
- Update uv-build requirement from <0.10.0,>=0.8.23 to >=0.8.23,<0.11.0 @dependabot[bot] (#737)
- Upgrade to pyrate-limiter v4 APIs @dwoffinden (#736)
- Bump types-python-dateutil from 2.9.0.20251115 to 2.9.0.20260124 @dependabot[bot] (#735)
- Bump types-requests from 2.32.4.20250913 to 2.32.4.20260107 @dependabot[bot] (#714)
- Bump pandas from 2.3.3 to 3.0.0 @dependabot[bot] (#729)
- Bump ruff from 0.14.13 to 0.14.14 @dependabot[bot] (#731)
- Bump yfinance from 1.0 to 1.1.0 @dependabot[bot] (#730)
- Bump release-drafter/release-drafter from 6.1.0 to 6.2.0 @dependabot[bot] (#727)
- Bump pandas-stubs from 2.3.3.251219 to 2.3.3.260113 @dependabot[bot] (#716)
- Bump ruff from 0.14.11 to 0.14.13 @dependabot[bot] (#717)
- Bump ruff from 0.14.10 to 0.14.11 @dependabot[bot] (#713)
- Bump yfinance from 0.2.66 to 1.0 @dependabot[bot] (#699)
- Bump requests-ratelimiter from 0.7.0 to 0.8.0 @dependabot[bot] (#702)
- Bump dprint-py from 0.50.2.0 to 0.51.1.0 @dependabot[bot] (#700)
- Update uv-build requirement from <0.9.0,>=0.8.23 to >=0.8.23,<0.10.0 @dependabot[bot] (#695)
- Bump pandas-stubs from 2.3.3.251201 to 2.3.3.251219 @dependabot[bot] (#694)
- Bump ruff from 0.14.9 to 0.14.10 @dependabot[bot] (#693)
- Bump mypy from 1.19.0 to 1.19.1 @dependabot[bot] (#691)
- Bump ruff from 0.14.8 to 0.14.9 @dependabot[bot] (#690)
- Bump ruff from 0.14.7 to 0.14.8 @dependabot[bot] (#681)
- Bump actions/cache from 4 to 5 @dependabot[bot] (#689)
- Bump pytest from 9.0.1 to 9.0.2 @dependabot[bot] (#680)
- Bump mypy from 1.18.2 to 1.19.0 @dependabot[bot] (#679)
- Bump types-python-dateutil from 2.9.0.20251108 to 2.9.0.20251115 @dependabot[bot] (#673)
- Bump actions/checkout from 5 to 6 @dependabot[bot] (#670)
- Bump pytest from 8.4.2 to 9.0.1 @dependabot[bot] (#676)
- Bump pandas-stubs from 2.3.2.250926 to 2.3.3.251201 @dependabot[bot] (#678)
- Bump ruff from 0.14.6 to 0.14.7 @dependabot[bot] (#677)
- Bump pylint from 4.0.3 to 4.0.4 @dependabot[bot] (#675)
- Bump pylint from 4.0.2 to 4.0.3 @dependabot[bot] (#672)
- Bump ruff from 0.14.4 to 0.14.6 @dependabot[bot] (#671)
- Bump types-python-dateutil from 2.9.0.20251008 to 2.9.0.20251108 @dependabot[bot] (#666)
- Bump ruff from 0.14.3 to 0.14.4 @dependabot[bot] (#665)
- Bump ruff from 0.14.2 to 0.14.3 @dependabot[bot] (#664)
- Bump ruff from 0.14.1 to 0.14.2 @dependabot[bot] (#661)
- Bump ruff from 0.14.0 to 0.14.1 @dependabot[bot] (#651)
- Bump pylint from 4.0.0 to 4.0.2 @dependabot[bot] (#650)
- Fix broken links in README @KapJI (#643)
- Bump pylint from 3.3.9 to 4.0.0 @dependabot[bot] (#625)
- Bump pytest-env from 1.1.5 to 1.2.0 @dependabot[bot] (#626)
- Bump ruff from 0.13.3 to 0.14.0 @dependabot[bot] (#624)
- Bump types-python-dateutil from 2.9.0.20250822 to 2.9.0.20251008 @dependabot[bot] (#623)
- Bump pylint from 3.3.8 to 3.3.9 @dependabot[bot] (#612)