Skip to main content

Movement Reason Codes Explained

Every inventory movement you record through the Movement Wizard -- receiving, waste, comps, transfers, or count adjustments -- requires you to select a reason from a fixed list instead of typing free text. This keeps your inventory history classified consistently so it can be reported on, instead of buried in inconsistent notes.

Why typed reasons instead of free text​

Before you could type anything into a "reason" box -- "spoiled," "spoilage," "went bad," "trash" all meant the same thing but couldn't be grouped together in a report. Typed reason codes fix that: every operator picks from the same list, so "Waste -- Spoiled" always means the same thing across every location and every shift.

This is what lets reports separate:

  • Real shrinkage (waste, spoilage, breakage) from
  • Explained losses (staff meals, comps, donations) from
  • Internal movement (transfers, count corrections)

See Track Waste & Variance for how these categories feed the waste dashboard.

Where you pick a reason​

The Reason step of the Movement Wizard shows reason chips grouped by category. Tap a chip to select it -- no typing required for most reasons.

  • Only reasons that apply to the movement type you selected are shown. For example, if you selected OUT, you will see Waste, Comp, Staff, Donation, Production, and Return-to-Vendor chips -- not Transfer or Receiving reasons.
  • A few reasons (equipment failure, manager comps, vendor recalls, and "Other") require you to also type a short note explaining what happened. The notes field switches to required automatically when you pick one of these.
  • Quick Scan Receiving (the fast one-item-at-a-time dock flow) does not ask you to pick a reason -- it always records a standard delivery receipt. Use the full Movement Wizard if you need a different IN reason (for example, a customer return).

Reason categories​

CategoryMovement typeExample reasons
ReceiveINDelivery from supplier, Customer return
WasteOUTExpired, Spoiled, Dropped, Over-pour, Burned, Prep trim, Equipment failure
CompOUTGuest service, Marketing/promo, Manager comp, Void -- rung in error
StaffOUTStaff meal, Manager dinner
DonationOUTDonation
ProductionOUTRaw-to-prep, Recipe depletion, Issued to kitchen/production
Return to VendorOUTRMA, Damaged, Recall
CountADJUSTMENTCycle count adjustment, Physical count adjustment
TransferTRANSFERStock balancing, Load-in, Load-out, Stand-to-stand, Replenish to par, Banquet setup
OtherOUTOther (always requires a note)
note

Some reasons like Waste -- Expired are recorded automatically by the platform (for example, when perishable stock expires -- see Perishability & Expiry Alerts), not just by a person tapping a chip.

Movements recorded before reason codes existed​

If your property has movement history from before this feature, those older movements will not have a reason code -- they show as Unclassified wherever reason is displayed. This is expected and does not need any action; only new movements require a reason going forward.