Release 0.8.1

v0.8.1

Property tax support, calculation fixes, and plenty of UI tuning

Simulation Engine

  • 🔄 Added support for municipality merges with 2025 data, ensuring accurate tax rate calculations when municipalities merge during a simulation period.
  • 🔄 Property tax calculations now included for all supported cantons (Grundsteuer in SG; Impot Foncier in VD, VS; Impot Immobilier in GE; Contribution Immobiliere in FR).
  • Improved bankruptcy error messages to provide clearer guidance when simulations encounter financial issues.
  • 🔄 Simulation mode ‘65’ now correctly inserts a stop working event at age 65, making retirement scenarios more accurate.
  • Non-recurring revenues and expenses are now explicitly shown in simulation results for better transparency.

Webapp

  • Standardized branding to ‘FI Planner’ across all email messages.
  • Date input now handles 2 and 3 digit years gracefully, preventing error messages when saving occurs while typing.
  • Sessions are automatically restored on page reload, so you can pick up where you left off.
  • Scenario names now appear in the results summary card for easier identification.
  • 🔄 Fixed calculation error: non-recurring expenses are now correctly subtracted instead of added.
  • Simulation results cache is cleared on startup when needed to ensure fresh data.
  • Added links to terms and conditions pages directly in the webapp.
  • Added link to release notes for easy access to what’s new.
  • Session expiration is now handled more gracefully with a clear message and automatic return to the splash screen.
  • Event groups in scenarios are now sorted by date for better organization.
  • Simulation progress modal now includes a progress bar and estimated completion time for better feedback.
  • Shortened amount widget labels to prevent text overflow and improve layout.

Production and Tooling

  • Session is now properly closed when switching users.
  • Fixed permissions issue when storing user preferences (no role required).
  • Simplified package initialization by using initializer functions for cleaner code organization.
  • Created JSON (webapp) version of all regression tests for better test coverage.
  • Removed redundant code in the webapp API call to improve maintainability.

View full size