my HP on Warrior is over 10,000. how come sometimes Mercy Stroke only restores like 100-some points and other times will restore 1,000-some points?

i know the tool-tip says UP TO 20%, but really... is this really supposed to be happening like that? seems like the action is quite unreliable.