Quoting/Estimating Labor Accuracy

theColonel26

Lifetime Supporting Member
Join Date
Feb 2014
Location
West Michigan
Posts
785
I have been working for a small turn key machine builder. We mostly do table top machine which do a few automated steps in assembling a product, but I have had to program some very involved machines too. When I came on board I had never worked for a machine builder before I worked in a test lab where we built a lot of our own automated test machines/fixtures. We were our own customer. I took a few PLC and controls classes in college, but after that I was entirely self taught. So no body every really cared how many hours it took to complete a project they only cared if it was done by a certain date.


My boss is a machinist by training and only has a basic/abstract understanding of controls. When I first started he would ask me to quote labor on a job, Electrical Design, Programming, Panel Build and Wiring, and Debugging. He told me to quote based on what I thought it would take me to do it. The first time I quoted I screwed up really badly and severally under quoted labor or at least it took be quite a lot longer to get it all done than I had thought it would. He was none to pleased. So after that I started trying to add in contingency time. Unbeknownst to me at the time he started asking the other controls engineer what he thought of my numbers. So he started coming back to me and telling me to lower my numbers that they were too high and I was sandbagging. He would tell me to lower them and that I need to hit that time. I of course seldom did because well in my opinion it was too low, and I would be creating a cobbled together mess. I have gradually kept lower my quality of work on Programs and Schematics. I gradually got more inline with what he wanted but then I would have projects where I would run in to a major technical problem for example I had one project that I quoted the programming on it as 40 hours. I had issues getting some EthernetIP sensors to communicate reliably with the PLC. I had the vendor which sold us the PLC and the sensors remote in. They had 2 different guys work on it but they couldn't make any progress with it either. I eventually got it figured out by trial and error because the documentation on how the communication was supposed to work was wrong. All of this took an additionally 40 hours. I would like to point out that the PLC and Sensors where spec out by the customer and I had no say in choosing them. The whole time my boss is acting like I am just incompetent because, "problems like this just don't happen."


He eventually came up with this rule which was a "good controls Engineer" should be able to quote a project within 10% on labor every time. Also a "good controls engineer" should be able to write a program offline, and only have no more than 10% of the total of Programming and Debug, be actual Debug. So say you spend 80 hours writing a program offline with no ability to debug it. In his opinion you should only need to spend 8 additional hours debugging, once the machine has been built and you can actually test your code.


I have been there for almost 2.5 years now.



What are your thoughts on this?
 
Last edited:
1) Test your code in simulation before as often as you can, of course you won't be able to test the mechanic but at least the basics will be right.
2) I have seen senior engineers, with 30 years plus experience completely misquoting jobs, getting basics and even scope sometimes completely wrong.


One of them told me once that a quote was nothing more than a sum of errors.
 
You will always have problems where the customer, or in this case your boss doesn't understand what is required.
You quote what you think it will take...and add some time.
If it goes pear shaped halfway through - tell them. Keep them informed.

It's not nice, sort of like admitting you got it wrong but many things can and do go wrong during a new build.
And, as the programmer, you are usually the last man in. Everyone else has finished their bit - just you now to make it all work. And if there are problems with the mechanical bits - you have to wait until someone puts it right.

What you experiencing is not unique, everyone wants the job doing as quickly and cheaply as possible. Often to make themselves look good to their superiors.
 
I think it's not fair for your boss to compare your time which I would put in the somewhat inexperient category with people that do this for a living for a long time.

Bosses will always want it done in no time at all... for you to get an idea, I had one telling me I would program a dosing unit into what is a mini refinery in two minutes. The program for that place took almost one hour to compile.

That particular problem with the PLC happens. If you were made to work on something you didn't know, adding a contingency for picking up the platform would be a requirement.

Ultimately, costs are dropped in these projects by having things done and adapted on a per project basis. This means taking care to write reusable code with configuration inputs, test that code as much as possible (with a simulator or PLC if you have) and keep it in a library.
Similarly with a lot of the drawings, they can be made into a template so that you start from there instead of zero (I don't know if this is what you do, but it's a general advice).

Lastly, a lot of companies define PLCs but don't really have a standard, every now and then a bit of salesmanship will make the customer go with a platform you'll be used to.

I would probably just look for something else in your position though...
 
Personally, I feel there are two major things in your post.


One, you say you produce sub-par quality programs/diagrams. This would bug the hell out of me. Every system I engineer, has my name on it. If something is wrong with it, it bothers me..


Two, your boss is asking you to do something. Then he says your are wrong and asks someone else. Frankly, if I were you, I would start looking for another job. A guy with your mindset won't have any issues finding a job.



Another note on that, if customer wants some specific devices, write a note in the contract that if there are some issues, they are to pay for the extra work. Or provide the support to get it to work, assuming that if the require it, they know how it works.



Next thing he will ask you is to ditch all safety devices, because they are to expensive.
 
