League sources told ESPN and MLB Media on Thursday that Franco's deal is worth about $3 million and includes more than $1 million in performance bonuses. The Royals haven't confirmed the agreement, which is pending a physical.
Franco, who became a free agent earlier in the off-season when he was non-tendered by the Phillies, is expected to serve as the Royals' starting third baseman next season.
Hunter Dozier primarily played third base for the Royals last season, batting .279 with 26 home runs and 84 RBIs in 91 starts. According to ESPN, Kansas City is expected to move him around the field in 2020.
Franco, 27, had a .234 batting average with 17 homers and 56 RBIs in 123 games last season in Philadelphia. Before the 2019 campaign, he recorded at least 22 home runs in three consecutive seasons with the Phillies.
Franco has a .249 average with 102 home runs and 343 RBIs in 656 career games across six MLB seasons, all with the Phillies.