Release 0.8.0

v0.8.0

Improved simulation engine, tax tables updates for 2025, and full-featured webapp released for beta testers

Simulation Engine

  • Improved error handling: asset lookups with mistyped or missing names now return informative errors instead of panics, making simulations more robust and user-friendly.
  • 🔄 Enhanced handling of future events: switched to a factory approach for generating assets in cloned events, ensuring immutability and correctness of simulation results, notably improving scenarios involving property purchases and mortgage events (affects legacy frontend compatibility).
  • Improved location resolution: now provide municipality hints in the list of locations to clearly distinguish ambiguous zip codes (e.g., “1700 Fribourg”, “1700 Fribourg [Düdingen]”, “1700 Fribourg [Tafers]”) for more precise mapping.
  • 🔄 Refined tax computations: simulations now correctly apply the lower bound—no federal tax is levied under 25 CHF—improving result accuracy.
  • 🔄 Updated tax tables for 2025 for greater compliance and accuracy (pending: VD code 820 cap update, and full clarity on VS municipality deduction [abattement] alignment with ESTV data).
  • 🔄 Added initial support for mid-year simulation starts. Incomes are annualized to compute taxes correctly, and taxes are prorated as appropriate (with Federal tax in ZH always calculated for the full period due to the absence of advance payments).
  • Ensured that the simulation engine is thread-safe, improving reliability and performance in concurrent scenarios.

Webapp

  • Asynchronous execution of the simulation, support for cancelation and caching of simulation results
  • All features needed for onboarding our beta testers and feature parity with the Legacy Frontend (Google Sheets)

Production and Tooling

  • New deployment with docker for all modes (devel, staging, prod).
  • Production service now hosted on Digitalocean

View full size