Redoing the math with a general isoelastic utility function, for η>1 you get an optimal point at which to donate, with that point depending on the parameters of the model (income and investment growth rates, the rate of diminishing returns, etc.). This optimal donation time is also dependent on the size of the population you can donate too, so to get a more accurate model you would need to incorporate that (as well as a bunch of currently-unaccounted-for factors like the changing effectiveness of non-cash charities).
good points!
with respect to the utility function I originally chose log because it’s what Open Philanthropy uses. However I now see that GiveWell sometimes uses an isoelastic utility function with η=1.59, which is faster diminishing returns than log-utility (η=1).
Redoing the math with a general isoelastic utility function, for η>1 you get an optimal point at which to donate, with that point depending on the parameters of the model (income and investment growth rates, the rate of diminishing returns, etc.). This optimal donation time is also dependent on the size of the population you can donate too, so to get a more accurate model you would need to incorporate that (as well as a bunch of currently-unaccounted-for factors like the changing effectiveness of non-cash charities).