Skip to content
NetSuite reporting

NetSuite inventory valuation report: why it won't tie to the GL

How the NetSuite inventory valuation report is built, how costing method changes the number, and why it won't tie to your inventory GL account.

ERPray teamUpdated 6 min read
Short answer

The NetSuite Inventory Valuation Summary report shows quantity on hand and total value per item as at a date, valued by each item's costing method — average, FIFO, LIFO or standard. It is driven by transaction dates while the inventory GL account moves by posting period, which is the main reason the two rarely agree to the cent.

Key takeaways

  • Inventory value is quantity on hand multiplied by a cost that depends on the item's costing method — not by the last price you paid, and not by the item record's displayed average cost.
  • The valuation report is item-driven and transaction-date driven. The inventory GL account is account-driven and posting-period driven. Those are two different questions and they answer differently by design.
  • A back-dated receipt can change last month's valuation after you've reported it, because NetSuite recalculates costing when transactions are entered out of chronological order.
  • Journal entries booked straight to an inventory asset account are the single most common reconciliation break: they move the GL and leave the valuation report untouched.
  • WIP, in-transit stock and negative on-hand balances all sit outside the tidy version of this report. Find them before month end, not during it.

Every controller with inventory has had this month. The NetSuite inventory valuation report says $4,182,640. The inventory asset account on the trial balance says $4,206,915. The difference is $24,275, nobody knows where it came from, and close is tomorrow. The good news is that the gap is almost always one of about seven things, and most of them are structural rather than a mistake.

What the report actually computes

NetSuite's Inventory/Items report category holds two versions: Inventory Valuation Summary, one row per item, and Inventory Valuation Detail, which breaks the value down further. Both compute the same thing — on-hand quantity as at a date, multiplied by the cost the item's costing method says applies.

Inventory valuation
The balance-sheet value of stock you own and haven't sold yet. Quantity is a physical fact; cost is an accounting policy. Two companies holding identical stock can carry materially different inventory values, entirely legitimately, because they chose different costing methods.
Costing methodHow the unit cost is derivedWhere it surprises people
AverageWeighted average of costs received, recalculated as each receipt postsThe average moves whenever you receive. A back-dated receipt reprices everything that followed it.
FIFOOldest cost layers are consumed firstReported margin lags real input prices. In a rising-cost period, COGS looks flat and margin looks great until the layers catch up.
LIFONewest cost layers are consumed firstBalance-sheet value can drift far from replacement cost, and it is restricted or disallowed under some reporting frameworks.
StandardA cost you maintain on a cost record, not the cost you paidThe difference between paid and standard lands in variance accounts, so inventory value is stable and your P&L absorbs the noise.
Costing method is set per item, so one account can hold all four. Serialised and lot-tracked items carry their own specific costs.

Why the report and the GL disagree

Work these in order. In most accounts the first three explain more than 90% of the variance.

#CauseDirectionHow to confirm it
1Date basis. The valuation report ages on transaction date; the GL moves on posting period.EitherRun the ledger side filtered by transaction date, then by posting period. The delta is your date-basis gap.
2Journals posted directly to an inventory asset account, with no item on the line.GL higher or lowerQuery inventory-account lines where the item is null. Write-downs and audit adjustments live here.
3Items pointing at more than one asset account, or a non-inventory item pointed at the inventory account by accident.EitherGroup the ledger side by account, and the report side by item's asset account. Compare account by account, never in total.
4Work in process. Components issued to a work order have left inventory and haven't become a finished item yet.GL higherLook at the WIP account balance. If it's non-zero and your valuation report doesn't include it, that's your number.
5In-transit stock on transfer orders, depending on how transfers are configured.GL higherCheck the in-transit account balance and the list of transfer orders shipped but not received.
6Negative on-hand quantities. Selling before receiving values COGS at an estimated cost, corrected when the receipt lands.EitherSearch for items with on-hand below zero at any location. Fix the receipts, then re-run.
7Costing recalculation still in flight after out-of-order transaction entry.EitherRe-run tomorrow. If the number changes with no new transactions in the period, this was it.
Seven structural reasons an inventory valuation report and an inventory GL account differ. Only two of them are errors.

Point 7 deserves emphasis because it undermines trust in the whole report. NetSuite recalculates costing when transactions are entered out of chronological order — a receipt dated last Tuesday, entered today, reprices the issues that happened in between. That recalculation is not instantaneous. A valuation report run mid-close can legitimately differ from the same report run the next morning with nothing new dated in the period. Print it, date-stamp it, and file the printout.

Getting quantity and cost yourself

For a working list rather than a report, an Item saved search gives you on-hand quantity, average cost and — with the inventory-location join added — the same numbers broken out per location. Two things make it much more useful:

  • Add a value formula. A numeric formula column multiplying on-hand quantity by cost gives you a value column you can sort, which the canned report's summary layout makes awkward. Treat it as an approximation for prioritisation, not a substitute for valuation.
  • Add last-activity dates. On-hand quantity next to "last received" and "last sold" turns a valuation list into a slow-moving-stock list. That is usually the question behind the question, and it is where the write-down conversation starts.
Free calculator
Inventory turnover calculator

