Cancellation fees should not be more than double the actual fee of booking. This highly incentivizes no-shows and the use of virtual credit/debit cards for the initial booking.
To put it another way, they could pay a $40 fee or lose $100 by doing nothing. Most people would rather pay the fee and get their $60 back.
Not surprisingly, this is also the exact model that hotels use...