If possible, start tracking what you do and how long it takes, on a per I/O point bases. Over time your database will give you a good average to use for estimations. Some will go faster, so will go slower, just how it is. Each DI takes x minutes for programming and y minutes for HMI. Each analog takes xx minutes. PID loops are this much time. Sequences are this much.
 
my thoughts,
I did the same thing when I first started and the boss said he had to put me on salary or let me go cause I took to long.

what I did.
look at the specs.
count the I/o
count the valves, limit switches, pb's, lights, everything.
estimate your time.

keep track of your estimate on paper in a project notebook.
study specs -
paper design for plc, I/o,...
po time - writing the po's
receiving items time.
cad time.
programming time.
hmi time.
panel layout time.
pushbutton layout time.
panel wiring time.
electrical assembly - putting panel and conduit to the machine.
debug time - I/o - not the program !!
program debug time - running the machine

You will be amazed at the time you are leaving off !

in regards to all items, estimate the time and then keep track of the time.
do an average of 5 items.
james
 
Last edited:
If your boss doesn't understand that there will be the occasional glitch, either mechanical or electrical, and doesn't build that into his project costs, he's always going to be disappointed.

When I was in project management, with several controls and mechanical people working for me, I kept a "bank" of cost over-run hours. If the project went smoothly and under allocated time, unused hours added to the bank. If the the project ran over, the bank funded the additional hours. (profit was the first thing subtracted from the sell price leaving the balance as project cost, so the bank was basically unused costs).

I kept a close eye on the bank and slowly adjusted my quotes accordingly. Customers don't take well to sudden increases so this worked out pretty well.
 
I forgot one important item,
Quote time for user manuals.

One more MUST thing to do.

get with your boss and develop a project modification page that is in triplicate.
once you have the contract signed, 15 minute jobs can add up. 1 or 2 is nothing to worry about. just keep track of them.
the 1 or 2 hour adder items, document and have the customer sign off on it.
even though he may not pay for it, document the changes!
it saved my job and the company I worked for from a major lawsuit. the project engineer took out a stress test on a part. the mechanical design was changed and never tested. all parts failed. over $200 million in parts had to be scrapped. Needless to say the project manager was fired and his company had to eat the cost.

james
 
What are your thoughts on this?


A quote springs to mind:

"I don't know how to do it so it must be easy."

I did not write that, one of the regulars here did and I find it so applicable to the situation you work in.




Good opinions on the situation you described are summed up nicely above and I agree. There is plenty of good work to be found in the automation field. So if your boss does not appreciate your efforts and is questioning you every step of the way, then my first step would be to start looking for another place to work. Just don't burn any bridges, don't vent any of your frustrations nor bang the doors on your way out. That does give short term relief but will come and bite back at you one day. Stick to the higher moral ground and always remain a gentleman on your way out. You just want to move on, broaden your view and find new challenges.
 
It sounds like you make variations on a basic theme. My business was similar. After doing it for twenty plus years I felt like I was lucky to get within +/- 10% of my estimate. That was true regardless of whether I or one of my guys did the programming. And I always added contingency allowances besides.

You cannot realistically expect to make your estimated time on every job. If you are good (and I was) you do better on some to make up for those you lose on. It evens out at the end of the year.

Go back to past jobs and get the hours. It may not be necessary to breakdown the time into as many steps as Mr. McQuade did. I would go by easy, complex, and extremely complex or the number of I/O or other simplified categories that makes sense for your systems. Put the numbers in a spreadsheet. Make a chart of the data for each category. High/Low/Close will be the most informative, with the average for Close. That will show the scatter in the data. From that you can develop an estimating strategy.

And your boss is wrong - communications glitches and hardware problems and other kinds of #$%@#^$ are the norm, not the exception.
 
1) Test your code in simulation before as often as you can, of course you won't be able to test the mechanic but at least the basics will be right.
2) I have seen senior engineers, with 30 years plus experience completely misquoting jobs, getting basics and even scope sometimes completely wrong.


One of them told me once that a quote was nothing more than a sum of errors.
A lot of the PLCs I deal with don't have simulators. I wanted early on to write my programs so that they were easier to test using IO buffering etc. but that was vetoed early on as it was a waste of time and Maintenance guys don't understand IO buffering.

I think it's not fair for your boss to compare your time which I would put in the somewhat inexperient category with people that do this for a living for a long time.

Bosses will always want it done in no time at all... for you to get an idea, I had one telling me I would program a dosing unit into what is a mini refinery in two minutes. The program for that place took almost one hour to compile.

That particular problem with the PLC happens. If you were made to work on something you didn't know, adding a contingency for picking up the platform would be a requirement.

Ultimately, costs are dropped in these projects by having things done and adapted on a per project basis. This means taking care to write reusable code with configuration inputs, test that code as much as possible (with a simulator or PLC if you have) and keep it in a library.
Similarly with a lot of the drawings, they can be made into a template so that you start from there instead of zero (I don't know if this is what you do, but it's a general advice).

