Job shop quoting: how to quote machining jobs from real times
In a job shop, the quote decides whether a job makes money before the job has even started. This guide covers what goes into a machining quote and how shops build quotes today. Then it shows how to estimate times and costs more accurately, works through an example and lists the common mistakes. The last part explains how ModernMES builds quotes from your own job history.
Last updated: 25 October 2026
What goes into a job shop quote
A quote for parts made to a drawing is a handful of cost items with a markup on top:
| Item | How it is worked out | Note |
|---|---|---|
| Setup time | Once per operation, for fixturing, zeroing and the first piece | The same whatever the quantity. On small batches it drives the unit price. |
| Run time | Time per piece × quantity | Separately for each operation. |
| Machine hourly rate | Time × that machine's hourly cost | An hour on a 5-axis machining center does not cost the same as an hour on a saw. |
| Material | Raw material per piece, including cut-off and scrap allowance | Bar length and sheet nesting change the waste. |
| Outside processing | Heat treatment, plating, grinding and other work done outside | Usually priced per piece or per kg. |
| Markup | A percentage added on top of cost | Markup and margin are not the same thing. See below. |
The machine hourly rate is a calculation of its own. You add up depreciation, energy, maintenance, floor space, tooling and consumables, and in most shops the operator too. Then you divide by the hours the machine actually produces in a year. Dividing by theoretical hours instead of real ones makes the rate look lower than it is.
How shops quote today
- Many shops ask the senior machinist. The most experienced person looks at the drawing and says "four minutes on the lathe, three on the mill". It is quick, but quotes wait while that person is away, and estimates vary from person to person.
- Others use a spreadsheet template. Times and rates are typed in and a formula gives the price. Templates multiply over time, and nobody is sure which copy has the current rates.
- Some look up an old quote. "What did we charge for this last year?" tells you the price you gave, not how many hours the job really took.
- Follow-up usually happens by email. The quote goes out, and then who calls back, which revision was sent and why it was lost all get lost.
They all share one problem. The time in the quote is never compared with the time the job really took on the floor, so the same error repeats in every quote.
How to quote machining jobs more accurately
- Write the routing first. List the operations the part goes through, in order, and the work center for each. If you have made a similar part, start from its routing.
- Separate setup from run time. Dividing a total time by the quantity spreads setup across the batch. You then end up too expensive on large batches and too cheap on small ones.
- Take times from past jobs. Actual times on the same or similar parts are more reliable than the best guess. Use the median rather than the average. One job with a forgotten pause skews the average but barely moves the median.
- Price risk separately. If past jobs scatter a lot, pricing at a time most jobs finished within, say four in five, is safer than pricing at the most likely time.
- Use each work center's own rate. A single shop rate makes simple jobs look expensive and complex ones look cheap.
- Put material and outside processing per piece. Include cut-off and scrap in material, and get a current price from the subcontractor.
- Quote more than one quantity. Separate prices for 10, 50 and 200 pieces give the customer options and show the effect of setup on the unit price.
- Base the delivery date on today's load. A lead time given without knowing where the job would land in the queue turns into overtime later.
- Follow up and record the result. Give every quote an owner and a follow-up date, and record why lost quotes were lost, for example price or delivery. Your win rate shows where your prices sit in the market.
A worked example with a flange quoted at three quantities
A flange goes through two operations. CNC turning takes 45 minutes of setup and 4 minutes per piece at $60 an hour. CNC milling takes 30 minutes of setup and 2.5 minutes per piece at $90 an hour. Material is $4 per piece and outside heat treatment is $2 per piece. The markup is 25% on cost.
| Qty | Labor | Material | Outside | Cost | Markup (25%) | Price | Unit price |
|---|---|---|---|---|---|---|---|
| 10 | $167.50 | $40.00 | $20.00 | $227.50 | $56.88 | $284.38 | $28.44 |
| 50 | $477.50 | $200.00 | $100.00 | $777.50 | $194.38 | $971.88 | $19.44 |
| 200 | $1,640.00 | $800.00 | $400.00 | $2,840.00 | $710.00 | $3,550.00 | $17.75 |
At 10 pieces, turning is (45 + 4 × 10) = 85 minutes at $1 a minute, or $85. Milling is (30 + 2.5 × 10) = 55 minutes at $1.50 a minute, or $82.50. Between 10 and 200 pieces the unit price falls from $28.44 to $17.75, and setup is the reason. The same 75 minutes of setup is shared by 10 parts in one case and by 200 in the other. Quote with a single time per piece that hides setup, and you never see that difference.
Common quoting mistakes
- Markup gets confused with margin. Adding 25% to cost gives a profit of 20% of the price, so a shop that aims for a 25% margin and adds 25% falls short.
- Setup is forgotten, or spread the same way over every batch. This is the most common reason for losing money on small batches.
- Catalog or CAM cycle times are used. They leave out tool changes, measuring, loading and deburring.
- One shop rate is used for everything. Work on the expensive machine is then priced too cheap, and work on the cheap one too high.
- A date is promised without checking capacity. The won job lands behind a work center that is already full.
- Revisions get mixed up. The customer approves revision 2, and the shop builds to revision 1.
- Nobody records why quotes were lost. Then you never find out where you are too expensive.
How quoting works in ModernMES
In the Quotes screen of the ModernMES panel, times come from your shop's own past jobs and hourly rates come from your machines. You can quote a customer on file or a prospect that is not a customer yet. Each part is a line. Its steps can come from a saved routing, the part's own routing, the steps of a past job or a routing suggested from history, or you can enter them by hand. A part that is not in the system yet gets a new part code, and the part itself is created when the quote becomes a project.
How times are estimated from history
- For each step, ModernMES looks at completed work orders of the same operation from the last 36 months. It checks this part's own history first, then parts with similar codes from the same family, then jobs on the same resource group, and finally every job of that operation. If a level has fewer than 3 jobs, it moves to the next.
- Times are reduced to minutes per piece, and the estimate is the median of the past jobs. Jobs that took more than ten times the plan, or less than a tenth of it, are left out.
- When past jobs ran at clearly different quantities, setup is separated from the time per piece. When their quantities are too alike, setup stays inside the time per piece and the screen says so.
- Without enough history, the routing's planned time is used, or the operation's default time if there is none. That time is corrected by the resource group's actual-to-planned ratio over the last 18 months.
- Next to each time, a "Where does this number come from?" popover shows which history was used, the median, the p80 and the work orders behind the estimate.
- You can type any step's time yourself. That step then counts as manual, and re-estimating leaves it alone. "Back to estimate" ties it to history again.
How the price is built
- The hourly rate is the hourly cost of the step's planned machine. If there is none, it is the average hourly cost of the machines in its resource group, and failing that, the cost of the operation's default machine. You can also type a rate per step.
- Material and outside processing are entered per piece, and markup as a percentage on cost. Labor is each step's time multiplied by its own hourly rate.
- A line can carry up to six quantities, written like "10 / 50 / 200". Each one is priced separately and shows as its own option on the printout.
- When the cautious price (p80) is ticked, labor is priced at the time four in five past jobs finished within, instead of the median. When the quote becomes a project, the plan still uses the median.
- A quote can be in another currency. Machine hourly rates are converted at the exchange rate you enter, while material and outside processing are entered in the quote's currency.
Sending, follow-up and converting to a project
- The capacity impact shows what would happen if the quote were won. The quote's steps are added behind today's queue, and you see when each resource group's queue would clear and the earliest delivery date. It is only a preview. The plan, the queue and reports do not change.
- The quote prints with your logo and tax details, in English or Turkish.
- A quote can be draft, sent, won, lost, cancelled or expired. Marking a quote as sent keeps a revision (Rev 1, Rev 2…), and earlier revisions stay readable. A sent quote whose validity date has passed becomes expired on its own.
- Each quote has an owner and a follow-up date, and the list can be filtered to those that are due. Lost quotes carry a reason. Above the list you see the value of open quotes, the value won this quarter and the win rate.
- Duplicating a quote opens a new draft with the same customer, parts, steps and prices.
- A won quote becomes a project in one click. The prospect and new parts are created. Each line becomes a project part with the ordered quantity, and each step becomes a planned work order with its resource group, machine and operator. Until then, a quote does not appear on any production screen.
Because estimates come from times recorded on the shop floor, they get sharper the longer the system is used. You can look around the live shop floor demo or compare the plans in the pricing section. The 14-day free trial needs no credit card.
Frequently asked questions
Why does the unit price of a machining quote change with quantity?
Because setup time does not depend on quantity and is shared across the batch. A 75-minute setup adds 7.5 minutes to each of 10 parts but less than half a minute to each of 200, so the unit price falls as the batch grows.
How does ModernMES estimate times when we have no past jobs?
When no level of history has at least 3 completed jobs, it takes the routing's planned time, or the operation's default time, and corrects it by the resource group's actual-to-planned ratio. If neither exists, you type the time. Until you do, that step's labor counts as zero and the screen warns you.
What is the cautious (p80) price?
It prices labor at the time four in five past jobs finished within, instead of the median. It is a way to put risk into the price for jobs whose times scatter widely. When the quote becomes a project, planning still uses the median.
Does ModernMES email the quote to the customer?
No. You print the quote and send it yourself. When you mark it as sent in ModernMES, what the customer received is kept as a revision. Later changes get the next revision number when they are sent.
How does a won quote reach production?
"Convert to project" marks the quote as won and opens a project. Each line becomes a project part with the ordered quantity, and each step a planned work order. The prospect and any new parts are created too.
Related pages
- Lot Traceability Software for Batch ManufacturingBatch traceability in manufacturing: heat numbers, certificates, two-way genealogy for recalls, and a QR product passport with energy estimates.
- Real-Time Production Tracking for CNC Machine ShopsReal-time job tracking for CNC machines: operator terminals, a live view of which job runs on which machine, downtime reasons, real cycle times. Free for 14 days.
- Project-Based Production Tracking for Machine BuildersEngineer-to-order tracking for machine builders: projects, parts and operations, deadline feasibility per department, and the actual hours behind each quote.
- Mold and Die Shop Production Tracking SoftwareTrack every mold as a project with its parts and CNC, EDM, wire EDM and grinding steps. See the bottleneck before assembly day. Cloud or on-premise.
- What Is MES? Manufacturing Execution System Software ExplainedWhat a manufacturing execution system (MES) does in production, how it differs from ERP and MRP, the MES software options and what to look for when choosing one.