Feed the closing valuation and period COGS in to get turns and days of inventory — the number that tells you whether the value on the balance sheet is working.

The reconciliation query

Do not try to recompute layer-level valuation in SuiteQL. It is possible, it is slow, and it will disagree with NetSuite's own costing engine in edge cases you won't find until an auditor does. What SuiteQL is genuinely good for here is the ledger side, per item, which is exactly what the reconciliation needs:

SELECT
  BUILTIN.DF(tl.item)                          AS item,
  BUILTIN.DF(tal.account)                      AS asset_account,
  ROUND(SUM(tal.debit) - SUM(tal.credit), 2)   AS gl_value
FROM transactionaccountingline tal
JOIN transactionline tl ON tl.transaction = tal.transaction
                       AND tl.id          = tal.transactionline
JOIN transaction t      ON t.id = tal.transaction
JOIN account a          ON a.id = tal.account
WHERE a.accttype  = 'InvtAsset'
  AND tal.posting = 'T'
  AND t.trandate <= TO_DATE('2026-06-30', 'YYYY-MM-DD')
GROUP BY BUILTIN.DF(tl.item), BUILTIN.DF(tal.account)
HAVING ROUND(SUM(tal.debit) - SUM(tal.credit), 2) <> 0
ORDER BY gl_value DESC
Inventory value as the ledger sees it, per item and per account. Rows where the item is empty are your journal-entry breaks.

Run that, run the valuation report, and put the two lists side by side keyed on item. The rows that don't match are the whole investigation, and there are usually fewer than twenty of them. Rows with a blank item and a real balance are point 2 from the table above; you have found them in about ninety seconds rather than by scrolling a general ledger. The SuiteQL formatter is handy if you inherit this query pasted into a wiki page as one long line.

Reading the valuation, not just producing it

Once the number ties, it is worth thirty more seconds of thought, because inventory value is the most expensive line on a distributor's balance sheet.

  • Value concentration. Sort descending by value and look at the top 30 items. If 20 items are 70% of value, your cycle counting, buffer policy and review cadence should all be shaped around those 20 — not spread evenly across 4,000 SKUs.
  • Value with no movement. Items with real value and no issue in 180 days are the write-down candidates. Being able to name them before the auditor does is the difference between a provision and a restatement.
  • What holding it costs. Capital, storage, insurance, obsolescence and shrink typically total 18–28% of inventory value per year for mid-market distributors, which means $4.2M of stock costs real money to hold. The inventory carrying cost calculator breaks that into its components.
  • Whether valuation is complete. If freight, duty and brokerage aren't in your item costs, your inventory is understated and your margins are overstated by the same amount. Landed cost: what to include covers the allocation methods, and inventory turnover: how to read it explains why turns move when costing changes even though nothing physical did.

Asking instead of building

Two reports, two queries, a keyed comparison, and a judgement about which differences are structural. That is a genuine skill and it is also a recurring Tuesday. Ask "inventory value by item at 30 June versus the inventory asset accounts, show me only the items that don't match" and you get the comparison computed live from your own account, with the SuiteQL printed underneath so the costing assumptions are visible rather than implied. Read-only by default — nothing in the ledger moves.

Frequently asked questions

Why doesn't my NetSuite inventory valuation report match the GL?

Usually date basis: the valuation report works on transaction dates while the inventory GL account moves by posting period. After that, the common causes are journal entries posted directly to an inventory asset account with no item on the line, items mapped to more than one asset account, and value sitting in WIP or in-transit accounts that the valuation report doesn't cover.

Which costing methods does NetSuite support?

Average, FIFO, LIFO and standard costing, set per item, so a single inventory account can contain all four. Serialised and lot-numbered items carry specific costs against each serial or lot. Changing an item's costing method after it has transaction history is disruptive and should be treated as a project, not a settings change.

Can I run a NetSuite inventory valuation report as of a past date?

Yes — the valuation reports take an as-of date and recompute from current data. That means the report is not a stored snapshot: a back-dated receipt entered this week will change what last month's valuation looks like when you re-run it. Print and file the version you reported, with the run date on it.

Why is on-hand quantity times average cost different from the valuation report?

Because valuation respects cost layers, per-location costs and the as-of date, while the average cost on an item record is a single current figure for the whole item. The multiplication is a reasonable way to prioritise a review list, but it is not the inventory value and should never be used as a balance-sheet number.

How do I find inventory journal entries that break the reconciliation?

Query accounting lines against accounts of type InvtAsset where the linked transaction line has no item, or run a general ledger report on the inventory asset accounts filtered to journal entries. Legitimate write-downs and audit adjustments live here; anything else is usually a mis-coded expense that should never have hit inventory.

Does the inventory valuation report include work in process?

No. Once components are issued to a work order they have left inventory, and the value sits in a WIP account until the assembly is built. If your inventory asset accounts and the valuation report differ by roughly the WIP balance, that is the answer — and it is a reason to report WIP alongside inventory rather than inside it.

Your ERP already knows. Start asking.

ERPray computes answers like these live from your own ERP account and shows the exact query behind every number. Early access is open for NetSuite teams — free plan at launch.