Inventory History

InventoryUpdated October 20, 2026 · Reviewed by Peasy Team

The History page shows a complete ledger of inventory movements and related audit entries — past and in-flight. Receives, sales, manual adjustments, transfers, production, open purchase orders, open sales orders, and work orders in progress all show up here. It's your audit trail for "what happened" and your forward-looking view of "what's about to happen."

How to Get There

Go to Inventory > Logs in the sidebar.

What You'll See

Each row in the history table represents an inventory movement, count, forecast, or history-only audit entry. Here's what the columns show:

ColumnWhat it means
Item NameWhich item was affected
TypeWhat caused the change (see below)
Order IDThe internal Peasy order number — the purchase order, sales order, work order, or transfer order behind the row
Transaction IDThe external transaction number, like an Invoice # on a sale or a Bill # on a receipt
StatusPending, Scheduled, or Complete — see "Pending vs. Complete" below
QuantityHow much was added or removed
Inventory DateThe effective date — when the change counts against inventory. Editable on the source record, so it can be backdated; for pending rows, when it's expected
Created AtThe audit timestamp — the exact date and time the record was entered into Peasy. Read-only, and useful for telling apart same-day recounts
Performed ByWho made the change
LocationWhich location was affected
Vendor / CustomerThe vendor or customer involved (if applicable)
NotesAny extra details or system notes
Unit Value / Total ValueWhat the units were worth at selling price. A sale uses the price on its order line; every other row uses the item's list price. Blank on receipts and work order inputs, which are cost-only
Unit Cost / Total CostWhat those units cost — the vendor price on a receipt, the consumption cost on a work order input, the production cost on an output, and COGS on a sale

When a Shopify source movement is tied directly to a Shopify order, Transaction ID shows the Shopify order ID and Order ID stays blank because there is no Peasy sales order. Open the row to see the same Transaction ID at the top of the detail panel, then click it to open that exact order under Configure > Integrations > Shopify > History. Shopify Sale, Return, Shipment Cancelled, and Correction rows show Shopify in the Customer column, because Peasy does not create a customer for a Shopify buyer.

Inventory Date vs. Created At

The table shows both dates side by side, and clicking any Complete row opens its detail panel with the same two dates:

  • Inventory Date — the effective date. It's when the change counts against your inventory, and it's editable on the source record (a sale's shipment ship date, a delivery's Receive Date, and so on), so a movement can be backdated. For a manual Add, Deduct, or Reset, the entry is its own source: change the date with Edit in the row's three-dot menu.
  • Created At — read-only. The exact date and time the record was actually entered into Peasy. It never changes, so even a backdated movement shows exactly when it was logged — and if you make more than one manual recount on the same day, Created At is how you tell which one happened last.

The Inventory Date is what drives your on-hand math; Created At is there for your audit trail. See Dating Inventory Movements for how the effective date interacts with your counts.

The Detail Panel

Clicking a row opens a detail panel on the right, organized into these sections:

  • Record — the order and transaction numbers, inventory date, location, and the customer or vendor. The type and status badges sit at the top right of this section.
  • Item — the item and SKU, quantity, and the value and cost figures for that movement.
  • Notes — any note on the record, where it came from, who entered it, and when.

Completed Received rows also have a Documents section at the bottom. Open it to upload a file or find documents attached to that receipt. Click a document card to download it, or use the filter button beside Documents to show a specific type, such as COA. Pending rows have no Documents section.

A value that's too long for the panel is shortened; hover it to see the whole thing.

For a sale (and any other row that draws stock from an existing lot), the panel has no tabs. Its Lot and Unit Cost fields link to the record that created the lot instead — the original receipt or work order — because that's where the lot's history and cost breakdown actually live. Clicking Unit Cost takes you straight to that record's Input COGs view.

For a completed work order output or co-manufacturer receipt, open Input COGs to see the ingredients and other costs recorded for that production run. Click an ingredient card to correct its quantity, lot, notes, unit-aware cost (for example, Cost per lb), or Total input cost. Saving refreshes the batch total and cost per output unit. Additional cost cards are shown for context but stay read-only here.

You can also open log details from related pages:

  • On an item detail page, open Inventory Logs and click a row to see that log in the right panel.
  • On a vendor detail page, open Inventory and click a row to see that vendor's inventory log detail.
  • Use the row's three-dot menu and choose View log detail when you want the same detail panel without clicking the row.

Closing the detail panel returns you to the item or vendor details you were viewing.

Pending vs. Complete

Every row has a status badge:

  • Complete (green) — The transaction has been finalized. Most Complete rows are physical movements or counts; a bundle assembled at fulfillment also has a balanced Sale and Bundle Output pair that records what happened without changing on-hand inventory.
  • Pending (yellow) — The transaction is expected but hasn't been finalized yet. Inventory hasn't moved yet.
  • Scheduled — A future-dated shipment that's arranged but hasn't reached its ship date. It stays Scheduled until that date arrives, when it becomes a Complete row automatically.