Lastly, a lot of companies define PLCs but don't really have a standard, every now and then a bit of salesmanship will make the customer go with a platform you'll be used to.

I would probably just look for something else in your position though...
When I first started we were mostly using Automation Direct Clicks. I love clicks for simple things but in my opinion we were using them for machines that were much more complicated than they were designed for. I very very actively lobbied to start pushing our customers to higher end PLCs with Function Blocks and Tag Based/Automatic Allocation.


Our customer said no a couple times and that was that. My senior controls engineer opinion was that there was no reason to use function blocks as it made it harder for maintenance guys to trouble shoot and even when he was using a high end PLC he never used them.




fast forward 2 years he convinced our boss to push Allen Bradly, and we start using CompactLogix PLCs in our machines and now he loves function blocks and "complicated features that maintenance guys don't understand"


Mean while I am stuck doing all the odd ball projects, and retools that he doesn't want to do......


Personally, I feel there are two major things in your post.

One, you say you produce sub-par quality programs/diagrams. This would bug the hell out of me. Every system I engineer, has my name on it. If something is wrong with it, it bothers me..
Oh I hate it, it eats at me the entire time I am doing it, it still bothers me.

Two, your boss is asking you to do something. Then he says your are wrong and asks someone else. Frankly, if I were you, I would start looking for another job. A guy with your mindset won't have any issues finding a job.
See below


Another note on that, if customer wants some specific devices, write a note in the contract that if there are some issues, they are to pay for the extra work. Or provide the support to get it to work, assuming that if the require it, they know how it works.
I have proposed this several times. His position is that the customers would object and he doesn't want to jeopardize being awarded jobs. Some times he does get more from the customers for these issues but that doesn't stop him from more or less blaming it all on me and implying I the issue was due to my incompetence.


Next thing he will ask you is to ditch all safety devices, because they are to expensive.
well that's a whole 'nother discussion. 🙃

If possible, start tracking what you do and how long it takes, on a per I/O point bases. Over time your database will give you a good average to use for estimations. Some will go faster, so will go slower, just how it is. Each DI takes x minutes for programming and y minutes for HMI. Each analog takes xx minutes. PID loops are this much time. Sequences are this much.

If your boss doesn't understand that there will be the occasional glitch, either mechanical or electrical, and doesn't build that into his project costs, he's always going to be disappointed.

When I was in project management, with several controls and mechanical people working for me, I kept a "bank" of cost over-run hours. If the project went smoothly and under allocated time, unused hours added to the bank. If the the project ran over, the bank funded the additional hours. (profit was the first thing subtracted from the sell price leaving the balance as project cost, so the bank was basically unused costs).

I kept a close eye on the bank and slowly adjusted my quotes accordingly. Customers don't take well to sudden increases so this worked out pretty well.
They have a very basic database in access where they keep time for jobs. We are required to account for all time we are on the clock. The only category for controls, is "Controls" So everything I do is lumped together. Early on I proposed switching to some off the shelf software to track these things. My boss didn't want to as he copy and pastes the numbers in the excel spread sheets and going to something new would interfere with that.



This last project I did I kept very detailed records on my own.


A quote springs to mind:

"I don't know how to do it so it must be easy."

I did not write that, one of the regulars here did and I find it so applicable to the situation you work in.




Good opinions on the situation you described are summed up nicely above and I agree. There is plenty of good work to be found in the automation field. So if your boss does not appreciate your efforts and is questioning you every step of the way, then my first step would be to start looking for another place to work. Just don't burn any bridges, don't vent any of your frustrations nor bang the doors on your way out. That does give short term relief but will come and bite back at you one day. Stick to the higher moral ground and always remain a gentleman on your way out. You just want to move on, broaden your view and find new challenges.
See Below


For the record I actually accepted a new position at a new company on Thursday. I resigned and put in my two weeks Friday. He said well today is going to be your last day actually.


So yeah.
 
For the record I actually accepted a new position at a new company on Thursday. I resigned and put in my two weeks Friday. He said well today is going to be your last day actually.


So yeah.

hopefully you are going to do something fun since you got a vacation
 

Similar Topics

I know several of you guys work for yourself. So I want to ask. How do you handle loosing quotes when you know you where not quoting the same...
Replies
24
Views
8,022
I am going to look at some equipment Monday and decide the best way to automate it. It fairly simple, hot and cold water coming in, raise water...
Replies
11
Views
4,105
I am doing a revamp of a machine with motion control. I have no data of the inertia of the load on a certain motor, but I should want to know it...
Replies
3
Views
2,110
We have a machine that is currently down and being completely rebuilt. As part of that rebuild I have a sub-project to replace virtually all the...
Replies
22
Views
3,987
Has anyone come across any good resources for developing data flow estimates from PLC's, for some given inputs and constraints? We have a network...
Replies
13
Views
4,908
Back
Top Bottom