Assuming you had no other [legal tender] banknotes, the proper tip was
not $3 (assuming otherwise decent service). One of the $10 bills from the twenty you asked the server to break would be more like it.
I'm mildly horrified at foregoing the 67 airline miles by paying cash though.