As an idea,
All bookings are paid in advance.
Cancelation fee would apply of 10% of the booked value
Refund would be of non cash value but camping credits.
Camping credits used for future bookings, being non cash value would not be refunded during cancelation.
Example, I book 10 days in July, pay 300 up front. I show up for five, my bill is $150 for the days I use and I get a camping credit of $135 for the canceled days. I book 5 more days and show up, I use my camping credit for the $135 and pay the extra $15. I do not show up I am out the $135 camping credits and I receive a $13.50 camping credit for refund on the $15 I spent out of pocket.
System is not perfect, it helps those who cancel for legit reasons. It does not help those who live a lifestyle that causes frequent change. System in use today's does not work for everyone, any system implemented will not work for everyone.