NetSuite units of measure for quotes

Define every NetSuite unit from one base unit, match the conversion to the item, and show quantity, unit, rate basis and pack size on the quote. Never combine a quantity in one unit with a rate from another.

Arda Bulut

Co-Founder & CTO of Bourne · Updated

A customer asks for 12 boxes of fasteners.

Your warehouse counts each fastener. The supplier quotes per thousand. The sales rep sees the current price as $80.00 and enters:

Quantity 12 · Rate $80.00 · Total $960.00

The correct answer may be 12 boxes × 50 each × $0.08 per each = $48.00.

Every number in the first calculation came from a real record. The units did not.

A safe quote line needs four values that agree:

  1. customer quantity and unit
  2. NetSuite transaction quantity and unit
  3. price and its unit basis
  4. inventory quantity in the base or stock unit

NetSuite Multiple Units of Measure can manage fixed conversions between those values. It cannot turn an ambiguous “box,” a variable-weight piece or an unknown pack into a reliable conversion. Those cases need item-specific data and review before the quote reaches the customer.

How NetSuite units work

Oracle’s Multiple Units of Measure guide describes the core model:

  • Create a units type, such as Quantity, Length or Weight.
  • Choose one base unit in that type.
  • Define every other unit as a number of base units.
  • Assign the units type to an item.
  • Choose the item’s default purchase, stock and sale units.

If Each is the base unit and Box of 50 has a conversion rate of 50:

base quantity = transaction quantity × conversion rate

For 12 boxes:

600 each = 12 boxes × 50 each per box

The price must move in the same direction:

rate per box = rate per each × 50

At $0.08 per each:

$4.00 per box = $0.08 × 50

Both representations must produce the same extension:

RepresentationQuantityRateExtensionBase quantity
Each600 EA$0.08 / EA$48.00600 EA
Box of 5012 BOX50$4.00 / BOX50$48.00600 EA
Mixed basis12 BOX50$0.08 / EA$0.96Invalid

The extension check catches the common error. The base-quantity check catches a second one: a quote can have the right total and still promise the wrong physical quantity.

Design the units type before you assign it

NetSuite makes the units type a durable part of the item record.

Oracle’s item assignment instructions state that an item’s units type cannot change after assignment. Once any item uses a units type, you can add units to that type but cannot edit the type itself. Oracle’s setup instructions allow up to 650 units in one type and define each conversion as the number of base units in one unit.

That makes unit-type design a master-data decision.

Use one physical dimension in each type

Use units that can convert through one stable physical relationship.

Good unit types:

Units typeBase unitOther unitsWhy it works
Lengthmillimetrecentimetre, metre, inch, footThe conversion is fixed
Masskilogramgram, tonne, poundThe conversion is fixed once the exact unit is named
Quantity-12eachdozen, case of 12Every item assigned to the type follows the same pack conversion
Sheet-areasquare millimetresquare metre, square footThe conversion is fixed

Bad unit type:

Units typeBase unitOther unitProblem
Packagingeachcase = 24Some items ship 6, 12, 40 or 50 each per case

The conversion rate lives on the units type, not on each transaction line. A generic Case with conversion 24 cannot also mean 50 for another item assigned to the same type.

Create separate types or unit names for materially different fixed packs, such as Quantity-12, Quantity-24 and Quantity-50. Another option is to sell the item’s packaging as its own inventory or assembly item when the pack has a separate identifier, price, stock behavior or replenishment process.

Do not create hundreds of nearly identical types without checking the item-master consequences. Group products only when the conversion means the same thing for all of them.

Choose the smallest useful base unit

The base unit anchors inventory and transaction math. For a fixed pack, Each usually works. For cable, millimetre, metre or foot may work depending on how the business buys, cuts and stocks it.

Avoid a base unit so small that normal orders create huge base quantities. NetSuite limits a transaction line to 9,999,999,999 base units. Oracle warns that large conversions can hit this limit unexpectedly.

Example:

  • base unit: millimetre
  • sale unit: kilometre
  • conversion: 1,000,000 millimetres
  • order: 12,000 kilometres
  • base quantity: 12,000,000,000 millimetres

That line exceeds the documented limit. A metre base unit would produce 12,000,000 base units and stay below it.

The base must still fit inventory, work-order and precision needs. Do not choose it from the limit alone.

Set item defaults with the downstream transaction in mind

The item record can hold different defaults:

  • Purchase unit for purchase transactions and last purchase price
  • Stock unit for inventory counts and availability
  • Sale unit for estimates, sales orders and invoices
  • Consumption unit for inventory consumption

