NetSuite pricing approvals for industrial quotes

Approve the exact quote version that the customer will receive. Route each exception to the person who owns it, attach the evidence behind the decision, lock customer release until all required decisions finish and rerun only the approvals affected by a later change.

Arda Bulut

Co-Founder & CTO of Bourne · Updated

A rep prepares a £420,000 equipment quote. The price follows the customer’s NetSuite price level and the contribution margin is 24%, above the company’s 20% floor.

The quote still promises:

  • 90-day payment terms instead of 30
  • three deliveries for the price of one
  • a two-year warranty instead of one
  • fixed steel pricing for 120 days
  • delivery on a date that planning has not confirmed

A rule that checks only total value or margin would approve the wrong offer.

Industrial quote approval is a set of decisions about price, cost, cash, scope and delivery. The workflow should route each exception to the person who owns it, then approve one exact quote version for customer release.

Separate a bad price from a requested exception

Two quote lines can show the same £92 rate for different reasons:

  1. NetSuite should have selected the customer’s £92 contract price, but an integration chose the £98 group rate.
  2. NetSuite correctly selected £98, and the rep wants a one-time concession to £92.

The first case needs a pricing correction. The second needs approval.

Do not send both through the same “discount approval” path. That hides broken master data and turns every recurring error into manual work.

For each proposed exception, show:

FieldNormal resultProposed resultDifference
Price sourceAX pricing groupCustom transaction rateManual override
Unit rate£98 / EA£92 / EA-£6 / EA
Quantity40 EA40 EANone
Extension£3,920£3,680-£240
Contribution£1,200£960-£240
Contribution margin30.6%26.1%-4.5 points

Our customer-pricing guide explains how to trace general, group, item-specific and absolute prices. Establish the correct starting rate before the workflow asks anyone to approve a departure.

Approve the customer-facing version

An approval must identify the version it covers.

The approved package should include:

  • NetSuite estimate internal ID
  • quote or estimate number
  • revision number
  • customer and legal buying entity
  • transaction currency
  • item, configuration, unit and quantity
  • selling rates and charges
  • current cost basis
  • contribution dollars and percentage
  • payment, freight, warranty and validity terms
  • delivery promise
  • referenced drawings and specifications
  • exception list
  • approvers and decisions
  • document hash or another stable version marker
  • customer-facing PDF or generated proposal

If the PDF can differ from the approved estimate, approval of the estimate does not approve the offer.

Generate the customer document from the approved data. Store the released revision. When a rep changes the quote, create a new review version instead of silently changing the approved one.

Route exceptions by authority

A single manager should not approve every kind of risk. Give each decision to the role that controls the underlying promise.

TriggerPrimary ownerEvidence required
Rate below approved customer pricePricing or commercial managerNormal price source, requested rate, discount value, reason
Contribution below floorFinance or commercial financeCurrent cost, unresolved costs, contribution dollars and percentage
Unconfirmed bought-out costSourcingSupplier quote status, allowance, exposure
Unconfirmed production cost or capacityOperationsRouting, hours, load, requested delivery
Changed product or specificationEngineeringDrawing, configuration, technical deviation
Extended payment termsFinance or creditReceivable exposure, customer payment history, cost of cash
Extra deliveries or special freightLogisticsShipment plan, carrier estimate, Incoterm, destination
Extended warranty or performance guaranteeService, quality or legalCovered scope, failure exposure, exclusions
Contract language, indemnity or liability exceptionLegalCustomer clause, standard clause, proposed redline
Long price validity or index exceptionPricing and sourcingCost validity, index basis, adjustment formula
Export or regulatory conditionComplianceDestination, end use, classification, required approval

Define people by role, then map named employees and delegates. “Finance approval” is incomplete if nobody owns the queue when the finance director is away.

Run independent reviews in parallel

Price, delivery and legal terms often have different owners. Route them at the same time when one decision does not depend on another.

For the £420,000 quote:

  • Finance reviews 90-day payment.
  • Logistics prices three deliveries.
  • Service reviews the warranty.
  • Sourcing checks the 120-day steel exposure.
  • Planning confirms the delivery date.

