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:
- NetSuite should have selected the customer’s £92 contract price, but an integration chose the £98 group rate.
- 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:
| Field | Normal result | Proposed result | Difference |
|---|---|---|---|
| Price source | AX pricing group | Custom transaction rate | Manual override |
| Unit rate | £98 / EA | £92 / EA | -£6 / EA |
| Quantity | 40 EA | 40 EA | None |
| Extension | £3,920 | £3,680 | -£240 |
| Contribution | £1,200 | £960 | -£240 |
| Contribution margin | 30.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.
| Trigger | Primary owner | Evidence required |
|---|---|---|
| Rate below approved customer price | Pricing or commercial manager | Normal price source, requested rate, discount value, reason |
| Contribution below floor | Finance or commercial finance | Current cost, unresolved costs, contribution dollars and percentage |
| Unconfirmed bought-out cost | Sourcing | Supplier quote status, allowance, exposure |
| Unconfirmed production cost or capacity | Operations | Routing, hours, load, requested delivery |
| Changed product or specification | Engineering | Drawing, configuration, technical deviation |
| Extended payment terms | Finance or credit | Receivable exposure, customer payment history, cost of cash |
| Extra deliveries or special freight | Logistics | Shipment plan, carrier estimate, Incoterm, destination |
| Extended warranty or performance guarantee | Service, quality or legal | Covered scope, failure exposure, exclusions |
| Contract language, indemnity or liability exception | Legal | Customer clause, standard clause, proposed redline |
| Long price validity or index exception | Pricing and sourcing | Cost validity, index basis, adjustment formula |
| Export or regulatory condition | Compliance | Destination, 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:
| Condition | Example route |
|---|---|
| Native rate, margin at or above floor, no term exceptions | Auto-approve for release |
| Discount up to 3 points, margin at or above floor | Sales manager |
| Discount above 3 points | Commercial director |
| Contribution margin below product-family floor | Finance plus commercial |
| Contribution dollars below zero | CFO or named executive |
| Cost basis incomplete | Cost owner before commercial approval |
| Manual rate with no reason | Return 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 element | Amount | Source | Status |
|---|---|---|---|
| Main assembly material | £228,000 | Current item and supplier records | Confirmed |
| Customer-specific control panel | £34,000 | Supplier budget quote | Expires in 10 days |
| Site commissioning | £18,000 | Standard allowance | Needs project review |
| Three deliveries | £0 | No carrier estimate | Missing |
| Two-year warranty | £0 | Standard quote covers one year | Missing |
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:
- What changed: normal value, proposed value and difference.
- Why: customer request and rep rationale.
- Money: revenue, cost, contribution and cash effect.
- Evidence: price record, supplier quote, drawing, agreement or freight estimate.
- Alternatives: options sales can offer.
- Authority: policy rule and approver.
- Decision: approve, reject or request change.
- 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:
| State | Who can act | What can happen |
|---|---|---|
| Draft | Quote team | Edit, calculate, resolve missing inputs |
| Ready for review | System | Freeze a version and determine required approvals |
| Pending approval | Named approvers | Approve, reject or request a change |
| Needs revision | Quote owner | Edit and resubmit as a new version |
| Approved for release | Release role or controlled automation | Generate and send the approved customer document |
| Released | Controlled roles | Create a revision; do not overwrite the released offer |
| Expired or withdrawn | Quote owner under policy | Stop 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 field | Reopen |
|---|---|
| Item, configuration, revision or quantity | Pricing, costing, engineering and delivery as affected |
| Unit or conversion | Pricing and costing |
| Selling rate, discount or surcharge | Pricing and finance |
| Cost or supplier quote | Finance and commercial margin |
| Delivery date or shipment count | Planning and logistics |
| Payment or deposit terms | Finance or credit |
| Freight term or destination | Logistics, finance and compliance as affected |
| Warranty or service scope | Service, quality and finance |
| Customer contract wording | Legal and commercial |
| Currency or FX basis | Pricing and finance |
| Quote validity | Pricing 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.
Test the approval workflow
Run these cases before production:
| Test | Expected result |
|---|---|
| Native price, margin above floor, standard terms | Auto-approves when policy allows |
| Incorrect native price | Returns for data correction without discount approval |
| Small approved discount | Routes to sales manager |
| Discount over manager authority | Routes to commercial director |
| Margin below product-family floor | Adds finance approval |
| Negative contribution | Routes to named executive authority |
| Missing supplier cost | Blocks final commercial approval |
| Extended payment | Adds finance or credit approval |
| Additional shipment | Adds logistics evidence and approval |
| Extended warranty | Adds service or quality approval |
| DAP changed to DDP | Recalculates cost and adds relevant approvals |
| Unconfirmed delivery | Blocks release on planning |
| Approver absent | Delegate receives the decision |
| Approver rejects | Quote owner gets reason and revision path |
| Rate changes after approval | Pricing and finance reopen |
| Contact detail changes | Commercial approvals remain valid |
| API changes an approved line | Lock or reapproval catches the change |
| Customer document differs from estimate | Release check blocks sending |
| Approved quote converts to order | Accepted values remain intact |
| Customer PO changes terms | PO 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.
Bourne for manufacturing
See what Bourne could do for your quoting team.
Bring a customer request and the steps your team takes to quote it. We’ll discuss the application, integrations and approvals you need.