Pending rows come from in-flight work so you can see upcoming stock movement before it happens:

  • Open purchase orders waiting to be received
  • Open sales orders that haven't shipped yet — the still-unshipped quantity shows as Unfulfilled
  • Open Shopify orders on a store that uses the updated Shopify order handling — the still-unshipped quantity shows as Unfulfilled, with Shopify as its Source and Customer, and its Transaction ID links to the Shopify order
  • Work orders in progress (both the inputs they'll consume and the outputs they'll produce)
  • Transfer orders that have been created but not yet sent or received

Pending rows don't affect your current inventory count — they're a forecast. As soon as the underlying transaction is completed (PO received, SO or Shopify order fulfilled, WO logged, transfer sent), the pending forecast is reconciled with the resulting Complete history.

Transaction Types

You'll see these types of changes in the history:

  • Received — Items received from a purchase order, or the expected receipt on an open PO (pending)
  • Sales — Items deducted from a fulfilled sale, or the expected deduction on an open sales order (pending)
  • Manual Add — Someone manually added inventory (like a count adjustment upward)
  • Manual Deduct — Someone manually removed inventory (count adjustment downward)
  • Reset — Someone set inventory to an exact count instead of adding or subtracting a quantity
  • Transfer Out / Transfer In — Items moved between locations, including transfer orders that haven't sent yet (pending)
  • Production Input — Ingredients used in a work order, or the expected consumption on a WO in progress (pending)
  • Production Output — Finished products created by a work order, or the expected output of a WO in progress (pending)
  • Bundle Input — A component used when a bundle or variety pack ships
  • Bundle Output — The finished bundle assembled at shipment time. It appears with an equal-and-opposite Sale row for the bundle, so the two finished-bundle rows balance while the component inputs show what inventory was actually consumed
  • Source Add — A connected source added physical stock. The Source column names the provider, such as Shopify.
  • Source Deduct — A connected source removed physical stock. The Source column names the provider, such as Shopify.

Shopify source rows use more specific labels: a fulfillment is Sale, a physical return or restock is Return, stock restored after a shipment cancellation is Shipment Cancelled, and an inventory correction is Correction. Older rows and unrecognized Shopify movements keep Source Add or Source Deduct. Other connected sources also keep those generic labels. Placing, increasing, reducing, or canceling an unfulfilled order changes its pending Unfulfilled row instead of creating a physical-movement row, and a money-only refund does not move inventory.

Filtering and Searching

The history page can show a lot of data, so there are several ways to narrow things down:

  • Search — Type an item name, SKU, lot number, or a transaction ID (purchase order, sales order, work order, or transfer order number) to find specific entries
  • Date range — Set start and end dates to see a specific time period
  • Item filter — Show history for just one item
  • Location — Filter by a specific warehouse or store
  • Transaction type — Show only receives, only sales, etc. Choose Unfulfilled to include open sales orders, bundle orders, and Shopify source orders together. Older saved views that selected just one kind keep that narrower selection.
  • Source — Show movements initiated manually, by Shopify, by a sales order, by a work order, or by another source. A count adopted with Pull all from Shopify shows Shopify as its source.
  • Status — Show only Pending rows or only Complete rows
  • Vendor or Customer — See all transactions with a specific trading partner. Choose Shopify under Customer, or search for "Shopify", to see Shopify Sale, Return, Shipment Cancelled, Correction, and pending Unfulfilled rows. Blank does not include them.

Exporting Inventory History

Click Reports to open a collection of report cards. Each card explains what the report provides. Selecting a card changes the same modal to that report's details and settings. Use Back to choose another report.

To download inventory movements:

  1. Apply the log filters you need.
  2. Open Reports and choose Current View. With no filters applied, the same card is labeled Inventory History.
  3. Click Download on the next screen.

The CSV uses the log filters, including dates, items, vendors, and locations; it does not reproduce search text or your column display settings.

The other cards offer Current Inventory, Inventory as of date, Compare Periods, Inventory Valuation Detail, and Month-end COGS. These reports use their own scope independently of the log filters. Choose a card, fill in any required settings, then click Download. For Compare Periods, moving From past To clears To so you can choose a new end date.

Inventory History and Current Inventory also offer Export to Google Sheets when a compatible inventory spreadsheet is connected. This refreshes the connected spreadsheet; log filters apply only to the CSV download. If Sheets is not ready, connect Google Sheets opens setup. Inventory as of date and Compare Periods can export their selected dates to Google Sheets separately.

For Inventory History and Current Inventory, an existing running or failed sync shows Open Google Sheets settings so you can manage it there. If a new export fails, Peasy opens those settings automatically.