The final commercial approver sees the completed decisions and the combined economics. Parallel review cuts waiting time without removing authority.

Use sequential review only when the second decision needs the first. Legal may wait for the business owner to choose a commercial position before drafting a redline.

Define price and margin triggers separately

Price and margin answer different questions.

  • Price variance compares the proposed rate with the rate NetSuite would select.
  • Contribution margin compares revenue with the current cost basis.
  • Contribution dollars show the absolute value earned.

A 30% margin on a £500 line and a 30% margin on a £500,000 line do not carry the same exposure. A small discount can also push a low-margin configured item below its floor while a larger discount on a service line remains acceptable.

Use a matrix:

ConditionExample route
Native rate, margin at or above floor, no term exceptionsAuto-approve for release
Discount up to 3 points, margin at or above floorSales manager
Discount above 3 pointsCommercial director
Contribution margin below product-family floorFinance plus commercial
Contribution dollars below zeroCFO or named executive
Cost basis incompleteCost owner before commercial approval
Manual rate with no reasonReturn to rep

Do not express every limit as a percentage. Use rate, dollars and percentage where each matters.

Mark unresolved costs

A calculated margin can look precise while key costs remain estimates.

Show the cost status:

Cost elementAmountSourceStatus
Main assembly material£228,000Current item and supplier recordsConfirmed
Customer-specific control panel£34,000Supplier budget quoteExpires in 10 days
Site commissioning£18,000Standard allowanceNeeds project review
Three deliveries£0No carrier estimateMissing
Two-year warranty£0Standard quote covers one yearMissing

The workflow should not treat the missing rows as zero. Route them to the owner or use an explicitly approved allowance.

Price the terms around the line items

The item rate is only part of the offer.

Payment terms

Extended payment changes working capital and credit exposure. Show:

  • standard and proposed days
  • deposit and milestone schedule
  • order value
  • customer credit limit and open exposure
  • expected cash timing
  • financing cost or policy threshold

Finance should approve the full cash profile, not three characters such as “N90.”

Freight and delivery

State:

  • named destination
  • shipment count
  • transport mode
  • freight payer
  • required delivery date
  • loading, unloading and site obligations
  • import clearance and duty responsibility

The ICC’s comparison of DAP and DDP shows why the Incoterm matters: DDP puts import clearance and duty on the seller, while DAP leaves those obligations with the buyer. A three-letter change can add costs and compliance work.

Warranty and service

Show the standard term, proposed term, start event, covered equipment, labor, travel, parts, exclusions and expected cost. “Two-year warranty” is too vague for approval.

Price validity and escalation

A quote that fixes price for 120 days may outlive supplier quotes or expose volatile inputs.

Show:

  • quote validity
  • supplier validity
  • foreign-exchange basis
  • indexed material component
  • base period
  • adjustment formula
  • caps, floors and notice terms

The US Bureau of Labor Statistics guide for contract price adjustment recommends naming the specific index series and defining the formula. “Price follows PPI” does not identify the series, reference periods or calculation.

Build a useful approval packet

An approver should not need to search email, ERP, CRM and shared drives.

For each exception, include:

  1. What changed: normal value, proposed value and difference.
  2. Why: customer request and rep rationale.
  3. Money: revenue, cost, contribution and cash effect.
  4. Evidence: price record, supplier quote, drawing, agreement or freight estimate.
  5. Alternatives: options sales can offer.
  6. Authority: policy rule and approver.
  7. Decision: approve, reject or request change.
  8. Version: exact quote revision covered.

Example:

Northfield requests 90-day payment on a £420,000 order. Standard terms are 30 days. The account has £110,000 open and £65,000 overdue by 18 days. Proposed deposit: 20%. Finance approval required. Alternatives: 40% deposit with 60-day balance, or standard 30-day terms.

That packet lets the approver decide. “Please approve terms” does not.

Design the quote state machine

Use explicit states:

