Just took a quick look at the calculator and I think I know why we are a 1/2 CR off. The calculator automatically takes resistances and immunities into account and the DMG is more nuanced than that. I didn't modify Soth's HP because of his resistances and HP as I don't think he had enough to warrant an adjustment, and I imagine the calculator did. Oddly, the calculator doesn't take into account the number of resistances as the DMG specifically mentions having 3 or more, may need a HP adjustment. So that is the floor to determining a HP adjustment (3 resistances)
OK, I just used the calculator and got 19 too. It looks correct to me. Not sure where I made the mistake previously, but I was just doing it in my head so probably forgot to carry the one!
However, that is only if you assume just 70 damage for his cataclysmic fire. Technically it is an AoE attack and you should double the damage. If you do that, I get CR 20!
Her is the example from the DMG:
"For example, a young white dragon has a multiattack routine (one bite attack and two claw attacks) that deals an average of 37 damage each round, as well as a breath weapon that deals 45 damage, or 90 if it hits two targets (and it probably will). In the first three rounds of combat, the dragon will probably get to use its breath weapon once and its multiattack routine twice, so its average damage output for the first three rounds would be (90 + 37 + 37) ÷ 3, or 54 damage (rounded down)."