This year was the first time I replaced a perfectly working phone with another one.
My first smartphone was a Windows phone, and I was committed to that platform. I replaced the first phone when it died, the next two when their screens cracked. That's 4 phones in 10 years. They were all flagships toward the end of their lifetime (as in a new flagship would be released in a few months) except the last one, a Lumia 950 as soon as it was introduced. Because this was also around the time carrier subsidies began going away, I paid full price for that one, and resolved not to break it.
It's two years later, and I finally cannot justify having a phone, great as it may be, with fewer and fewer official apps. Because of the high price I payed just two years ago, I decided that if I could find a good enough sub-$200 phone, I'd get one this year. Otherwise, I'd wait another year and ad $100 or so to my budget. I was really hoping for a Nokia 6, if not to stay at least somewhat true to my origins, then because of its continued update promise, but that never went below $200 except with Amazon ads and only for Prime customers (I am not one). But after researching, I decided on Motorola's Moto G5 Plus when it was on sale for $144 (I got the 2 gig version).
Going forward, I really don't know. It really depends on what kind of meaningful advances happen in the future. I know I'm going to get Oreo some time soon, but beyond that the field is wide open. I'm hoping for at least two years again, and we'll see what happens.