I have always required payment in advance. There are many reasons for it.
Firstly , accountability. It’s been proven over and over that money talks. When a client has already paid for a service they will show up.
I also put an expiration date on our contract, I don’t allow the sessions to keep going on and on.
I also charge in advance because it shows me if the client is really serious about training.
It also shows trust from both parties.
The other reason I do this is because it makes last minute cancellations easier to deal with, I charge them one of their pre paid classes if they don’t give enough notice.
It’s easy and clean on the books.
i don’t talk money with clients during training ever, it’s always done via email or phone.