While we believe "gratuity" is there to reward good service, the reality is servers depend on it given their low hourly wage . . . IMO, this is the best example of pay for performance. If I get really lousy service (where that performance can be directed to the server), I simply don't pay gratuity. If I get exceptional service, I pay 20%++ . . . for "expected" service (adjusted for the type of restaurant and type of service level), 15% is fair.
I am not a fan of mandated gratuity - I see this as promoting a"take it or leave it" service attitude. For gratuity on credit card payments . . . be aware that very little often comes back to the servers after it is all split by many . . . I prefer cash gratuities where I can say "thank you" directly to the person who did an exceptional job to create an incredible experience for me and those I am dining with.