Oracle says purchase orders default to the purchase unit, invoices default to the sale unit and inventory adjustments default to the stock unit. Users can change units on many purchase and sales transactions, but not on every inventory transaction.

The defaults should match the work people normally perform. They do not remove the need to show the unit.

Record or transactionDefault to reviewFailure if wrong
RFQ and estimateSale unitRep prices a box with an each rate
Sales order and invoiceSale unitCustomer sees a unit that differs from the offer
Purchase orderPurchase unitSupplier receives the wrong pack or quantity
Inventory availabilityStock unitRep mistakes 40 cases for 40 each
Assembly build and work orderBase unitReleased build quantity differs from the sold quantity
Last purchase pricePurchase unitCost comparison mixes per-case and per-each values

Review custom scripts, imports and integrations as well. A field named quantity does not identify the unit by itself.

Quote fixed packs correctly

Assume:

  • base unit: Each
  • sale unit: Box of 50
  • purchase unit: Thousand
  • stock unit: Each
  • customer request: 12 boxes
  • selling price: $0.08 per each
  • supplier cost: $52.00 per thousand

Convert the physical quantity first:

StepCalculationResult
Customer quantity to base12 × 50600 EA
Base quantity to purchase unit600 ÷ 1,0000.6 M
Selling extension600 × $0.08$48.00
Supplier cost0.6 × $52.00$31.20
Gross profit before other costs$48.00 − $31.20$16.80

The quote may show 12 boxes at $4.00 each. The cost model may use 0.6 thousand at $52.00. The warehouse may reserve 600 each. All three views describe the same physical quantity.

Show “Box of 50” on the customer document. “Box” is not enough.

GS1’s GTIN Management Standard treats a change in pack or case quantity as a product-identification event. If the supplier changes the pack from 50 to 40, update the packaging identity and the conversion. Quote history cannot supply the old factor safely.

Handle price-per-thousand without corrupting quantity

Industrial suppliers often quote small parts per hundred or per thousand. The notation can be easy to miss:

  • $85.00 / M may mean $85 per thousand
  • $85.00 / C may mean $85 per hundred
  • M can also mean metre in another context

Store the price unit as structured data. Do not parse the letter without the supplier’s convention.

For a 3,500-each requirement at $85 per thousand:

3,500 EA ÷ 1,000 = 3.5 M

3.5 × $85 = $297.50

If the customer wants seven boxes of 500, the physical quantity remains 3,500 each. The customer-facing unit can be BOX500 while the purchase-price basis remains M. Preserve both.

Treat variable packs as quantities, not fixed conversions

A conversion rate must remain true for every transaction that uses it.

Do not define:

  • one coil = 2,400 kg when coil weights vary
  • one bar = 6 m when the supplier can ship mixed lengths
  • one reel = 1,000 m when partial and remnant reels circulate
  • one crate = 12 pieces when export packing changes by destination

For a variable pack, use the measured or agreed quantity on the transaction and store the package count separately. A shipment might contain:

3 coils · 7,240 kg total

The commercial unit may be kilogram. The logistics record can carry three packages. Coil is a handling count, not a fixed mass conversion.

If sales offers a fixed per-coil price, define what that price covers and how weight variance affects billing. That is a commercial rule, not a universal unit conversion.

Sell cut length without losing the stock quantity

Suppose a customer asks for 20 pieces of hose at 3.5 metres each.

The demand is:

20 pieces × 3.5 m = 70 m

If NetSuite stocks and prices the hose by metre, the quote line can carry 70 m and a description that commits to 20 cuts of 3.5 m. If the company sells each finished cut as a separate item, the transaction may need 20 each plus the length attribute or configuration.

Decide which object carries each fact:

FactPossible owner
Total material quantityInventory item in metres
Number of cutsTransaction field, work instruction or configured item
Length of each cutConfiguration, transaction field or work instruction
Scrap allowanceCosting or routing rule
Customer pricePer metre, per cut or fixed line amount

One Piece-to-Metre conversion works only when every piece has the same length. A configurable cut cannot use one fixed factor.

Quote weight-based products with a stated basis

Weight-based selling has two separate questions:

  1. How will you estimate the quantity for the quote?
  2. Which measured quantity will govern the invoice?

For a fabricated plate, the quote may use theoretical weight from material density and dimensions. The final invoice may use theoretical weight, certified weight or scale weight. State the basis.

Example:

  • requested plate quantity: 8 pieces
  • theoretical weight: 412.5 kg per piece
  • quoted quantity: 3,300 kg
  • quoted rate: $2.40 per kg
  • extension: $7,920

