Some questions:
How many students do you have?
How many days a week do you teach?
Where do you teach? At home?
Here is my reason for asking. I teach 5 days a week. I teach in a music store where I've been for over 20 years. I chose to work in such an environment rather than at home because of the privacy it gives when I am not at work.
Teaching is how I pay my bills. It's a business. If a student does not show up one day, very often I can reschedule to another time that is open on another day when my time is free. There are almost always holes here and there. In other words, I can often reschedule with no real inconvenience.
I love to teach, or I would have found a business that pays more. It's hard enough making money teaching piano. When people cheat us out of money that they have agreed to pay, it is a very serious thing.
In almost all cases, those people who insist on paying weekly skip lessons and either don't pay for them or fight about it. It's a shame that some of the nicest young students I have are the sons and daughters of "creeps", but that's the way the world works. Almost all the difficulties I have are with people who do not want to pay in advance. If such people cause me major problems, I refuse to continue dealing with them. I tell them, in just these words, "You need to find another teacher. I need to fill this teaching slot with a student that I will get paid to teach."
Adults are the most irresponsible students, in general. They may not mean to be, but they have busy lives, and when they say, "This is something I really want to do, I'm going to stick to it," the tune usually changes in a month or two. Often in less time.
I would recommend this: set your rates, then ask to be paid, in advance each month. (Some teachers are able to set up rates for longer periods. This has not worked for me.)
Make it clear that missed lessons will not be made up unless you are notified in advance. "In advance" can be by a cut-off time in the morning of the lesson, a day before, a week before. You have to decide. If you make the rules too severe, you may lose some good students AND money. If you are too kind, you will lose money.
For those who insist on paying weekly, if you choose to allow it (and it is very difficult not to do so in some cases), charge more. Make the increase stiff enough so that people will pay just as much for three out of four lesson per month. That way you can "eat" the losses. Increase your rates by 33% when paid by the week. You still want to insist that missed lessons be paid for, but you usually won't get the money from the people who pay weekly.
If you find it difficult to confront people verbally, put your policy in writing, have new students sign indicating that they have read it, then keep a copy.
As for make-ups, my official policy is that if I am not notified a day in advance, no make-up, and this is for those who pay in advance, by the month. However, because some of these people have been with me a long time, I am very liberal about rescheduling students who are cooperative. I do, however, always say, "I just want you to remember that you did not tell me in time, but I'm rescheduling because you are nice people and show respect."
It's HARD to collect money. I think few of us who are dedicated teachers want anything to do with "bill-collecting", but it has to be done. You have to learn to be appear to be reasonable, kind, sympathetic and helpful, but you have to make yourself hard as a rock inside when dealing with people who would "stiff" you in a heartbeat if they got the chance.
Please let me know if any of these suggestions help.

This is all from my personal experience.
Gaer