Skip to content

okama Planner 0.4.1 — multi-currency goals

Latest

Choose a tag to compare

@chilango74 chilango74 released this 09 Oct 15:16
· 13 commits to main since this release

okama Planner 0.4.1 — multi-currency goals and shared household funding

This release lets one financial plan fund goals in several currencies from a common household budget, with explicit conversion rules and joint asset/FX scenarios. Existing single-currency requests and saved plans remain supported.

Multi-currency plans

  • Add MulticurrencyRequest: one household budget, native currency groups, dated contribution weights, an explicit funding order and conversion fees.
  • Use either a shared portfolio or separate goal portfolios within each currency group.
  • Supply opening exchange rates explicitly in base units per native unit. Asset and FX return histories share the same bootstrap month indices, preserving their supplied historical dependence.
  • Keep native goal spending within its currency group. Cover common expenses and loan shortfalls using the specified household funding order.
  • Calculate total portfolio/capital path by path before computing percentiles. Overall success requires all common and native obligations to be funded on the same scenario.
  • Return schema 2.0 with native results, currency-labelled goals and per-path FX transfers. Store and replay complete requests and results through SQLite.

Reports and fixes

  • Export responsive HTML (default), PNG and SVG for the overall base-currency forecast and each native group. Retain logarithmic scales, numbered goal markers and download controls.
  • Add horizontal native Cash Flow sheets, currency-group strategies/current amounts, loan-financing inflows and FX traces to Excel. Native chart captions use the group's currency.
  • Preserve user-entered goal labels and group IDs during localization. Reject mismatched native result currencies, input hashes and calendars before rendering.
  • Complete expense-share pension segments after their last actual payment. Size their planned buffers using known future expenses and the current scenario quote, without looking ahead at future FX.

Example and downloads

The attached example is a fully fictional RUB/USD/EUR family. It mixes shared and goal-specific portfolios, property purchases, education goals and an expense-share pension. All asset returns, FX histories, rates and amounts are synthetic; the example demonstrates mechanics rather than a recommended portfolio.

  • okama_planner-0.4.1-py3-none-any.whl and okama_planner-0.4.1.tar.gz: Python package and source distribution.
  • okama-planner-0.4.1-multicurrency-example.zip: request/result snapshots, a recalculated Excel workbook and overall/native HTML/PNG/SVG forecasts.
  • extraction-manifest.json and SHA256SUMS: source inventory and release-asset checksums.
pip install 'okama-planner[reports]==0.4.1'

See the multi-currency contract and reproducible example.

Validation

  • 629 tests passed; Ruff and all five CI example scripts passed.
  • Verified native currencies and unique chart sheets across all five Excel languages.
  • Replayed the forecast after SQLite storage without a numerical difference.
  • Recalculated the example workbook with zero formula errors.
  • Built wheel/source distributions and smoke-tested the installed wheel with a multi-currency forecast, HTML/Excel export and SQLite round-trip.

Full changelog: v0.4.0…v0.4.1