Suggestions
When expenses end before they start, warn instead of error
With relative-date-based expenses (and income), it’s possible to create an expense while Milestone 1 is prior to Milestone 2, and then in later exploration, Milestone 2 is changed to precede Milestone 1. Once that happens, the expense can no longer be edited. You get an error message “(Starting age) Must be <= ending age” and aren’t offered a Save button.
So allow expenses to be saved, even when under current assumptions, they end before they start. The expectation in that state is that the expense is never incurred during modeling. There should be visible warning on an expense when it’s in this state.
There is a workaround, which is to temporarily modify the milestones in a way that allows saving.