I tip based on how good the service is with the baseline starting at 20%, it goes up or down from there, it's in the waiters hands.
I have also at times called a manager out and given them money to give to the cook if they food is exceptional.
I dated a girl once who refused to tip...