Federer earned $106 million pre-tax, edging out Ronaldo by about $1 million to take over No. 1.
According to the report, Federer is the first tennis player in Forbes' 30-year history of ranking athlete earnings to land at No. 1. A big part of his incoming cash came off the court, as Federer made $100 million in endorsement deals from Uniqlo, Credit Suisse, Mercedes-Benz and 10 other partners.
In contrast, Ronaldo made $45 million in endorsements from Nike and is own CR7 brand. Messi made $32 million from Adidas, MasterCard and PepsiCo.
With Federer at No. 1, Ronaldo and Messi at Nos. 2 and 3, soccer star Neymar sits at No. 4 followed by NBA players LeBron James, Stephen Curry and Kevin Durant. The NBA has the most players on the list of any sport with 34, followed by the NFL with 31, which is up from 19 last year.
Tiger Woods is in the top 10 at No. 8, having taken home $60 million in endorsement deals and $2.3 million in winnings.
Only one professional baseball player, Los Angeles Dodgers pitcher Clayton Kershaw, made the list. And while NBA and NFL players have not seen a drastic financial impact from the coronavirus pandemic, athletes as a whole have seen a decrease in pay.
According to Forbes, this was the first time in four years the income for the world's top-earning athletes has decreased. The 100 highest-paid athletes earned a combined $3.6 billion this year, which is 9% below 2019.
Despite that overall decrease, tennis players Naomi Osaka and Serena Williams both made the list at Nos. 29 and 33 respectively. That's the first time two women have appeared in the top 100 in the same year since 2016, when both Williams and Maria Sharapova were featured.