Thanks for that. At the moment the app uses the average pace over the whole workout so far, which is similarly simplistic, but I do plan to do something more clever. I just haven't decided exactly what yet!
I don’t have the brain space nor time right now to give a meaningful answer … but, since you’ve got elevation plus distance and therefore incline, I’ll bet you a cup of coffee that a very simple approximation, possibly even piecewise linear with large pieces, could be used to do what you want. As in … if the incline is x, then multiply the straight-and-level average pace by y to get the expected average pace, with those parameters being “close enough” to constant across all populations to be just fine for this sort of ETA estimation. Then break the route into (say) 100 meter (or whatever) chunks, calculate the elevation change between the endpoints, and apply the correction factor. At worst, you’d need a table of x / y correction factors. Again, a generic table probably suffices for everybody (and it’s not hard to imagine customization and auto-calculation options for those who want more knobs to turn).
b&