A few times a year I teach a class at the local SBA office (titled Dynamically Growing a Consulting Business). At the last class we had quite a few no-shows so I asked the admin person about it and she told me the no-shows were people who didn’t pay when they registered.
So I suggested they require payment with registration. It’s the same with everything. The less commitment, the greater the chance people will change their mind. At my annual (free) Getting the Deal Done Breakfast Conference we order breakfasts based on 20% of the people not showing up.
It’s a good lesson for every business. Get as much commitment as you can from customers and get it as early as possible.