StateWho can actWhat can happen
DraftQuote teamEdit, calculate, resolve missing inputs
Ready for reviewSystemFreeze a version and determine required approvals
Pending approvalNamed approversApprove, reject or request a change
Needs revisionQuote ownerEdit and resubmit as a new version
Approved for releaseRelease role or controlled automationGenerate and send the approved customer document
ReleasedControlled rolesCreate a revision; do not overwrite the released offer
Expired or withdrawnQuote owner under policyStop customer acceptance and record the reason

Separate Approved for release from Released. Approval grants authority to send. Release records that the customer-facing version actually left the company.

Lock the pending and approved version

Oracle’s SuiteFlow overview includes an Estimate approval example. Its pending states lock the record and show Approve or Reject buttons only to the relevant supervisor or finance manager. The approved state sets the Estimate Approval Status to Approved.

Use that model as a starting point. Decide which users or integrations may still edit administrative fields without changing commercial content. Test the lock through every interface, including imports and APIs.

Do not confuse SuiteFlow with SuiteApprovals

Oracle’s standard SuiteApprovals approval-history list names journal entries, expense reports, purchase orders, requisitions, sales orders, vendor bills and engineering change orders. It does not list Estimates.

For Estimate approval, Oracle demonstrates SuiteFlow. Confirm the features and customizations in your account before choosing the implementation. Do not copy a SuiteApprovals rule for another transaction type and assume the quote will follow it.

Decide exactly what forces reapproval

Any change that affects an approved promise should invalidate the relevant decision.

Use a field-to-approval map:

Changed fieldReopen
Item, configuration, revision or quantityPricing, costing, engineering and delivery as affected
Unit or conversionPricing and costing
Selling rate, discount or surchargePricing and finance
Cost or supplier quoteFinance and commercial margin
Delivery date or shipment countPlanning and logistics
Payment or deposit termsFinance or credit
Freight term or destinationLogistics, finance and compliance as affected
Warranty or service scopeService, quality and finance
Customer contract wordingLegal and commercial
Currency or FX basisPricing and finance
Quote validityPricing and sourcing

Do not rerun unrelated decisions. A corrected contact phone number should not send the quote back to legal. A changed warranty should.

Compare values with the approved revision

At resubmission, show:

  • changed fields
  • old and new values
  • impacted calculations
  • prior approvers
  • approvals that remain valid
  • approvals reopened

If cost rises from £300,000 to £330,000 while the customer price stays £420,000, the old price approval does not prove the new margin is acceptable.

Preserve a usable audit trail

Oracle’s System Notes overview says system notes capture the date, user, interface, field and old and new values for record changes. Users, scripts and apps cannot edit system notes.

Transaction system notes help answer:

  • who changed the rate
  • when payment terms changed
  • whether an integration or user made the change
  • old and new field values
  • which role performed the action

System notes do not replace a structured approval record. Store the decision, approver, timestamp, comments, policy trigger and approved version.

Avoid putting the full decision in a Long Text or Rich Text field and assuming NetSuite stores every prior word. Oracle says standard System Notes record exact changes for Text Area and Free-Form Text fields, while Long Text and Rich Text notes record only character-count changes. Use fields and records that preserve the evidence you need.

How Bourne prepares a pricing approval

NetSuite should own the customer, item, estimate, price and approved transaction state. Bourne assembles the decision from the systems and files around it.

Bourne can:

  • trace the native customer rate
  • read the RFQ, agreement and proposed terms
  • calculate quantity pricing and surcharges
  • retrieve item, supplier, routing, freight and service costs
  • show missing or expired evidence
  • calculate contribution dollars and percentage
  • identify every policy exception
  • route independent decisions in parallel
  • preserve comments and source documents
  • compare revisions with the approved version
  • reopen only the affected decisions
  • write the approved status and quote data to NetSuite
  • generate the customer document from the approved version
  • compare the later customer PO with the released offer

The approval screen should answer:

Price is £20,000 below the NetSuite customer rate. Contribution remains 21.7%, above the 20% floor. Finance approved 90-day payment with a 30% deposit. Logistics added £8,400 for three deliveries. Service approved the two-year warranty with a £12,000 allowance. Planning has not confirmed the requested date. Release remains blocked on planning.

