Why a one carat ruby is smaller than a one carat diamond
Because a carat is a unit of weight, the same weight in a denser mineral occupies less space. Ruby and sapphire are corundum, with a specific gravity around 4.0 against diamond’s 3.52 — roughly 14% denser. So a one carat ruby is visibly smaller than a one carat diamond, and matching them by carat weight guarantees a mismatch.
It runs the other way too. Emerald and aquamarine sit around 2.7, so they look larger per carat than diamond. Opal at about 2.15 is the lightest common gem, and cubic zirconia at 5.7 is much the heaviest — a CZ cut to the same dimensions as a one carat diamond weighs closer to 1.6 carats, which is one way the two get told apart.
Buy coloured stones by millimetre
This is why the coloured stone trade quotes millimetres rather than carats. If you are matching a sapphire to a diamond in the same setting, ask for the millimetre size, not the weight. A 6.5 mm round sapphire will sit correctly beside a one carat round diamond and weigh about 1.14 carats.
Weight estimated from measurements uses the standard trade factors and assumes a normally cut stone. It is good to a few percent for a loose stone you can measure properly. A set stone whose depth cannot be reached will be rougher, because depth is the dimension the estimate is most sensitive to.