I've had some good results with giving each kid one day of "sick leave" for every 15 practices/3 weeks they've attended. Vacations and special circumstances were treated separately, but otherwise they'd use their sick leave any way they wished.... to play hookey, catch up on down time, go to a party, or stay home sick. The only rules were no absences due to anything but head congestion or fever the last practice before a meet, and when you run out you gotta do make ups before getting anything but grief from me.
It worked great. Nobody ever "ran out"..... and I never had to listen to 10 minute explanations of why the kid couldn't come in. They call and say they wouldn't be in that day, and that was it.