We're a cleaning services marketplace, right now we're charging the customer before their first service to ensure that they do have the money available, and after that, all the upcoming services are charged after.
This works and most of them receive the services without any issue. The problem comes whenever a cleaner doesn't show up, this very few cases have a lot of impact in social media since they use words as "fraud" or "scam".
So the question is if it's worth to charge before the work is done or if there is any documented work on this.