First, you'll excuse me if I chuckle at the citation of Fangraphs projections as proof of the team's mediocrity.
Second, Cespedes has been in major league baseball for 4 years, he's 30 years old. He has 4 years of nice but limited track record. But at 30 years old, was 2015 Cespedes best season? Maybe, he is at his peak.
Meanwhile Upton has had 9 years in the big leagues 7 more or less full seasons, creating the same average as Cespedes but with a greater sample size (thus with more reliability), he is entering the meat of his career, it is unlikely that his 28 year, 2015 season was his best.
Cespedes may be the better in the field because of his arm, but not because of his ridiculously overrated glove (Gold Glove or play center fielder my ass) and a bit overrated season, but Upton is the better base runner and at least as good a hitter who is likely to get better as he enters the core of his prime years.
Finally, Cespedes wanted 6 years at $150+, so $25ish mil until he was 36 YEARS old.
No, Upton is the better deal, his deal goes through the meat of his prime years not beyond them. Upton is a way BETTER deal and he is probably the better player.