How ETO manufacturers quote, engineer, buy, build, bill, and cost one-off jobs in NetSuite, stage by stage.
Engineer-to-order (ETO) manufacturing means designing a product for a specific customer order and then building it, usually once. A conveyor line for one plant, a pressure vessel built to a customer’s specification, a special-purpose machine, a custom switchgear lineup: the order arrives before the design exists, and the design is only finished after the customer has signed. That single fact changes how quoting, engineering, purchasing, production, costing, and billing have to work, and it is why ERP systems built around repeat production struggle with ETO. This guide walks through the ETO lifecycle stage by stage, shows what NetSuite handles natively at each stage, explains the setup decisions that decide whether an ETO implementation works, and covers where native NetSuite stops and what fills the gap. For the short version, start with our overview of NetSuite for engineer-to-order manufacturers.
Most manufacturing software assumes the item exists before the order does. You define an item, a bill of materials, and a routing once, build it hundreds of times, and the system gets better at planning it with every run. ETO turns that around. The item, BOM, and routing are created for the order, often in stages, and are rarely used again. Three consequences follow.
The four strategies differ in how much of the product is defined before the order arrives. Many manufacturers run more than one, so the system has to handle the mix.
| Strategy | Defined before the order | Main lead-time driver | What the ERP must do well |
|---|---|---|---|
| Make-to-stock (MTS) | Finished item, BOM, routing, and inventory | Stock on hand | Forecasting, replenishment, inventory accuracy |
| Configure-to-order (CTO) | Standard options and modules | Assembly capacity | Rules-based configuration and pricing |
| Make-to-order (MTO) | Item design, BOM, and routing | Materials and shop capacity | Order-linked work orders and scheduling |
| Engineer-to-order (ETO) | Only past designs and know-how | Engineering and long-lead materials | Estimating, project control, phased BOM release, change management, job costing |
The line between configure-to-order and engineer-to-order is often blurry. A maker of custom enclosures might configure most of an order from standard options and engineer the rest. In NetSuite that usually means a configurator for the standard portion and a project for the engineered portion, both attached to the same sales order.
An engineer-to-order job moves through seven stages. The records change at each stage, but the job has to stay one thing from the first estimate to the final invoice.
In NetSuite, the opportunity and estimate records carry the commercial side. The estimating work behind the price is where ETO shops differ. Good estimators start from a similar past job, adjust material, engineering hours, and shop hours, then add allowance for risk. That only works if past jobs were costed accurately, which is why job costing at the end of the lifecycle feeds estimating at the start. For products that are partly standard, NetSuite CPQ can generate a configured bill of materials and routing from rules, with pricing driven by the options selected. For fully engineered work, keep estimate lines at a level you can later compare with actuals: engineering, material by category, labor by work center, subcontract, freight, and installation.
When the estimate becomes a sales order, the job needs a home. In NetSuite that home is a project record, with tasks for engineering, procurement, production, testing, and delivery, a budget carried over from the estimate, and a billing schedule. Getting this structure right matters more than any other decision in an ETO implementation, because every purchase, work order, time entry, and invoice that follows has to land on the project. The structure choices are covered in the setup section below.
Engineering produces drawings and a bill of materials, usually in a CAD or PLM system. NetSuite needs the result, not the model: items, a BOM, and a routing. With the Advanced Bill of Materials feature, NetSuite keeps BOMs as separate records with revisions and effective dates, and the Engineering Change Order feature in the Supply Chain Management SuiteApp adds approval routing and a change history for items and BOMs. Record engineering hours against the project task as they are worked. Engineering overruns are one of the most common reasons ETO jobs lose money, and they stay invisible if engineers log time once a month. Where CAD or PLM holds the master BOM, a NetSuite integration that pushes released BOMs into NetSuite removes the retyping step that causes most BOM errors.
ETO shops cannot wait for the complete design before buying. Motors, castings, custom valves, and control components with twelve-week lead times are released first, often from a preliminary BOM, while engineering finishes the rest. Those purchase orders should carry the project from the start, so their cost lands on the job and the material is visibly committed to this order rather than sitting in general stock. Subcontracted operations such as outside machining, coating, or heat treating can run through NetSuite’s outsourced manufacturing feature or through purchase orders tied to the work order, depending on how much visibility you need.
Production runs on work orders. A work order created from a sales order line is a special order work order: it is linked to that sale, and components are committed for that order rather than for stock. With the Manufacturing Work in Process and Manufacturing Routing features enabled, each operation is recorded against a work center with labor and machine time, which is what makes actual cost by operation possible. Large ETO products are rarely a single assembly, so a multi-level bill of materials with subassembly work orders is normal. Scheduling is where native NetSuite is thinnest for ETO. Work orders carry dates, but a realistic plan needs the job’s tasks, their dependencies, and the actual capacity of each work center in one view.
Many ETO products are tested at the plant, shipped in sections, and installed or commissioned on site. Serial numbers recorded on the finished assembly and its key components create the as-built record that service and spare-parts sales will rely on for years. Installation and commissioning time belongs on the project, not in overhead, or the job will look more profitable than it was.
ETO contracts rarely bill on shipment alone. A deposit on order, progress or milestone billing during the job, and a final payment on acceptance are common, and NetSuite project billing supports fixed-bid milestone, fixed-bid interval, time and materials, and charge-based billing. Revenue recognition needs its own decision. Under ASC 606, a custom product with no alternative use and an enforceable right to payment for work performed to date may qualify for revenue recognition over time rather than at delivery. That is a question for your auditors, but the system should support either answer, and NetSuite Advanced Revenue Management does. Closing the job means comparing actual cost with the estimate line by line and feeding what you learn into the next quote.
Create one project per sales order, or per major line when one order covers several distinct products. Build tasks that mirror the estimate structure so budget and actual line up, and use a project template so every job looks the same in reporting. Projects organized differently every time cannot be compared, and comparing jobs is the point.
Every ETO job creates new parts. If every bracket and weldment becomes a permanent inventory item with no naming discipline, the item master grows by thousands of records a year and nobody can find anything. Decide up front which parts are standard catalog items and which are job-specific, how job-specific items are numbered (a job-number prefix is common), and when they are made inactive.
Standard costing works when you build the same product repeatedly and want to measure variance from a known standard. A one-off assembly has no standard to vary from. Most ETO shops need cost to follow the components, labor, and overhead the job actually consumed, with labor and overhead rates set by work center through routings. Choose the costing method for job-specific assemblies deliberately, and test it on a completed job before go-live.
Two kinds of change hit an ETO job. An engineering change revises the design, and it belongs in the engineering change order process, with approvals and a revision history. A customer change order changes the scope and usually the price, and it belongs on the sales order and the project budget. Both have to reach purchasing and the shop floor quickly, but mixing them produces either unbilled scope or unapproved design changes.
Engineering, shop, and installation hours are the largest cost variable on most ETO jobs. If time is keyed from paper at the end of the week, cost is late and wrong. Time captured against the task or operation as it happens is what makes margin visible while there is still time to act on it.
NetSuite covers the individual pieces of ETO well: estimates, projects, BOM revisions and change orders, purchase orders, work orders with routings, project billing, and revenue recognition. The gap is between the pieces. The project does not automatically know which work orders belong to it, work order operations do not become project tasks, the project schedule and shop capacity are planned in separate places, and shop-floor completions do not become project time. Most ETO manufacturers on NetSuite fill that gap with spreadsheets, and the spreadsheet quietly becomes the real system.
Project2Prod closes that gap inside NetSuite. It creates project tasks from work orders and their operations with the full hierarchy, assigns project segments across sales orders, purchase orders, and work orders, schedules production on a Gantt chart with capacity and dependencies, tracks planned versus actual cost by labor, machine, and overhead, and turns shop-floor completions into project time entries. Integrity checks keep the chain between project, work order, and task consistent. It runs natively, with the same login and no separate system to integrate. For shop-floor scheduling and control beyond the project view, FactorySync adds visual scheduling and real-time production status (see how FactorySync handles shop floor control).If any of these comes from a spreadsheet today, it points to the part of the process that is not yet running in the system.
ETO implementations go better in phases, each of which is useful on its own.
For new NetSuite customers, Consule runs this sequence as a NetSuite implementation (our NetSuite implementation guide covers the phases, timelines, and cost drivers). For manufacturers already on NetSuite whose jobs have drifted back into spreadsheets, a NetSuite optimization engagement starts with an assessment of where the process leaves the system (our NetSuite optimization guide explains how that works), and the Consule CARE program covers ongoing support after go-live.
ETO practices run through several of the industries we work with: industrial machinery and capital equipment, metal fabrication and machine shops, aerospace and defense, electronics and instrumentation, medical devices, and furniture and cabinetry, where millwork and casework are often engineered to order. Each of those pages covers the industry-specific requirements on top of the ETO foundation described here. For how NetSuite’s manufacturing features fit together across every type of production, see our complete guide to NetSuite manufacturing.
Engineer-to-order is a manufacturing strategy in which a product is designed for a specific customer order and then built, usually once. The design, bill of materials, and routing are created after the order is won, so quoting, engineering, purchasing, and production are managed together as a project.
Yes. NetSuite covers estimates, projects, bills of materials with revisions and engineering change orders, purchasing, work orders with routings, project billing, and revenue recognition in one system. What it does not connect natively is the link between the project and production, which Consule’s Project2Prod adds inside NetSuite.
In make-to-order, the design already exists and production starts when the order arrives. In engineer-to-order, the design itself is created for the order, so engineering time, design risk, and design changes are part of every job.
Tie every cost to the job through its project: purchase orders, work orders, engineering time, and installation time. Use routings with labor and overhead rates by work center so production cost reflects the operations actually performed, and compare actual cost with the estimate line by line when the job closes.
Start with financials, estimates, projects, purchasing, and project billing so every job lives in NetSuite from day one. Add bills of materials, engineering change orders, work orders, and job costing next, then scheduling, shop-floor data capture, and CAD or PLM integration. Each phase is usable on its own.
Planning NetSuite for an engineer-to-order operation, or already on NetSuite and running jobs from spreadsheets? Get in touch to talk through your process, or see how Project2Prod connects projects and production inside NetSuite.