We have added the capability to set a time based Refund Policy. For example give a full refund 120 out from the race, but only a 10% refund the month before a race.
This is set under Refund Policy (and can also be set for Race-to-Race Transfers). It is very flexible with any number of periods and % refunds.

The participant sees a summary when they process a refund that looks something like this:

This is a very friendly way of handling refunds – encouraging more people to sign up earlier and have a logic around reasons for the refunds getting smaller as the race gets closer.