If the customer expects a fixed price per piece, quote $990 per piece and retain the theoretical weight in the cost model. Do not switch to actual-weight billing later without an agreed term.

Name the mass unit. Ton can mean short ton, long ton or metric tonne. Use kg, t, lb, short ton or another explicit term. UNECE Recommendation 20 supplies standard codes for units used in international trade. The code gives integrations a shared label; it does not supply the item-specific conversion or commercial rule.

Check assemblies, serial numbers and lots

Manufacturing items add constraints that a basic quote test can miss.

Assemblies use base units for build records

Oracle’s Assemblies and Units of Measure guide states that assembly builds, unbuilds and work orders use base units. A sale of two dozens can create a base quantity of 24 assemblies downstream.

Test the quote-to-work-order path. The sales unit can look correct while a custom integration sends 2 as the build quantity instead of 24.

Serialized items need one serial per base unit

Oracle requires the base unit to be the lowest unit for serialized inventory and assemblies. The selected stock, purchase and sale units cannot use a fractional conversion to that base.

If the company sells two dozens of a serialized item with Each as the base unit, the transaction represents 24 serial numbers. Test serial entry, fulfilment and returns in the non-base unit.

Lot-numbered items count lots differently

Oracle allows fractional quantities for lot-numbered items. On transactions, the lot quantity follows the transaction unit. A receipt of ten cases can show ten against the lot even when each case converts to six base units.

Do not reuse serial-number logic for lot-numbered stock.

Apply quantity pricing on the correct basis

NetSuite Quantity Pricing can select different prices from the quantity sold. Oracle’s item pricing setup lets companies calculate discounts by line quantity, overall item quantity, overall parent quantity or overall schedule quantity.

Test the transaction unit used by your actual item and form. A break at 100 is meaningless in a design document unless the team knows whether it means 100 each, 100 boxes or the converted base quantity in that account.

Use a test table:

ScenarioInputExpected tierExpected extension
Below break in eaches99 EABase tierKnown value
At break in eaches100 EATier 2Known value
Equivalent boxes10 BOX10Same physical tier as 100 EASame extension
Split lines60 EA + 40 EADepends on line vs overall-item settingKnown value
Matrix children60 red + 40 blueDepends on parent or schedule settingKnown value

If the equivalent box case does not reach the expected tier, do not fix it with a hidden price override. Fix the price basis or conversion design.

Reconcile the customer PO by physical quantity

A customer may convert the quote into its preferred unit:

  • quote: 12 BOX50 at $4.00
  • PO: 600 EA at $0.08

These lines agree:

  • physical quantity: 600 each
  • extension: $48.00
  • product identity: same

The reconciliation should show an equivalent representation, not a quantity exception.

A different case is:

  • quote: 12 BOX50
  • PO: 12 BOX40

The line counts agree. The physical quantities differ by 120 each. That needs review even if the PO copies the $48 total.

Compare:

  1. item identity
  2. customer and seller units
  3. conversion factors and their sources
  4. base quantity
  5. rate basis
  6. extension
  7. pack or dimensional specification

Carry the same decision into fulfilment and invoice creation. Our NetSuite PO-matching guide covers the broader order comparison.

Map external unit codes explicitly

Customer files may use EA, EACH, PC, PCS, C62 or a local code for the same concept. Another file may use M for metre while a supplier uses it for thousand.

Create a mapping table with context:

Incoming codeSource or standardNetSuite unitConditions
C62UNECE Recommendation 20EachDirect mapping
MTRUNECE Recommendation 20MetreDirect mapping
BXCustomer code listBox of 50Only for the specified customer and item family
MSupplier price sheetThousandOnly when that supplier defines M as 1,000 pieces
blankCustomer spreadsheetUnresolvedAsk or derive from a controlled contract field

Map a code only within the scope that gives it meaning. A global M-to-metre rule will corrupt supplier price sheets that use M for thousand.

Oracle’s Universal Mapping Assistant can use a units-of-measure standard supplied by an installed SuiteApp. Oracle currently documents a PEPPOL UN/ECE option. Whether you use that feature or an integration mapping, preserve the external code and the chosen NetSuite internal unit.

What Bourne adds to NetSuite unit conversion

NetSuite should own the approved units type, item defaults and conversion rates used for transactions. Bourne handles the customer and supplier data that arrives before a clean NetSuite line exists.

