Inventory Items Became Non-Inventory After Migrating

2026-07-27 · 3 min read

If inventory items arrive in QuickBooks Online as non-inventory items, they lose quantity tracking and stop contributing to your inventory asset value. The signature is an item that exists in the Products and Services list with no quantity on hand, while the same item in Desktop shows a quantity and a value. It is a known migration failure and it is silent.

How would I notice this?

By quantity, not by value. Value differences have many causes; a quantity of zero on an item you definitely hold has very few.

Symptom What it points to
Item present, quantity blank or zero Arrived as non-inventory
Item present, quantity right, value wrong A costing method difference instead
Item absent entirely The item record did not migrate
Inventory asset account lower than Desktop Consistent with either of the first two

Open Products and Services in QuickBooks Online and look at the Type column. Anything you buy and resell should read Inventory. If it reads Non-inventory or Service, that is the problem.

What does it actually break?

Three things, and only the first is obvious.

Quantity tracking stops. Non-inventory items have no quantity on hand, so you cannot see stock levels and nothing warns you when you run out. An item that showed 48 units in Desktop shows nothing at all in Online.

Inventory asset value drops. The item no longer contributes to the inventory asset account, so your balance sheet understates assets by whatever that stock was worth.

Cost of goods sold changes shape. A non-inventory item expenses at the point of purchase rather than at the point of sale, so costs land in the wrong period. Gross margin moves for reasons that have nothing to do with trading.

That third effect is the one that quietly distorts reporting for months — often 2 or 3 quarters before anyone traces a margin swing back to a migration.

Why does it happen?

Usually because the item did not carry enough information to be created as an inventory item in Online — a missing inventory asset account, no quantity on hand, or no as-of date for the starting value. Faced with an incomplete record, the migration creates the nearest thing it can, which is a non-inventory item.

Can I just change the type back?

Not always, and not without care. QuickBooks Online restricts changing an item from non-inventory to inventory once transactions exist against it, and where it is allowed, you are setting a starting quantity and value that determine costing from that point on.

The safer sequence is to establish what the correct quantity and cost were as of your migration date, from the Desktop Inventory Valuation Summary, before changing anything. Then the starting value you enter is a fact rather than a guess.

How big is the gap usually?

Large enough to see and small enough to explain away. In one test migration the inventory asset account came across $225.00 short against a $3,200.00 Desktop balance — around 7%. On a balance sheet with 11 accounts, that single line is easy to skim past.

The tell is that the offsetting entry rarely matches. In the same file, Opening Balance Equity held $208.83 — close to the inventory gap but not equal to it, because a second, unrelated difference was also being absorbed. If you find one offset and stop looking, you close the investigation with a problem still open.

Two export details that fake a variance

QuickBooks Desktop CSV exports truncate silently at 32,770 rows, so a large item list can simply stop mid-file. And Excel exports store full float precision: a value displayed as 129,191.99 is 129191.98999999999 in the file. Truncate rather than round and you introduce a one-cent error on nearly every line, which then reads as a real difference.

Quick reference

Question Answer
What is the giveaway? Quantity on hand is zero or blank
Where do I look? Products and Services, Type column
What does it break? Quantity tracking, asset value, and cost timing
Which report gives me the true figures? Desktop Inventory Valuation Summary
Can I convert it back? Sometimes — establish the correct starting value first

The free check compares your inventory control account across both systems, so a drop caused by items arriving as non-inventory shows up with an amount attached.

Related guides