I try to sell them between 28 and 30/31. That's when they're at their peak and worth the most money. No point keeping players till 36 hoping they'll be a coach, when you could get ~ 30m for them and sign them as a coach later for less than 250k comp.

Though since I focus on developing youth, I tend to sell the older player once the youngster is ready to start, and another is ready to fill his spot on the bench.
 
Imagine it like real life, you can't really have a group of 24 year olds because no one is there to guide them.

Example, I played as Reading, bough Ousmane Dabo on a free, he's 34. I thought this was old then but he was an integral part to my teams promotion. Second season, 35, a coach too but was going to let his contract run out, but I'd built a great friendship with him, he put in some blinding performances, and I offered him another year, he accepted 3k a week!

You see, you build relationships with these older players and not only will they pass on their experience to the younger lads, but they will be determined to prove their worth to the team.
 
Once the stats start dropping ship them out.

Or you'll never get rid of them.

I can't sell Aimar in the 2nd season, I already offered for 2M and no team makes a single offer. And now his stats are decreasing, and I think I'll have to pay his wages for some time as no one wants him as he gets older...
 
Top