Quoted By:
>Bulbapedia:
"Catch rate: -20 if used on Pokémon weighing less than 225.8lbs(GSC) / 451.5 lbs (HGSS)"
>Serebii:
"The Heavy Ball is a PokéBall obtained from Kurt. This ball has a unique capture rate modifier in that it doesn't multiply, but adds or subtracts a value. This value is determined on the weight of the Pokémon you're trying to capture. [...] In HeartGold & SoulSilver, if the Pokémon weighs less than 451.1lbs, the value is -20."
>Serebiidex:
"Weigh: 209.9lbs / 95.2kg"
Catch formula:
>CatchValue = ((( 3 * Max HP - 2 * HP ) * ((Catch Rate - 30) * 1 ) / (3 * Max HP) ) * Status Modifier
>CatchValue = ((( 3 * 64 - 2 * 8 ) * ((3 - 30) * 1 ) / (3 * 64) ) * 2
>CatchValue = ((( 192 - 16 ) * ((3 - 30) * 1 ) / (192) ) * 2
Then either
>CatchValue = (( 176 * (-27) / 192 ) * 2
>CatchValue = (( -4752 / 192 ) * 2
>CatchValue = -49,5% (per shake)
or
>CatchValue = (( 176 * 1 / 192 ) * 2
>CatchValue = (( 176 / 192 ) * 2
>CatchValue = 1,8333% (per shake)
Considering I've thrown ~200 Heavy Balls at different Beldum at roughly 10% HP (8/64 = 12.5%) and none have shaken even ONCE, either I'm being exceptionally unlucky (I wish I knew how to calculate that), or it's legitimately impossible to have a Heavy Ball Beldum even with them being available in Sun/Moon.
Somebody please refute this because I can't believe I have been smeckledorfed this much.