Sync to Google Sheets and Request a new report are separate cards below the reports. The first opens Google Sheets settings; the second opens a request in Beacon.

This is also the most flexible way to export receiving data when the Received page does not have the exact report you need. Filter Transaction type to Received, then narrow by date, vendor, item, location, or source before exporting.

Inventory Valuation Detail

Click Reports, choose the Inventory Valuation Detail card, select a Start date and End date, then click Download. If your business has multiple active locations, choose All locations or one Location. The location filter is hidden when there is only one active location. This report uses its own dates and location, independently of the filters or search on the logs table.

The workbook contains Inventory Detail, Summary, and Notes & Assumptions. It shows opening balances, inventory changes, ending balances, and totals by category. Historical quantities are valued at your current average costs, so this is not a reconstruction of historical purchase prices. Recorded Unit Cost shows the transaction's recorded cost separately from Valuation Unit Cost.

The notes identify missing costs, negative ending stock, and work order outputs without a recorded production cost. Unknown costs remain blank; when values are missing, the totals include only available values. For reports exceeding 10,000 log entries, choose a shorter date range.

Lot Tracking

If you track lot numbers, clicking a Complete row opens a detail panel showing lot information — the lot number, which item it belongs to, and how that lot has been used (sold, transferred, used in production, etc.). The Lot Tracking tab appears on the records that create a lot — receipts and work order outputs. It isn't shown for Pending rows, since the movement hasn't happened yet, and it isn't shown on rows that draw from an existing lot (sales, work order inputs, transfers out, manual deducts); on those, click the Lot to jump to the record that created it.

To correct lot assignments on several Complete rows at once, select the rows and click Edit lots. Peasy opens Bulk Edit Lots, where you can choose or type new lot values — each is checked automatically — and apply the updates together.

For a bundle assembled at fulfillment, the bundle's Sale and Bundle Output rows show the lot recorded on the finished bundle's shipment line. Those two history-only rows are read-only; correct the shipment lot from the order's fulfillment. Bundle Input component rows do not have their own editable lot assignments because Peasy does not allocate component lots when the bundle is assembled.

Saved Views

If you frequently check the same slice of history — say, all receives at a specific location — you can save that filter setup as a named view.

Click any filter combination, then use the Save View button to name and save it. Your saved views appear as buttons in the header bar for one-click access. You can update, rename, or delete views from the dropdown menu on the active view button. Click All to clear the active view and return to the full history.

Good to Know

  • Manual Add, Manual Deduct, and Reset entries have Edit and Delete actions in their three-dot row menu. Edit changes the entry's type, quantity, Inventory Date, and notes. The date can be today or earlier, and on-hand recalculates from the new day. When a Reset was part of a count that covered several items of one family at that location, changing its date moves the whole count, and Peasy tells you how many other items moved with it. Deleting one permanently removes that log and recalculates the current inventory quantity; it cannot be undone. Entries created by orders, receives, production, transfers, or connected sources do not have those manual actions.
  • You can also edit saved work order ingredients from a completed output's Input COGs tab and bulk-edit lot assignments for supported Complete rows. Correct other non-manual quantities on their source record or with a new count or adjustment.
  • Source-owned rows, including Shopify Sale, Return, Shipment Cancelled, and Correction rows, cannot be edited, deleted, or included in bulk lot edits. A correcting movement creates a new row for the same item, location, lot, and quantity instead of changing the original.
  • Manual entries show the user who made the change. Connected-source entries show the provider in the Source column instead.
  • Quantities are shown in each family's Inventory Unit (the base unit at the root of its conversion chain).
  • You can customize which columns are visible using the column preferences button. Source, User, and Location start hidden to keep the table manageable — turn any of them back on there.
  • CSV export includes both Pending and Complete rows when you're viewing the full history (the Status column is part of the export). To export only one status, apply the Status filter first.
  • CSV and Google Sheets exports keep Quantity as the familiar positive magnitude and add Signed Quantity to show direction (positive adds inventory, negative removes it). Affects Inventory and History Role distinguish physical movements, counts, forecasts, and history-only rows.
  • For a bundle assembled at fulfillment, revenue is valued once on the Sale row. Bundle Input and Bundle Output are intentionally left without sales value.
  • Both the CSV export and the Google Sheets sync include a Created At column alongside Inventory Date, so you can sequence same-day recounts in the exported data the same way you can on-screen. On-screen and in the CSV, Created At shows in your own local time zone. The Google Sheets sync always shows Created At (UTC) instead — that sheet is a shared document kept in sync automatically, not a personal download, so it uses one fixed time zone rather than whoever last triggered a sync.
  • Pending and Scheduled rows are not counted toward your on-hand inventory. Complete physical movements and counts drive on-hand; Complete history-only bundle rows do not.