Every coach has the story. The 6 am club opener, the drive across town, the empty court. The lesson was $80 and the apology was free.
Charging for no-shows feels uncomfortable because most coaches try to do it backwards: after the miss, by text, with no agreement to point to. Done right, it's two steps, both before anyone misses anything.
The policy has to exist before the booking. On your booking page, in plain words, where a client agrees to it by booking. Here's a policy you can copy:
Plans change, and that's fine. Here's how it works so we're on the same page.
Your card is saved when you book. We only charge it if one of the above happens.
Notice what it doesn't say. No legal tone, no "fee schedule", no threats. A clear deal a reasonable person nods at.
A policy without a card is a suggestion. The card is saved when the lesson is booked, with one honest sentence next to the form: nothing due now, the card only gets charged for a missed lesson.
From there, the fee charges itself. The coach taps No-show on the day's lesson, the policy runs, the client gets a clear receipt. No conversation, no chasing, no exception you have to defend next week.
Waive it. Once, on purpose, from a screen where waiving is one tap. The point of the policy isn't to collect fees, it's to make missing a lesson cost something by default instead of costing you something by default.