Bring your ERP · Oracle · read-only

Margin check for NetSuite.

Run the Margin X-Ray on your Oracle NetSuite data. You pull a few tables read-only, drop them on the X-Ray, and it finds the supplier increases that never reached the price, the expired contracts still billing, the claims never filed, all inside your browser tab. Nothing is uploaded, and no login, password or key ever leaves your building.

Multi-tenant cloud only.

Where NetSuite keeps it

A distributor’s file is many supplier lines, each with its own rule. These are the places NetSuite stores what the X-Ray reads.

Where Oracle NetSuite stores each piece of pricing data the X-Ray reads.
What the X-Ray readsWhere NetSuite keeps it
Supplieritemvendor (vendor, purchaseprice, vendorcode, preferredvendor)
Purchase discount groupnot native: vendor price levels or a pricing SuiteApp
Price line / classitem class and the item’s price level
Customer price classprice levels (pricing, pricelevel) and customer-specific item pricing
Quantity breakspricing.priceqty per price level
Contractscustomer item pricing, or a pricing SuiteApp (ask which one is installed)
Invoicestransaction + transactionline (type CustInvc / CashSale / CustCred); costestimate is an estimate, actual COGS is in GL impact lines

The read-only pull

SuiteAnalytics Connect or SuiteQL, read-only by design

  1. A role with SuiteAnalytics Connect (read-only by design) or SuiteQL access runs the queries below.
  2. Filter transaction lines to item lines: tax, shipping, discount and subtotal lines live in the same table.
  3. Quantities are signed and in base units in many contexts: export them as they are; the X-Ray keeps credits negative.
  4. Save each result as CSV and drop them on the X-Ray; map the columns once, then keep the mapping.
SuiteQL (SELECT only)
SELECT id, itemid, displayname, itemtype, cost, averagecost, lastpurchaseprice, isinactive, saleunit, stockunit FROM item WHERE isinactive = 'F';
SELECT item, pricelevel, priceqty, unitprice FROM pricing;
SELECT item, vendor, purchaseprice, vendorcode, preferredvendor FROM itemvendor;
SELECT t.tranid, t.trandate, t.entity, tl.item, tl.quantity, tl.rate, tl.netamount, tl.costestimate, tl.units FROM transaction t JOIN transactionline tl ON tl.transaction = t.id WHERE t.type IN ('CustInvc', 'CashSale', 'CustCred') AND t.trandate >= ADD_MONTHS(SYSDATE, -24);

The traps the X-Ray handles

  • Price levels, quantity pricing, customer pricing and SuiteApp pricing can all apply: reconstructing the price a customer should get needs to know which is installed.
  • costestimate is an estimate, not posted COGS.
  • Transaction lines include tax, shipping, discount and subtotal items: filter by item type.

The X-Ray reads these exports as they are: map the columns once (it suggests every match), then run. A recognized pack for NetSuite is on our list.

Next: your own file

Start with the free X-Ray on your own export. When you want every leak sized against your invoices and supplier files, the Margin Diagnostic does it on your full data (from $5,000), with your Supplier Line Rulebook and a Line Review Kit for each supplier review included.

Other ERPs: Prophet 21 · SX.e / CSD · Eclipse · Business Central

Field names follow vendor documentation and community data dictionaries, compiled in our ERP research (October 2026). Your version may name a field differently; the X-Ray’s column matcher accepts either.