Costing software for manufacturing
Costing software turns a part into a priced bill of material and a routing, then puts a rate on the time and the overhead. The total it prints is worth what those three inputs are worth. A shop often cannot say which record any of the three came from, or when it was last true. Each section below takes one input, names the record behind it and the check that says whether it still holds.
What costing software for manufacturing does
The category puts a price on every material line, a time on every operation, and a rate on the time and the overhead behind it. The output is one number per part, and it feeds every quote the shop sends.
Three different things travel under the same word.
- Product costing and estimating. Prices a part before you make it, from material, time and rates.
- Job costing in accounting. Reports what a finished job consumed after it closes. It cannot price a part the shop has not run.
- ERP standard cost. One number per part, set once and carried forward until somebody changes it.
A cost per part is a recipe, and a recipe is only as good as the records behind each ingredient.
The three inputs a cost per part is built from
A cost has three terms: what the material costs, how long the work takes, and what rate carries everything else. Each goes stale in its own way.
The list the cost runs on
A cost needs a bill of material and a routing before the three inputs matter. Some shops hold both in the ERP. Others hold the bill on a drawing and the routing in an estimator's head, and a tool that assumes the ERP has them prices nothing. Where neither exists, the routing comes from the operations recorded against comparable finished jobs. The bill comes off the drawing and the material issued to those jobs. Both are derived, and the cost says so.
Material at the price actually paid
A material price comes from one of four places. The last purchase invoice says what the shop paid and when. A current supplier quote says what the shop would pay today, for a window that expires. A contract price holds for a term and applies to named items. A standard cost is a number somebody typed in, and it holds until somebody retypes it.
Rank those four by how recently a record confirmed them. An invoice from last month outranks a standard cost loaded during an ERP migration.
Two things break this in practice. A purchase extract with no currency column reads a US invoice as Canadian dollars. The error survives into every total built on top of it. Parts nobody has bought in over a year carry a price for a market that has moved.
Time from the shop's own records
A time comes from one of three places, in rising order of trust. A vendor cycle time model computes a time from the geometry and a machine class. The ERP's routing standard is a time somebody set, and it stays right until the process changes around it. The hours recorded against comparable finished jobs describe what the work took here.
The recorded hours win because they carry the shop's own conditions, including setups and interruptions a geometry model does not see. Using them takes time punches tied to a job rather than to a day. It also takes enough comparable jobs to form a band rather than a point, and a rule for what happens when there are not enough. A tool without that rule fills a thin band with a confident number.
The rate that carries everything else
A machine rate, a labour rate and a burden rate turn time into money. An overhead rate is an allocation. Somebody divided a pool of cost by a base. The result is a choice about how to spread that pool, and nothing measured it.
Label the rate as a choice, and show which rate was applied to which operation. The person reading the cost can then argue with the rate instead of the total. Which absorption method the plant uses belongs to the controller. The costing tool records the rate it applied and the date that rate was set.
Where a costed part goes wrong
Four failure modes show up again and again.
- A material price older than the quote it is pricing. One line inside a complete-looking total describes a purchase from a different year.
- A routing time that is a standard nobody has measured against a finished job. It was right when it was set, and the process has moved since.
- Two code lists that do not agree, so the ERP part and the estimating sheet part are different parts.
- A line the system could not price, returned as a zero. The total absorbs it, and nothing on the screen says a term is missing.
A costing module starts by reading the plant's purchase history, which is often older and thinner than it looks. Many parts were last bought more than a year ago, so the price on record is stale. An extract can arrive with no PO number and no currency column, so a line cannot be tied back to an order or read in the currency it was paid in.
Bring one part number
Send the part where your quoted cost and your actual cost disagree the most, and we will walk the recipe behind it with you.
Start a conversationRead the recipe, not only the total
Every term in a cost carries two things beside the number: a basis and a source.
The basis is one of four words. Observed means the term came from a record. Derived means it was computed from records. Assumed means somebody chose it. Gap means no record answers. A total of four observed terms is a different object from a total of three observed and one assumed.
The source is the row the term came from, the file or system that row came from, and the date that file was pulled. It lets a controller open the record behind a line.
| Term | Basis | Source |
|---|---|---|
| Plate, 304 stainless | Observed | Purchase line on the latest invoice, in the currency paid |
| Laser cut, hours | Derived | Band from comparable finished jobs, with the date the time records were pulled |
| Machine rate | Assumed | The rate sheet the controller set, with its date |
| Anodizing | Gap | No purchase line for this finish, purchasing owns the record |
When a term has no record behind it, the tool names the gap instead of printing a zero. A named gap says what is missing, who owns the record, what it takes to close it, and what closing it unlocks. A costing tool that cannot refuse will always produce a number, which is why a number from such a tool is not evidence of anything.
Read what AI does inside a plant, module by module.
Put the ERP's cost beside yours, not under it
The ERP holds a standard cost per part. It was set at a moment, from a bill of material, a routing and rates that were right then. It has been carried forward since. That makes it a reference to check against, and a poor answer to what the part costs this week.
Show three columns in place of one. Column one is the recipe's cost, with the date of the records behind it. Column two is the ERP's standard cost, with the date it was set. Column three is the difference.
A gap in either direction is a finding. The recipe reading higher points first at material that has moved, or a routing time set on an easier process. The recipe reading lower points first at a standard that absorbed an allowance the recorded hours already include.
A comparison only works when both sides name the same part.
Two part-code lists can sit inside the same ERP, and neither may match the code dialect the estimating tool uses, so no line can be matched by code alone. The bill of material and the routing may not be in the ERP at all.
Reconciling records that disagree is its own piece of work. At a distributor, thousands of files came down to one catalogue feeding four systems.
A cost becomes a price when a margin rule and an approver are applied to it. That step is manufacturing quoting software, and it reads the same record this one does.
What to check before you buy costing software
Six questions decide whether a costing tool can produce a number your desk will defend.
| What to check | Why it decides the answer |
|---|---|
| Can the ERP export the item, purchase and routing tables on a schedule | Without a scheduled export, every cost is a manual pull and goes stale the day after |
| Do purchase records carry a date, a currency and a quantity | A price without a currency or a date is not a price |
| Are hours recorded against a job, not against a day | Job-level hours are the only way to correct a standard time |
| Is there one part code list, or several | Two lists means the comparison against the ERP cannot be made |
| Does the tool show the basis and the source of every term | A total without its terms cannot be argued with |
| Who approves a cost before it leaves as a price | If nothing approves, the tool is writing prices |
How long a quote takes to produce is a number manufacturers already track. The 2025 Built to Sell Report puts 71 percent of respondents at a quote that takes at least a day to produce. TrendCandy fielded it for Aleran across 200 US mid-sized and enterprise manufacturers. The top 20 percent of participants in Modern Machine Shop, Top Shops 2025 report a one-day quote time.
Each answer is a fact about the plant's own records. You can also score your plant in a few minutes.
How we build costing on a plant's own data
We build one data warehouse per client, on a dedicated server, out of the systems the plant already runs. The ERP export, the purchase history, the time records and the spreadsheets holding the rules all land in it. Every value keeps a line back to the record it came from.
The costing module sits on that warehouse. Material enters at the price on the record. Time comes from the hours recorded against comparable jobs. The rate is applied and labelled with the date it was set, and the ERP's own figure sits beside the result. A number becomes trustworthy once it reproduces figures the shop already has. Before the module suggests anything, it reproduces, exactly, the figures the plant's own cached arithmetic already holds.
A named person approves every cost before it becomes a price. Costing is one module among several on the same workspace, as the offers page shows. It drafts the number and stops. A buyer can ask the warehouse a question in plain language and get the record named beside the number.
A forward-deployed engineer builds it on site against the plant's real data. The rules that decide a cost live in people's heads and in spreadsheets, not in a specification.
At a machine shop, the owner priced every quote himself from experience, with the drawings buried in email. He now gets a suggested price on each request, anchored on what he charged for comparable parts. The dimensions off the title block sit beside it, with what the metal cost on recent invoices. It writes a draft estimate into the accounting system and a draft reply into his mailbox and stops there. The end-to-end run-through with the owner has not happened yet.
Where the costing data sits
Your data is designed to stay at rest on your own server in Canada. Inference runs on that server with an open-weight model, or through a frontier model under a written zero-data-retention control. The contract names the model tier, because zero retention is not available for every tier.
Cost data is the sensitive half of what a plant holds, because it carries margin, supplier pricing and the customer list. The controls covering it are set out under data sovereignty in Canada.