Free job profit calculator for machine shops. Check which past jobs actually made money. Load completed jobs with real material, labor, machine, and overhead costs, and see which customers are draining your bottom line.
| Job | Customer | Revenue | Material | Outside | Lbr hrs | Mach hrs | Profit | |
|---|---|---|---|---|---|---|---|---|
| $2,036 | ||||||||
| $234 | ||||||||
| $3,330 | ||||||||
| $14 | ||||||||
| $1,140 |
Every shop owner has a gut feeling about which customers are profitable and which ones aren't. The gut is usually wrong. Not because shop owners are bad at their business. They're not. The jobs that feel profitable are the ones that run clean and ship on time. The jobs that actually make money often look annoying on paper. And the jobs that lose money usually look fine right up until you load all the real costs into them.
This calculator is a retrospective job costing tool. You drop in a list of completed jobs, customer, revenue, material cost, labor hours, machine hours, and it loads the real cost of running those jobs at your shop rate. You see margin per job, a weighted customer rollup, and how much money you'd put back on the bottom line by dropping your worst performers. Nothing here is forward-looking quoting math. This is retrospective, did-I-actually-make-money math.
Paperless Parts has cited that 10 to 20 percent of the jobs in a typical small shop are unprofitable, and the shop doesn't know it. ProShop ERP puts the number higher. The reason isn't laziness. It's that tracking cost at the job level takes a discipline most shops don't have, because it never feels urgent. You quote a job, you run it, it ships, you invoice, the check clears. As long as enough checks clear each month the shop stays open. Nobody goes back and asks whether that specific job, with those specific setup hours and that specific scrap rate, actually made the margin you quoted.
The jobs that quietly drain money tend to share patterns. Long setups for small quantities. Customers who request small changes mid-run. Materials you don't normally stock, so you pay a premium at the distributor. Customers who always want it expedited. None of those things are fatal on their own. Loaded into the same job at the same time they're the difference between a 22 percent margin and a negative 8 percent margin.
A proper retrospective job cost has six components. Material (what you actually paid your supplier, not what you estimated). Outside operations (heat treat, plating, coating, anything you sub out). Labor hours times loaded labor rate (wage times burden, not just wage). Machine hours times machine hour rate (depreciation plus power plus tooling plus repairs). Overhead allocation (rent, insurance, admin, divided by total running hours). And scrap or rework if any. Skip any of those and your cost number is low, which means your margin looks higher than reality.
The machine rate and overhead allocation are where most shops cut corners. "I figure about $30/hour total" is a typical answer. That number is almost always wrong. Usually too low. A real machine hour rate on a modest VMC, properly computed, runs $45 to $70 an hour once you load depreciation, power, tooling, repairs, and the overhead share. If you've already done the shop rate math you have these numbers. If you haven't, do that first. Plug the outputs into this tool and you'll see a different picture than the one in your head.
Averaging job margins gives you a misleading answer. Say you have ten jobs at 25 percent margin and one job at negative 40 percent. The simple average is (25 times 10 minus 40) divided by 11, which comes out around 19 percent. Sounds fine. But if the losing job is $20,000 in revenue and the ten winners average $1,500 each, the actual weighted margin for that customer is negative. A single large loser hides behind a pile of small winners if you don't weight by revenue.
This calculator uses revenue weighted margins for every customer rollup. It's the only honest way to see customer level profitability. If a customer shows up at the top of the loser list, the question isn't "are those jobs bad". The question is "why is the total margin on this relationship negative even though some wins are mixed in". That usually leads to a pricing conversation, a process change, or sometimes a clean break.
Once you run the analysis, the calculator shows you how much money you'd add per month by simply not taking the three worst jobs on the list. That number is often startling. $800, $1,200, $2,000 a month in money you're currently losing on work you're actively doing. It's the fastest positive change a shop can make. No new customer required. No equipment to buy. You just say no to three quotes you would have said yes to last quarter.
Saying no is hard when you're used to running hot, so a number helps. If you can see on paper that dropping three specific customers would add $1,200 a month to profit, that's $14,400 a year in found money. You still need the shop full, but now you know which jobs to replace and the price floor to replace them at.
Start with the last 30 days of completed jobs. Pull them from your board, your invoicing tool, or a handwritten list. For each job you need six numbers: job ID, customer name, revenue (what you invoiced), material cost (what you actually paid), labor hours logged, and machine hours run. If you track outside operations separately, add those. If you don't, fold them into material cost.
Set your rates at the top. Loaded labor rate, machine hour rate, and overhead per hour. If you don't know these cold, use 1.23 times your machinist's wage for loaded labor, $35/hour as a rough machine rate on a modest VMC, and $15/hour for overhead. Those are conservative starting numbers. Real shops usually come in higher. You can refine them as you go.
Paste your jobs into the table or add them one at a time. The calculator highlights losing jobs in red and rolls everything up by customer. Export a PDF when you're done. It's formatted clean enough to hand to your accountant or keep as a monthly record. Nothing gets sent to a server. The whole calculation runs in your browser and your numbers stay local.
Numbers make more sense than explanations. Here are five completed jobs run through the same math this calculator uses. The rates are the calculator defaults: loaded labor at $32/hr, machine rate at $28/hr, overhead at $18/hr. Overhead is allocated on the greater of labor hours or machine hours, because the machine is tying up shop capacity even when the operator walks away to deburr another part.
J-2041, Acme Hydraulics.Revenue $3,200. Material $420. Six labor hours, twelve machine hours. Labor cost is 6 × $32 = $192. Machine cost is 12 × $28 = $336. Overhead is max(6, 12) × $18 = $216. Total cost: $420 + $192 + $336 + $216 = $1,164. Profit: $2,036. Margin: 63.6%. A great job. Long cycle time relative to labor means the machine was making money while the operator was doing something else.
J-2042, Acme Hydraulics.Revenue $850. Material $120. Four labor hours, eight machine hours. Labor $128, machine $224, overhead 8 × $18 = $144. Total cost: $616. Profit: $234. Margin: 27.5%. Acceptable but thin. If the operator spent an extra two hours on setup that didn't get logged, this job flips to single digits.
J-2043, Beta Aerospace.Revenue $5,600. Material $780. Outside operations $250 (heat treat). Ten labor hours, twenty machine hours. Labor $320, machine $560, overhead 20 × $18 = $360. Total cost: $780 + $250 + $320 + $560 + $360 = $2,270. Profit: $3,330. Margin: 59.5%. High revenue, high margin. The outside ops cost is real but small relative to the job size. This is the kind of job you want more of.
J-2044, Johnson Fab.Revenue $420. Material $80. Three labor hours, five machine hours. Labor $96, machine $140, overhead 5 × $18 = $90. Total cost: $406. Profit: $14. Margin: 3.3%. Barely broke even. The revenue was too low for the time it consumed. One tool change, one fixture issue, one extra deburr pass and this job is negative.
J-2045, Beta Aerospace.Revenue $2,100. Material $340. Five labor hours, ten machine hours. Labor $160, machine $280, overhead 10 × $18 = $180. Total cost: $960. Profit: $1,140. Margin: 54.3%. Another solid performer from the same customer. Beta Aerospace is looking like a relationship worth keeping.
Now roll it up by customer. Acme Hydraulics: total profit $2,036 + $234 = $2,270 on total revenue $3,200 + $850 = $4,050. Weighted margin: 56.0%. Beta Aerospace: total profit $3,330 + $1,140 = $4,470 on total revenue $5,600 + $2,100 = $7,700. Weighted margin: 58.1%. Johnson Fab: $14 on $420. Weighted margin: 3.3%.
Johnson Fab's job barely covered costs. One more hour of machine time and it goes negative. That is the kind of job you need to either reprice or stop taking.
Job costing means tracking actual costs against completed jobs, not estimated costs against quoted jobs. The distinction matters. A quote is a prediction. Job costing is a post-mortem. It tells you what actually happened after the part shipped and the invoice went out.
A complete job cost has six components. Material: what you actually paid your supplier, including freight and cutting charges. Outside operations: heat treat, plating, anodizing, grinding, anything you subbed out. Loaded labor: the operator's hourly wage multiplied by the burden factor (benefits, payroll taxes, workers' comp), typically 1.2 to 1.3 times base wage. Machine time: hours on the spindle multiplied by the machine hour rate, which includes depreciation, power, tooling, and maintenance. Overhead allocation: your fixed costs (rent, insurance, front office, utilities) divided across billable hours. Scrap and rework: any parts you ran twice or threw away.
If you skip overhead and depreciation, your costs look lower than they are and your margins look higher. That is how shops end up busy and broke.
The NTMA publishes profitability data for small machine shops. Healthy net margin after all costs are fully loaded runs 15 to 25 percent. Gross margin, before overhead and G&A, typically runs 40 to 55 percent. The gap between gross and net is where shops get confused. A job that looks like a 45 percent winner on gross margin might be a 12 percent job once you load overhead and depreciation. Shops that only track gross margin consistently overestimate how well they're doing.
Jobs that come in below 10 percent net margin are candidates for repricing. Maybe material went up since you last quoted it. Maybe setup took longer than estimated. Maybe the customer added a tolerance callout mid-run. Whatever the cause, a single digit margin means the job is one bad day away from losing money.
Jobs below 0 percent are actively costing you money. You are paying for the privilege of running that work. Every hour your machine spends on a negative margin job is an hour it could have spent on something profitable.
The Pareto pattern shows up in almost every shop we've looked at. The top 20 percent of jobs generate 60 to 80 percent of total profit. The bottom 10 to 20 percent generate actual losses. The middle is fine but unremarkable. If you have never sorted your completed jobs by margin and looked at the bottom of the list, you will be surprised.
Running the numbers is step one. Doing something with them is step two. Here is a straightforward monthly process that takes about an hour and consistently improves shop profitability.
First, pull the last 30 days of completed jobs into the calculator. Every job that shipped and invoiced. Second, sort by margin and look at the bottom five. For each one, ask: is this a pricing problem, a process problem, or a fit problem? Pricing problems are fixable with a conversation. Process problems mean something in your shop took longer than it should have. Fit problems mean the job doesn't belong in your shop at all, wrong size, wrong capability, wrong volume.
Third, have the pricing conversation. If a customer's jobs are consistently below 10 percent margin, show them the numbers. Most reasonable customers understand that prices need to reflect real costs. The ones who don't are telling you something about the relationship.
Fourth, run it again next month. Job profitability analysis is not a one-time event. It is a monthly habit. The shops that do it every month catch problems early. The shops that do it once a year find out they've been losing money for eleven months.
The default loaded labor rate of $32/hr assumes a $26/hr machinist with a 23 percent burden factor covering benefits, payroll taxes, and workers' compensation. The 23 percent figure comes from the Bureau of Labor Statistics Employer Costs for Employee Compensation (ECEC) survey for manufacturing, 2024 data.
The default machine rate of $28/hr reflects the depreciation plus variable cost of a mid-range VMC. This is a conservative starting point. Most shops running newer equipment will see higher rates once they properly load depreciation.
The default overhead rate of $18/hr represents typical small shop fixed costs (rent, insurance, utilities, admin) spread across 1,700 to 1,800 billable hours per year. This is consistent with NTMA overhead benchmarks for shops in the 5 to 20 employee range.
The 15 to 25 percent net margin range comes from NTMA profitability reports for small job shops. Revenue-weighted margin is standard managerial accounting practice for measuring customer profitability, as described in most cost accounting textbooks. It avoids the distortion that simple averaging creates when job sizes vary significantly.
Free tool from swarf.shop. No email, no signup, no catch. We build job tracking software for small machine shops. These calculators are stuff we needed ourselves.