How to Track Inventory with Google Sheets (Free Method)
You don't need inventory software to keep accurate stock counts — a well-built Google Sheet does the job for free, and it updates itself as you log movements. Here's how to build one from scratch.
The two-tab structure. Use a Products tab (the master list) and a Movements tab (every stock-in and stock-out). Keeping movements separate from the master list is what makes the sheet scale — you never overwrite quantities, you just log changes.
Set up the Products tab. Columns: Product, SKU, Starting Qty, Reorder Point. One row per item.
Set up the Movements tab. Columns: Date, SKU, Type (In/Out), Quantity. Every delivery and every sale gets a row.
Calculate stock on hand. On the Products tab, total the ins and outs per SKU and combine with the starting quantity. Cleaner is to total ins and outs separately:
Total in: =SUMIFS(Movements!D:D, Movements!B:B, B2, Movements!C:C, "In")
Total out: =SUMIFS(Movements!D:D, Movements!B:B, B2, Movements!C:C, "Out")
On hand: =StartingQty + TotalIn - TotalOut
Add a low-stock flag. Compare stock on hand to the reorder point:
=IF(OnHand<=ReorderPoint,"REORDER","OK")
Then add conditional formatting (Format › Conditional formatting) to turn "REORDER" cells red so they're impossible to miss.
Make it auto-expand with ARRAYFORMULA. Instead of dragging formulas down as you add products, write one ARRAYFORMULA in the header row so the whole column fills automatically:
=ARRAYFORMULA(IF(A2:A="","",B2:B + ... ))
This is the Google Sheets advantage — new rows are handled without touching the formula.
Connect it to a form. Link a Google Form to the Movements tab so staff can log stock changes from a phone. New submissions flow straight in and your counts update live. (See the Google Forms order sheet idea for the same pattern applied to sales.)
A few good habits. Use data validation to restrict the Type column to "In" and "Out" only (no typos to break your SUMIFS). Keep SKUs consistent — a trailing space makes "ABC123 " a different item from "ABC123." And lock the formula cells so they don't get overwritten during data entry.
That's a complete, self-updating inventory system with nothing but built-in functions.
Related: Google Sheets vs Excel: Which Formulas Work the Same? · Inventory Tracker Template