# Movements

Source: https://docs.tightly.io/help/product/movements
Reviewed: 2026-09-07

## The question this page answers

What moved stock, across the book or at one product and warehouse, and which document caused each change?

## What you see

Movements is the ledger under Stock on hand: every plus and minus of stock, newest first, each with the document that caused it. It is Stock on hand's third reading, beside Now and Period end. Reached by the Movements row under Inventory it reads every product at every warehouse; reached by Open the ledger in a stock figure's position it reads that product at that warehouse, and from a document it reads every movement that document made.

The head reads Movements. The figure row carries the full filtered movement count, then In, Out and Physical movement net over the same filtered scope when supplied by the native read. Earlier API responses explicitly label these amounts This page; they are not whole-ledger totals. Earliest uses the same scope as the amounts. Each row is When, Movement, Change, Product and SKU (where the reading is not one product), the warehouse (where it is not one warehouse), Document (where it is not one document), Source, Cost and Landed cost. Movement is one of nine words: Opening, Received, Shipped, Returned, Adjusted, Transferred out, Transferred in, Counted, Corrected, with reversal beside a movement that reverses another. Document names what caused it: Opening balance, Delivery, Transfer delivery, Stocktake, Fulfilment request, Channel shipment, Return, Exception, Sync run, Build, Quarantine, Transfer or Outbound stock. Where a movement carries evidence, such as the source's figure beside the ledger's sum, hovering Change shows it. A cost prints in its own currency; Not measured stands where nobody took a landed cost and Not costed where units moved with no cost on file, and never a zero in place of either. A document name opens its recorded purchase order, transfer, stocktake or sales order when the ledger supplies that source record. A delivery opens its parent order; unresolved documents remain plain labels. Existing page permissions still apply. A reading longer than one page pages.

The movement totals count physical units. Period end reports available stock; these are different quantity bases.

Product/SKU, warehouse, movement kind and document kind narrow the reading, and each change asks the ledger again. Date range accepts exact UTC instants: From and Through both include their exact instants, matching the native ledger filter. A product, warehouse or document the reading is narrowed to shows as a chip that can be removed; with none, it reads the whole ledger.

## What to do

Nothing is written here. The ledger is added to and never edited or deleted: every change to stock is a movement, and a correction is a new movement, not a change to an old one. Open the position opens the pair's position, and pressing a row's product opens that product's position; from the position, Open the ledger opens this reading narrowed to the pair. Back to the grid returns to Now.

## When it is empty or failed

> No movement on the ledger for this reading.

> The ledger read didn’t answer.

The failed read offers Try again; the empty one offers Back to the grid.

The stock position drawer keeps the product and variant in its heading and names the selected warehouse underneath, including while its figures are loading.
