Things I have done in the past include:
1) Charging a late fee after one warning and reminder of the rules.
2) Calling the parent 10 minutes before pick up time to get an idea of where they are in the drive home - back when you could talk on the phone while driving.
3) When the parent is 10 minutes late go for a walk so that I am not here at pick up time. That annoys a family to no end cause they just want to get home at the end of the day and start their evening - like I don't. We come back about 20 minutes later to a frantic parent sitting in the driveway and I casually explain that I had to drop something off to a friend that had to be done right after work and if they had picked up on time I could have kept my committment. Unfortunately I had to drag your child with me. Then when they protest about not letting them know just remind them that pick up time is pick up time and I am under no obligation to share with them my plans for after 5pm or whatever their time was. They however are obligated by the contract to call me if they are going to be late ( and remember I left 10 after the time so they had a chance to reach me) and they are obligated to pay late fees when they are late. My rates are different if there is a call and if there is no call.