ChrisCScott / forecaster

A personal finances forecasting tool for Canadian retirement planning
Other
1 stars 2 forks source link

Implement revised financial model #52

Closed ChrisCScott closed 5 years ago

ChrisCScott commented 5 years ago

Currently, Forecast determines income, gross contributions, contribution reductions, net contributions, withdrawals, and tax treatment, in that order. The semantics here have two problems:

  1. It's not intuitive that "gross contributions" includes a lot of things that would typically be thought of as living expenses and which don't contribute to net worth; and
  2. The proposed refactoring in #40 makes it hard to manage debt repayments, since they're lumped in with other reduction amounts but require handling by the top-level Forecast.

It seems like an opportunity to clarify the basic financial model of the software. I propose moving to something like this:

Note that Forecast doesn't necessarily do all of these things; consider whether some functions (like determining and assigning per-account transactions) should be handled by other classes as part of the refactoring process (see #40).