There’s been some incredibly good points raised on this thread!
I think for me personally, the key above all else is just maintaining a good personal relationship with the student and ensuring they feel like they can approach you at any time.
I use the whole 48 hours or be charged the full price idea, but sometimes showing that you’re human and understand does go a long way. For example, if you have someone booked in first thing in the morning, say 10am. They wake up at 8:30am vomiting and ring you to cancel, in my opinion charging someone for this (despite the fact it’s only business) would diminish my relationship with that student. Thus, in future, they’re more likely to lie to you, or just not show up even though they’re genuinely ill because they’re thinking ‘Crap, I don’t want to pay £25 out again for being sick’.
For me personally, I have found being like this right from the get go seems to minimalize the number of no shows I have gotten.
Hope this helps!