I would say about every 2 years when I renew my contract. Honestly I don’t see much difference in the next model after the one I got. So I usually wait for the model after the next.
I wait every 3 models just so I can get an actual “wow” factor and feel like there’s a real leap. Even 2 generations feels ehh…
With X, I don’t know though. I can’t see them continuing the old model line next year with an iPhone 8s or 9. I think they’ll dump that line and just continue with the Xs.
I think we’ll see X2, X3, etc. until that in turn is replaced in 6 or 7 years with yet another line.