I clean houses, not offices and I charge by the hour. I always make sure I know exactly what the customer wants, and if it includes stuff NOT a part of normal cleaning, I carefully explain this and remind them that those extras do take time. Making beds, emptying a dishwasher, cleaning the inside of a fridge are not normal cleaning tasks and are considered extras. And I also explain that because I work so efficiently, I usually get more done in less time.
I have been doing this for a long time now, and have no trouble estimating about what it will end up costing. A 3 bedroom, 2 bathroom home of maybe 1600 SF usually takes about 4 hours, UNLESS they have a lot of "stuff" and clutter. I don't have employees and don't want any, as I can guarantee the job will be done right. I could not do that if I had employees.
I used to have a customer who had used a local cleaning company for several years. They told her from the start it would take 7-8 hours to clean her house! She paid them about $150 every other week, and the customer only wanted ONE bedroom cleaned and 3 full baths! What a rip off. Plus when I took over cleaning that house I found right away that this company had used a dirty string mop on the floors, and its doubtful they EVER dusted. The first to the fourth time I cleaned that house, it DID take 7 hours, but only because I had to clean up what that cleaning company did NOT do. Eventually it became a 4 hour job. This woman then ran into financial problems so I was let go, and I still miss them!