A pump manufacturer quotes a replacement skid for £420,000. The NetSuite estimate shows 27.6% gross profit. The sales manager sees a healthy deal and approves the price.
The estimate does not include £18,400 of outside machining, £8,400 of seller-paid freight, a £12,000 warranty allowance or the £5,600 rebate attached to the customer agreement. Once those costs enter the decision, expected contribution falls to £71,540, or 17.0%.
Nobody made an arithmetic error. The team approved one definition of margin and delivered another.
That gap appears often in industrial quotes. NetSuite calculates estimated gross profit from transaction revenue and the estimated cost source on each item line. It can do that calculation well. It cannot decide whether average inventory cost, a current supplier offer, a routing estimate or a contract-specific allowance represents the commercial exposure in this bid. Your quoting process has to make that decision visible.
This guide explains how to use NetSuite’s gross-profit fields, where those fields stop, and how to build a quote margin review that a sales manager, estimator and finance team can trust.
Start with the decision, not the percentage
The same quote can carry several valid profit figures because each figure answers a different question.
| Measure | Calculation | Decision it supports |
|---|---|---|
| NetSuite estimated gross profit | Transaction revenue minus estimated item cost | Is this estimate attractive under the selected NetSuite cost basis? |
| Commercial contribution | Net revenue minus all direct and quote-specific costs | Should we offer these prices and terms to this customer? |
| Accounting gross profit | Recognized revenue minus posted cost of goods sold | What did the completed sale contribute under accounting policy? |
| Operating profit | Revenue minus cost of goods sold and operating expenses | What did the business earn after broader expenses? |
Sales needs the second view before it sends the quote. Finance still needs the third view after fulfillment. Calling both “margin” causes avoidable arguments because the numerator and cost boundary differ.
Write the definition beside the number. A useful label says:
Expected contribution after material, conversion, outside processing, outbound freight, warranty and customer rebate. Excludes corporate overhead and tax.
That sentence gives an approver more information than a red or green percentage ever will.
What NetSuite calculates on an estimate
Oracle defines estimated gross profit as sales minus estimated cost. With the Gross Profit feature active, NetSuite exposes the following fields on estimates and other sales transactions:
| NetSuite field | Level | What it shows |
|---|---|---|
| Cost Estimate Type | Item line | The rule NetSuite used to find estimated cost |
| Est. Unit Cost | Item line | The unit cost returned by that rule |
| Est. Extended Cost | Line and transaction | Estimated unit cost multiplied by quantity |
| Est. Gross Profit | Line and transaction | Revenue minus estimated cost |
| Est. Gross Profit Percent | Line and transaction | Estimated gross profit divided by revenue |
Oracle’s gross-profit field reference states that the transaction total includes line gross profit plus transaction-level discounts and markups. Standard forms show the fields after you activate Gross Profit. Custom forms need the fields added to the form.
These figures help. A manager can see a low-margin line inside an otherwise acceptable quote. Saved searches can find estimates below a threshold. An integration can read the header values through the estimate record. But the calculation inherits every strength and weakness of the selected cost estimate type.
Oracle also says the cost often remains unknown until fulfillment. Its Gross Profit overview tells users to treat the result as an estimate, not actual cost. An approval screen should make that uncertainty explicit.
Choose a cost source for the work you will perform
NetSuite offers several cost estimate types. The names sound interchangeable until a volatile material price, a new product or a subcontracted operation makes the difference material.
| Cost estimate type | Source | Appropriate use | Common failure |
|---|---|---|---|
| Average Cost | Calculated average of purchased units | Stocked items when current inventory value supports the sales decision | Old inventory lowers the apparent replacement cost |
| Last Purchase Price | Most recent receipt price | Repetitive purchases with recent, representative receipts | One emergency buy or old receipt controls the estimate |
| Purchase Price | Item purchase-price field, then recent price if empty | Maintained catalog or planning cost | Master data falls behind the market |
| Preferred Vendor Rate | Preferred supplier rate | Stable multi-vendor items with a real preferred source | The named supplier cannot cover the quoted quantity or date |
| Purchase Order Rate | Preferred vendor rate at first, then recent PO rate | Special-order and drop-ship items | A prior PO covers different volume, timing or specification |
| Item Defined Cost | User-maintained value | Services, non-inventory work or a governed planning cost | Nobody owns the update cycle |
| Derived from Member Items | Current estimated cost of kit members | Kits whose members represent the quoted configuration | The current kit differs from the historical customer configuration |
| Custom | Value entered on the transaction line | A quote-specific supplier offer or engineered cost | A user enters a number without source, date or approval |
Oracle documents the definitions and fallback behavior in its cost estimate type reference. Availability also changes by item type. For example, an inventory item can use Average Cost, Item Defined Cost, Last Purchase Price, Preferred Vendor Rate, Purchase Order Rate or Purchase Price. A kit defaults to Derived from Member Items. Oracle lists the combinations in Available Cost Estimate Types for Each Item Type.
Do not select one type for the whole catalog because it looks conservative or convenient. Assign a policy by cost behavior.
| Cost behavior | Practical quote basis |
|---|---|
| Stocked standard component with steady pricing | Average cost or governed standard cost |
| Commodity or alloy with fast price movement | Current supplier offer plus validity date |
| Buy-to-order component | Supplier quote or purchase-order rate tied to the requirement |
| Made-to-order assembly | Current BOM, routing, labor and machine assumptions |
| Outside processing | Current subcontractor offer for the quoted specification and quantity |
| Engineering or field service | Estimated hours by skill and approved labor rate |
| Warranty exposure | Product- and customer-specific allowance |
The policy should also state who may override the item default. NetSuite requires the Override Estimated Costs on Transactions permission before a user can change the cost estimate type on a transaction line. If an integration writes a line estimate, Oracle requires the Custom type. Limit that permission, then record the source behind each custom value.
Average cost can answer the wrong commercial question
Suppose the factory holds 100 motors at £1,000 average cost. Its supplier now quotes £1,280 for replenishment. A customer requests 80 units for delivery after the current stock will support other committed orders.
At a selling price of £1,400 per motor:
| Basis | Revenue | Cost | Apparent contribution |
|---|---|---|---|
| Average cost | £112,000 | £80,000 | £32,000 / 28.6% |
| Current supplier offer | £112,000 | £102,400 | £9,600 / 8.6% |
Both calculations can describe the same item. Only one reflects the cost of taking this order under the current supply plan.
The reverse can happen too. An emergency receipt may push Last Purchase Price far above the supplier’s normal rate. Blindly choosing the “higher” source does not make a quote safer. It can price good work out of the market. The cost review needs quantity, source, date, validity, currency, unit and delivery context.
NetSuite inventory costing and quote cost estimation also serve different purposes. Oracle’s inventory costing guide explains how average, FIFO, LIFO, specific and standard methods value inventory transactions. The quote estimator should not silently replace the company’s accounting method. It can show a commercial cost beside the NetSuite estimate and state why the two differ.
Build the manufactured cost from the current job
An assembly can look profitable while an old routing quietly supplies its conversion cost. Review the parts of the cost model that change with the quoted configuration:
| Cost component | Evidence to attach |
|---|---|
| Direct material | BOM revision, quantities, scrap factors, current purchase basis |
| Direct labor | Routing revision, setup hours, run hours, labor class and rate |
| Machine or work-center cost | Setup time, cycle time, machine rate and expected utilization basis |
| Tooling | Existing tool status, new-tool quote, expected life and allocation rule |
| Outside processing | Supplier, operation, specification, quantity, rate and validity |
| Inspection and testing | Required plan, sample size, lab or certification cost |
| Packaging | Customer specification, returnable asset and packing labor |
| Engineering | Non-recurring hours, discipline and recovery method |
The cost packet should identify the revision behind each input. “Routing cost £24,600” hides whether the estimator used the current cycle time or copied a prior job. “Routing Rev F, setup 18 hours, run 1.4 hours per unit, 40 units” gives engineering and operations something they can review.
For a configurable product, calculate the selected configuration. A family-level average cannot represent every motor, valve or skid variant. The same base item may require a stainless enclosure, hazardous-area motor, customer witness test or export packing on this quote. Each option changes cost before it changes the displayed item name.
Add the costs NetSuite gross profit can leave outside the line estimate
Oracle states that its gross-profit cost estimate excludes shipping and handling charges. That detail matters when the seller pays freight. NetSuite can calculate a customer shipping charge on an estimate, but a revenue charge does not prove that the commercial cost covers the carrier, route, split deliveries, insurance or special handling.
The review should test these categories separately:
Outbound freight
Record the delivery term, ship-from point, destination, shipment count, weight or dimensions, carrier basis, currency and validity. A quote with three planned releases needs three shipment assumptions. If the customer can call off ten partial deliveries, the review needs either a limit or a cost allowance.
Inbound freight and duty
Landed cost can include freight, duty, insurance and handling required to bring purchased stock into inventory. Oracle’s Landed Cost overview explains how NetSuite adds those charges to inventory value. For Gross Profit, Last Purchase Price includes landed cost only when the account preference enables it. Display that setting in the costing policy so users do not add the same cost twice or omit it entirely.
Outside processing
A material item may need heat treatment, coating, machining, calibration or certification. Link the supplier offer to the operation and quantity. If the quote uses a planning rate while sourcing waits for bids, mark the line provisional and set a release rule.
Warranty and service
A two-year field warranty does not have the same expected cost as a twelve-month return-to-base warranty. Estimate travel, labor, parts and subcontractor exposure using the product, destination and promised response. State whether the quote price includes that allowance.
Rebates and commissions
Customer rebates, distributor commissions and agent fees reduce what the seller retains. A transaction discount may already reduce revenue in NetSuite. A quarterly rebate or commission can sit outside the estimate. Show each one once, with its calculation basis.
Financing and payment terms
Net 90, milestone billing and retention affect cash exposure. Some companies include financing cost in commercial contribution; others show it as a separate approval. Either policy can work when the reviewer sees the amount and basis.
Risk allowance
Do not hide unknowns inside a blanket percentage. Name the risk: unconfirmed freight, commodity escalation, uncertain test hours or an open design question. Give it an owner, amount or range, and resolution date. The manager can then approve a real exposure.
Work a complete quote example
Northfield asks for one engineered pump skid. Sales prepares revision 4 at £420,000. NetSuite uses the item cost sources on the estimate and reports £304,200 estimated cost.
| NetSuite estimate | Amount |
|---|---|
| Revenue after line and transaction discounts | £420,000 |
| Estimated item cost | £304,200 |
| Est. gross profit | £115,800 |
| Est. gross profit percent | 27.6% |
The commercial review finds costs outside that basis:
| Commercial adjustment | Amount | Evidence |
|---|---|---|
| Current material uplift | £6,200 | Supplier offer valid through 30 Sep |
| Outside machining | £18,400 | Supplier quote OS-1844 |
| Seller-paid freight | £8,400 | Three planned deliveries to site |
| Warranty allowance | £12,000 | Two-year field warranty |
| Customer rebate | £5,600 | 1.33% annual agreement rebate |
| Total added cost | £50,600 |
The resulting economics are:
| Commercial view | Amount |
|---|---|
| Revenue | £420,000 |
| NetSuite estimated item cost | £304,200 |
| Added commercial costs | £50,600 |
| Expected contribution | £65,200 |
| Expected contribution margin | 15.5% |
If the original material estimate already included £6,340 of related allowances, reconcile them before approval. After removing that overlap, the agreed commercial cost becomes £348,460 and contribution becomes £71,540, or 17.0%. The reconciliation matters as much as finding missing cost. Adding every number without checking scope creates a different error.
Now the manager can make a useful decision. They can raise the price, narrow warranty, charge freight, reduce delivery splits, ask sourcing for another machining bid or accept 17.0% because the order opens a strategic account. A single threshold cannot make that judgment.
Show every line that drives the answer
A quote economics screen should answer six questions without sending the manager into item records and email:
- What price and quote revision will the customer receive?
- Which cost source governs each material or service line?
- How old is each source, and when does it expire?
- Which costs sit outside NetSuite’s item estimate?
- What remains unresolved?
- Which change would require another approval?
For each cost, store this minimum record:
| Field | Example |
|---|---|
| Quote and revision | Q-2048 revision 4 |
| Cost category | Outside machining |
| Amount and currency | £18,400 GBP |
| Unit basis | One skid / 40 machined pieces |
| Source system | Supplier email and sourcing workspace |
| Source record | OS-1844 |
| Effective date | 16 Sep 2026 |
| Valid through | 30 Sep 2026 |
| Included in NetSuite estimated cost | No |
| Owner | Sourcing |
| Status | Confirmed |
This record prevents three common problems: an approver cannot tell where a number came from, two systems include the same allowance, or a later quote revision reuses an expired cost.
Treat missing cost as a decision, not zero
Zero is a real number. Unknown means the team has not established the number. A margin tool must distinguish them.
| Status | Meaning | Release behavior |
|---|---|---|
| Confirmed | Current source matches scope | Include in calculation |
| Provisional | Approved planning value with a named owner | Include and display the risk |
| Range | Cost falls within stated bounds | Show low and high contribution |
| Missing | No defensible value | Block or request explicit exception |
| Not applicable | Reviewed and excluded for a stated reason | Exclude with record of the decision |
Suppose freight lies between £8,000 and £13,000. Show contribution at both values. At £8,000, the quote may clear the approval threshold. At £13,000, it may not. That is the point of the review.
A missing cost should not quietly convert to £0 because a spreadsheet cell was blank or an API returned null. The product view needs a visible status and an owner.
Control when NetSuite recalculates cost
Industrial sales cycles can run for months. Costs change between opportunity, estimate, sales order and invoice. NetSuite provides a Recalculate Estimated Cost on Creation of Linked Transactions preference with three options:
| Setting | Behavior |
|---|---|
| Through Sales Order | Recalculates through the sales order, but not the invoice |
| Always | Recalculates at every sales stage |
| Never | Carries the earlier estimate when item cost changes |
Oracle explains the behavior in its linked-transaction recalculation guide. The setting applies when a user creates one transaction from another. It does not solve every route by which an estimate, order or integration can change.
There is no universally correct setting. The commercial workflow needs both views:
- Approved quote economics: the cost basis and contribution that supported the customer offer.
- Current expected economics: the latest forecast after supplier, freight, quantity or configuration changes.
If NetSuite recalculates the sales order, compare the new values with the approved estimate. Do not erase the earlier basis. If the margin moves beyond policy, route the difference to the right owner before order acknowledgement.
Custom cost behaves differently. Oracle says a Custom cost estimate value persists into linked transactions even when recalculation is active. That makes source and expiry metadata essential. A preserved custom value may represent a valid supplier commitment or a stale manual override.
Connect margin to quote approval
Margin approval should use amount and percentage. A £500 exception on a £2,000 spare part can produce a large percentage change with little absolute exposure. A one-point change on a £10 million project can matter far more.
Build the authority matrix around the actual decisions:
| Trigger | Primary owner | Evidence required |
|---|---|---|
| Contribution below target | Commercial | Price, full cost bridge, account reason |
| Material cost older than policy | Sourcing | Current supplier basis or approved escalation rule |
| Routing or BOM not current | Engineering / operations | Governing revisions and assumptions |
| Freight not confirmed | Logistics | Route, delivery term, shipment plan and estimate |
| Warranty beyond standard | Service | Scope, response obligation and allowance |
| Rebate or commission conflict | Finance | Agreement and calculation basis |
| Missing direct cost | Cost owner | Confirmed amount or explicit exception |
The pricing approval guide explains how to route these decisions and lock customer release. The margin review supplies the economics inside that approval packet.
If someone changes quantity, configuration, price, delivery term, shipment count, warranty, currency or cost source after approval, calculate the impact and reopen only the affected decisions. A comment saying “finance approved” does not authorize a different quote.
Compare approved margin with actual performance
The margin process improves when the factory closes the loop after delivery. Compare the approved quote basis with the sales order, invoice and actual cost records.
| Variance | What it may reveal |
|---|---|
| Material purchase variance | Supplier move, wrong quantity break or stale source |
| Labor-hours variance | Routing assumption, learning curve or production issue |
| Outside-processing variance | Scope gap, expedite or supplier change |
| Freight variance | Wrong shipment count, route or delivery term |
| Warranty variance | Product reliability or underpriced service obligation |
| Revenue variance | Discount, credit, rebate or change-order leakage |
Do not judge the estimator from one noisy order. Group similar products, customers and workflows. Look for a repeated bias. If quoted freight runs low on 70% of split-delivery orders, fix the model. If a particular routing consistently overruns, engineering can update the standard. If custom cost overrides never expire, add a control.
NetSuite does not place estimated gross-profit fields in standard reports or KPIs automatically. Oracle’s reporting guide explains that teams must add the fields to custom reports, searches or saved-search KPIs. Add quote revision, cost source, source date and approval outcome to the analysis as well. The percentage alone cannot tell you why the forecast missed.
A practical implementation sequence
1. Define the commercial contribution policy
List every included and excluded cost. Define margin and markup. State how the process handles tax, overhead, financing, rebates, warranty and freight. Give finance ownership of the definition.
2. Map item classes to default cost sources
Review inventory, assemblies, kits, resale items, services and charges. Select the NetSuite cost estimate type that fits each class. Document permitted overrides and fallback behavior.
3. Add Gross Profit fields to every quote form in use
Standard forms expose them after feature activation. Custom forms need explicit configuration. Test estimate lines, transaction totals, discounts and markups.
4. Add quote-specific cost records
Capture outside processing, outbound freight, warranty, rebates, commissions, engineering and other costs that the selected NetSuite item estimate does not contain. Store source, date, scope, currency and inclusion status.
5. Build the cost bridge
Start with the NetSuite estimated item cost. Add or subtract reconciled commercial adjustments. Display the full bridge from revenue to contribution so an approver can challenge any line.
6. Add completeness rules
Require a status for every expected cost category. A blank source, expired supplier offer or unconfirmed freight estimate should produce a visible decision.
7. Tie approval to the quote revision
Freeze the reviewed economics with the customer-facing revision. Define which changes reopen pricing, sourcing, finance, service or logistics approval.
8. Compare forecast with actuals
After fulfillment and billing, calculate variance by product family, customer, plant and cost category. Feed repeated errors back into item data, routing assumptions and approval policy.
Test the calculation before people rely on it
Use a test set that represents the difficult work, not a clean demo quote.
| Test | Expected result |
|---|---|
| Transaction discount | Revenue and header gross profit reflect the discount once |
| Custom line cost | Source and approval appear with the override |
| Seller-paid freight | Commercial contribution includes cost even if NetSuite item cost does not |
| Customer-paid freight | Revenue and related cost appear on the agreed basis |
| Landed cost active | Review does not add inbound freight twice |
| Missing outside-processing quote | Release shows a blocker or named exception |
| Expired supplier offer | Cost shows stale status and owner |
| Quote revision changes quantity | Quantity-dependent cost and approval rerun |
| Estimate converts to sales order | Approved basis remains visible beside recalculated cost |
| Currency changes | Revenue and costs use dated, traceable exchange rates |
| Kit membership changes | Review identifies the configuration and cost revision |
| Partial shipment added | Freight and handling assumptions update |
Test both amount and percentage. Reconcile the product view to the NetSuite estimate line by line. Then use historical orders to see whether the model would have caught known margin misses.
Metrics that tell you whether the process works
Track outcomes that expose data quality and decision speed:
- median time from draft price to margin approval
- percentage of quote value supported by current cost sources
- percentage of quotes with a custom cost override
- expired or missing cost inputs at first review
- approval reopen rate after quote revision
- quoted contribution versus actual contribution by cost category
- margin leakage from freight, rebates, outside processing and warranty
- win rate by contribution band
- value and percentage of approved exceptions
A higher margin is not the only goal. The team also needs faster, more consistent bids. If the process forces an engineer to rebuild every cost from scratch, it will slow the quote and drive people back to side spreadsheets. Reuse governed data where the scope matches. Ask for human review where the quote departs from it.
Frequently asked questions
What is the difference between margin and markup?
Margin divides profit or contribution by selling price. Markup divides it by cost. If an item costs £80 and sells for £100, the contribution is £20. Margin is 20%; markup is 25%. Put the formula beside any threshold because teams often use the terms interchangeably.
Does NetSuite calculate margin on an estimate?
Yes. With Gross Profit active, NetSuite can show estimated unit cost, extended cost, gross profit and gross-profit percentage on estimate lines and at transaction level. The result depends on the Cost Estimate Type used for each item.
Which NetSuite cost estimate type should we use?
Choose by item and commercial decision. Average Cost may suit stable stocked components. A current supplier offer may suit volatile or buy-to-order material. A manufactured assembly may need current BOM and routing cost. Document the source and allow controlled overrides for exceptions.
Does NetSuite estimated gross profit include freight?
Oracle says cost estimates used for Gross Profit exclude shipping and handling charges. If the seller pays outbound freight, include that cost in the commercial contribution view. Check whether Last Purchase Price already includes inbound landed cost under your account preference before adding it again.
Should we use current cost or standard cost when quoting?
Use the basis that reflects the decision, then show the accounting view separately. A current supplier price may better represent a buy-to-order commitment. Standard cost may support stable manufactured work and variance reporting. The quote should identify which one it uses.
What happens to margin when an estimate becomes a sales order?
It depends on the Recalculate Estimated Cost on Creation of Linked Transactions preference and the cost type. NetSuite can recalculate through sales order, always recalculate or never recalculate. Custom cost values persist. Preserve the approved estimate basis and compare any new cost with it.
Can NetSuite block a low-margin quote?
NetSuite can support workflow and approval controls around estimates, but a percentage alone rarely captures the full decision. Route the cost bridge, missing inputs and commercial terms with the exact quote revision. Block release until the required owners decide.
How should we handle unknown costs?
Do not treat an empty value as zero. Use a provisional amount, range or missing status. Assign an owner and state whether the quote can proceed. If the decision uses a range, show contribution at both bounds.
Can Bourne calculate quote contribution from NetSuite and supplier data?
Yes. Bourne can read the estimate, item cost sources, supplier offers, routings and commercial terms; reconcile the costs; flag gaps; and prepare the decision for the authorized people. The resulting record shows what NetSuite calculated, what the commercial view added and which inputs still need review.
Further reading
Sandvik Coromant: machining economics
How tooling decisions affect machining time and cost per component.
The Manufacturing AI Roadmap
Decide what to automate next.
Use our free guide to assess your commercial operations and choose a starting point for AI.