Bourne can:

  • extract quantity, unit and price basis from spreadsheets, PDFs and email
  • retain the customer’s original words and unit code
  • match the requested product before selecting its conversion
  • map customer and supplier codes within the right scope
  • read the item’s NetSuite base, sale, stock and purchase units
  • convert quantity and rate onto one basis
  • compare the converted quantity with pricing breaks
  • flag variable packs, missing units and conflicting factors
  • show the customer quantity, warehouse quantity and purchase-cost quantity together
  • prepare the estimate after the rep accepts the interpretation
  • reuse the same conversion during PO review and order entry

The review should answer the business question:

The customer requested 12 boxes. We matched item 1842. NetSuite defines one box as 50 each. The quote will show 12 BOX50 at $4.00. Inventory demand will be 600 EA. Supplier cost uses 0.6 thousand at $52.00. Approve?

That is easier to review than a hidden conversion behind a quote total.

Bourne can preserve the customer's unit, apply the approved NetSuite conversion and show the warehouse quantity and pricing basis before it prepares the quote line.
Unit conversion · Example workspace

Test the complete quote-to-cash path

Run these cases in a sandbox or controlled test account:

Test caseExpected result
One fixed case in sale unitCorrect base quantity, rate and extension
Same demand entered in base unitSame physical quantity and commercial result
Purchase in thousand, sale in case, stock in eachCost, sale and availability reconcile
Customer code maps to the wrong packWorkflow blocks the quote line
Missing unitLine remains unresolved
Variable-weight coilNo fixed coil-to-kilogram conversion applied
Cut-length itemTotal length and cut count reach the right downstream records
Quantity break at an equivalent unitCorrect pricing tier and extension
Serialized dozen12 serial numbers required per dozen
Lot-numbered caseLot quantity follows NetSuite’s documented transaction behavior
Assembly sold in a non-base unitWork order receives the correct base quantity
Quote in cases, PO in eachesReconciliation shows equivalent base quantity
Pack size changed from 50 to 40Packaging identity and conversion trigger review
Large unit conversionBase quantity remains below NetSuite’s line limit
Printed proposal and invoiceUnit and price basis appear clearly on both

Test scripts, CSV imports, integrations, saved searches, reports and custom PDFs. The UI can calculate correctly while an integration omits the unit field or a report labels base quantity as sale quantity.

Measure unit quality

Track:

  • RFQ lines with a missing or unknown unit
  • quote lines with manual unit overrides
  • lines whose quantity changed after item matching
  • pack-size exceptions
  • quantity-pricing overrides caused by unit setup
  • PO discrepancies resolved as equivalent conversions
  • PO discrepancies caused by true physical-quantity changes
  • warehouse corrections after sales-order release
  • credits and rebills tied to unit errors
  • margin changes caused by purchase-versus-sale unit mistakes

Report the rate by customer, supplier and product family. One customer with an undocumented code list can create most of the exceptions.

Frequently asked questions

Can one NetSuite unit type support cases of 12, 24 and 50?

Not under one generic Case conversion. A unit has one conversion rate inside its units type. Create distinct fixed-pack units or types, or represent the packages as separate items when they have their own identity and inventory behavior.

Should the quote show the customer’s unit or our stock unit?

Show a unit the customer can reconcile with its request and make the pack or dimensional basis explicit. Retain the stock or base quantity for fulfilment. If the customer unit cannot map safely to the item, resolve it before quoting.

Can AI infer the pack size?

AI can retrieve a candidate factor from an item record, supplier specification, contract or prior transaction. Use the factor only when a controlled source proves that it applies to the matched item and current packaging. A similar product or old quote is not enough.

Which unit should quantity pricing use?

Use the basis configured and tested in your NetSuite account. Test base and alternate-unit entries at each break, including split lines and matrix children. Put the governing unit in the pricing design.

How should we quote a variable-weight item?

Use the agreed commercial unit, such as kilogram, and state whether the quote and invoice use theoretical or measured weight. Track package count separately if one coil, bundle or crate does not have a fixed conversion.

What changes for serialized items?

Use the smallest unit as the base. NetSuite requires serial numbers equal to the base-unit quantity, even when the transaction uses a larger unit. A sale of two dozens therefore needs 24 serial numbers when Each is the base.

What if the customer PO uses a different unit?

Convert both lines to the same base quantity, then compare item, pack, rate basis and extension. Accept the representation as equivalent only when the physical and commercial commitments agree.

Can Bourne prepare the NetSuite line?

Yes. Bourne can extract the incoming quantity and unit, retrieve the matched item’s NetSuite conversion, explain the calculation and prepare the estimate or sales-order line after the workflow resolves any exception.

Further reading

Oracle: Multiple Units of Measure documentation
NetSuite documentation for the record or feature discussed in this guide.

GS1: pack and case quantity changes
When changed case or pallet quantities require a new GTIN.

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.