Your labor efficiency may not be the issue, it may be your estimating.
The last company I worked for was horrible at estimating. As the project/operations manager I had to deal with it every week. Lifts not accounted for, 1400' of EMT run not included, no attic access,... I could go on and on.
We do not bid hours, we bid by task. 10 cable runs @ xx, install 10 outdoor cameras @ xx, etc. Granted sometimes on the cable runs we make less, sometimes we make more, but it all averages out. For anything not standard such as long runs of conduit, trenching etc, I add hourly charges for that.
I also leave a little cushion. Having done installs, I know what happens. One job is a store front, the next is a high rise building. First job tools are 2 minutes away, the other its a 20 minute trip to retrieve tools... I remember telling a high rise hotel it was like an hour just to set up, drop off materials at loading dock, find a parking space 4 blocks away in downtown traffic that could hold a van with ladder rack, walk back, get all the materials into the busy service elevator, etc. Then leaving. That's a good hour right there, 12% of the day....
When we start a project, I do a walk thru with my guys, tell them what the project consists of, give them a map, paperwork etc, and tell them the finish date. They will tell me if I am high or not, but usually I am pretty accurate.
When you start the next project, tell them the estimated hours, go over the estimate, and see what they say. Then after the project review.