A sliding cancellation scale
Charge what the timing actually costs you
Setting retention by how close the cancellation falls to the date - little far out, more as commitments are made - tracks real loss rather than applying one figure regardless. Fairer to the customer and considerably easier to defend.
State the scale at booking, not in terms the customer sees only after paying.