Receive a delivery manually

Receiving records what you took in from a supplier so current stock, cost history, weighted-average pricing, and price alerts all stay accurate. The manual receive screen is the fastest path when you have a paper invoice or no auto-ingestion set up.

Steps

  1. Open Receive → New.

  2. Set the received date (defaults to today; change it if the delivery actually arrived earlier).

  3. Pick a supplier (filters which products show up below).
  4. For each line: search the product, enter quantity, pick the receiving unit (case if you've set case size; otherwise default unit), enter the cost per unit, and optionally an expiration date and notes.

  5. Tap Save.

What gets updated when you save

  • Current stock increases by quantity × unit conversion.
  • The product's case cost is overwritten with this receipt's per-case price.
  • Weighted-average cost recomputes for any report whose date range includes this receipt.
  • A price alert fires if the cost change vs. the previous receipt exceeds the dashboard threshold (default 5%).
  • An expiration alert is queued if you set an expiration date within the warning window (default 7 days).

See how cost is computed for the full picture of which cost ends up where.

Receivable units

A product's receivable units come from its setup:

  • Default unit is always available (the unit you count in).
  • Case appears if caseSize > 0.
  • Weight, volume, or count conversions appear if you've configured them on the product.

The default selection when you start a line is "case" if a case size exists, otherwise the default unit. Recipe-output products and non-inventoried products are deliberately excluded from receiving — the receive screen won't surface them in the product search.

Record-only receiving

The Record-only toggle saves the receipt for cost-history and price-alert purposes but does not add to current stock.

Use record-only when:

  • You took a physical inventory count after the delivery already landed (so the count already includes the received product).
  • You're back-filling old invoices for reporting purposes.

Don't use record-only for a new delivery that hasn't been counted yet — you'll under-state current stock.

Example

Receiving 4 cases of chicken from US Foods

  • Date: today
  • Supplier: US Foods
  • Product: Chicken Breast
  • Quantity: 4
  • Unit: case (since case size is set to 4 lb per case)
  • Cost per unit: $47.99
  • Expiration: +5 days
  • Notes: blank

Result: stock increases by 16 lb (4 cases × 4 lb), case cost updates to $47.99, weighted-average cost in reports moves slightly toward $47.99, and an expiration alert fires in 5 days (within the default 7-day warning window).

Common mistakes

Using record-only when you shouldn't

Record-only skips the stock update. If you toggle it on for a new delivery that hasn't been counted, current stock is wrong from then on. Default to off.

Searching for a recipe-output product and not finding it

Recipe outputs (marinara, dough) can't be received — they're produced by recipes. If you can't find a product, check whether it's set as a recipe output.

Surprised by the price alert threshold

Default is 5%. A case of fryer oil moving from $42 to $48 triggers an alert. Adjust the threshold in dashboard settings if it's too noisy.

Related