I pay for 50 down and never get over 25. It's a crock of ####. And yes I know the fine print says "up to" 50. It could say up to 25 and still be true. Might as well say up to 1000 because 50 is already a lie, might as well go big.
The problem with the way cable companies implement their service is everybody feeds into the same line - think of it as a pipe.
During times when others are not using the pipe your speed will increase, when everybody else is trying to get online, the copper wire can only carry so much data, so your speed is reduced.
What they do when they sell the "premium" packages is to put a throttle on those who do not purchase the upgrade. So while it doesn't guarantee performance at the top end, it increases your access by limiting theirs.
Fiber increase the amount of data the line can handle.
DSL, while slower, provides a direct link to the switch, so you aren't affected by peak time usage.