The approver sees the whole offer and the one open decision.

Bourne can assemble the price, cost and terms behind an exception, route each decision to its owner and release the approved version to NetSuite.
Pricing approval · Example workspace

Test the approval workflow

Run these cases before production:

TestExpected result
Native price, margin above floor, standard termsAuto-approves when policy allows
Incorrect native priceReturns for data correction without discount approval
Small approved discountRoutes to sales manager
Discount over manager authorityRoutes to commercial director
Margin below product-family floorAdds finance approval
Negative contributionRoutes to named executive authority
Missing supplier costBlocks final commercial approval
Extended paymentAdds finance or credit approval
Additional shipmentAdds logistics evidence and approval
Extended warrantyAdds service or quality approval
DAP changed to DDPRecalculates cost and adds relevant approvals
Unconfirmed deliveryBlocks release on planning
Approver absentDelegate receives the decision
Approver rejectsQuote owner gets reason and revision path
Rate changes after approvalPricing and finance reopen
Contact detail changesCommercial approvals remain valid
API changes an approved lineLock or reapproval catches the change
Customer document differs from estimateRelease check blocks sending
Approved quote converts to orderAccepted values remain intact
Customer PO changes termsPO review routes the changed commitments

Test each entry channel. Oracle notes that standard SuiteApprovals does not route supported records created by CSV, script, web service or RESTlet. A custom Estimate workflow has its own triggers, but the warning exposes the wider risk: UI tests do not prove API behavior.

Measure approval performance

Track:

  • share of quotes that need approval
  • approval rate by trigger
  • median and 90th-percentile approval time
  • time waiting by role
  • requests returned for missing evidence
  • approvals reopened after quote changes
  • custom rates with no reason
  • quotes released before all decisions finished
  • released documents that differed from the approved version
  • discounts by rep, customer and product family
  • contribution given up through exceptions
  • payment, freight and warranty concessions
  • customer POs that changed approved terms
  • orders whose actual margin missed the approved margin

An approval process should reduce bad commitments and preserve selling speed. If most requests wait on missing cost or the same approver, fix that operating problem.

Frequently asked questions

Can NetSuite approve Estimates?

Yes. Oracle documents an Estimate approval built with SuiteFlow. The example routes by supervisor and amount, locks pending records and sets the Estimate Approval Status. Confirm your account’s workflow, roles, forms and integration contexts.

Is SuiteApprovals the same thing?

No. SuiteApprovals is a separate approval framework for its documented supported record types. Oracle’s standard supported list does not include Estimates. Use the correct NetSuite mechanism for the quote record.

Should every quote need approval?

No. Auto-approve quotes that meet a clear policy and have complete evidence. Route the exceptions. Sending every standard quote to a manager trains the team to treat approval as a click.

Can margin alone decide approval?

No. Payment, delivery, warranty, legal language, price validity and unresolved cost can create risk while the margin remains above its floor.

What should lock after approval?

Lock the commercial fields and released document version. Allow controlled administrative changes only when they cannot alter the promise. Any commercial change should create a revision and reopen the affected decisions.

Must every change restart the whole workflow?

No. Map fields to decisions. Reopen the approvals affected by the change and preserve unrelated decisions when policy allows.

Can an approver act from email?

Only if the action authenticates the approver, displays enough evidence, records the exact quote version and writes the decision to the audit trail. A bare Approve link with no context creates weak control.

What happens after the customer sends a PO?

Compare the PO with the released quote. Recheck item, quantity, price, currency, delivery, payment, freight, warranty and referenced terms. Route any changed commitment before creating or acknowledging the order.

Further reading

Oracle: Customer price levels
Customer-level, group and item-specific pricing assignments.

ICC Academy: DAP and DDP
Transport, import clearance and duty responsibilities under the two terms.

Arda Bulut

Arda Bulut is the co-founder and CTO of Bourne and HockeyStack. He leads engineering at Bourne, building the platform people use to create AI products, agents and automations.