Receive, use, transfer and count stock
What this workflow achieves
Section titled “What this workflow achieves”This workflow builds a traceable inventory history from the product definition through receipt, use, transfer and physical count. It helps answer four different questions:
| Record | Question answered |
|---|---|
| Product | What is stocked, in which base unit, and under which handling rules? |
| Batch / lot | Which delivery supplied this quantity, where is it and can it be issued? |
| Stock movement | Why did the recorded balance change? |
| Stock take | What was physically observed compared with the frozen expected balance? |
Do not change the product, create a false receipt or record unrelated consumption simply to make a number agree. Correct the source when known; use a governed count or adjustment only for a real measured discrepancy.
1. Find the product before creating it
Section titled “1. Find the product before creating it”Open Inventory → Products and search by name, code or identifier. Prefer Setup → Add from library → Products when Farmlync already provides the governed product. Adoption creates this organisation/farm’s working copy; it does not bring stock from another farm or automatically receive a delivery.
For a farm-only product, confirm:
- a clear name and canonical code;
- category and sub-category;
- the physical base/counting unit used for receipts and deductions;
- manufacturer and identifiers where known;
- storage requirements and default stock location;
- reorder level and reorder quantity;
- default planning cost, if supported by evidence; and
- category-specific settings such as feed tracking, dose/route, withdrawal, prescription or vial-volume conversion.
Health products need the correct Medicine, Vaccine, Supplement or Other sub-category. Clinical pickers use this classification. A vaccine counted in a unit other than ml or Dose needs its positive Volume per stock unit (ml) so an administered dose can convert to inventory use.
Saving a product creates only the catalogue record. Open it again and verify the category, unit and rules before receiving stock. A later unit/category change affects how future work is interpreted and does not rewrite historical transactions.
2. Receive one product
Section titled “2. Receive one product”Open Inventory → Overview → Receive stock or choose Receive new batch from Product Detail.
| Control | What to enter or check |
|---|---|
| Filter by category | All, Health, Feed or Supplies; it narrows the picker and does not change product classification. |
| Product * | Active, inventory-tracked farm product. A preselected product can be locked. |
| Batch Number / Lot Number | Supplier identifiers, each up to 100 characters. Traceable clinical stock requires at least one. |
| Supplier | Optional saved organisation supplier. Selecting it is authoritative and fills the supplier name. |
| Supplier Name | Optional ad-hoc supplier, up to 200 characters. |
| Supplier Reference | Optional invoice, docket or purchase-order reference, up to 200 characters. |
| Received Date * | Actual farm-local date the goods arrived; defaults to today. Current validation can accept a future date, so verify it manually. |
| Expiry Date | Labelled expiry date; mandatory when the product’s clinical policy requires it. Current validation does not reject expiry before receipt, so compare the two dates. |
| Storage location * | Active location in this farm. The form prefers the product default and otherwise the farm default. |
| Receipt notes | Optional condition, label or docket context, up to 1,000 characters. |
Choose one quantity method:
- Total quantity — enter a positive amount directly in the product’s base unit; or
- Packs / containers — enter positive pack count, positive quantity per pack and the purchase unit/type. Check the calculated total in the base unit.
For cost, choose either the non-negative Total line cost or Cost per base unit according to the invoice. Farmlync derives the other value. It stores invoice total to two decimal places and unit cost to six; do not add tax, discount or pack conversions twice.
Attach receipt evidence when useful. Choose Receive Stock or Save & receive another, wait for confirmation, then check Product Detail, Stock Batches and Stock Movements. A receipt immediately increases on-hand stock, so never record a planned or undelivered order as received.
3. Receive a multi-line delivery
Section titled “3. Receive a multi-line delivery”Use Inventory → Deliveries → Receive multi-line delivery when one supplier docket contains at least two products.
Enter the shared supplier, invoice/delivery reference, received date, storage location and delivery notes. For each line select an existing catalogue product, then enter its own batch/lot, expiry, Total or Packs quantity, cost interpretation and optional notes.
Review every line against the physical label and docket before submission. The stock receipt commits all product lines together or none. Supplier evidence upload is a separate operation around that receipt, so verify both the stock entries and the attachment outcome.
Receiving against a purchase order does not happen merely because the order exists. Record the delivered quantities here, then verify the purchase-order remaining amount separately.
4. Read batch status before issuing stock
Section titled “4. Read batch status before issuing stock”Open Stock Batches or the product’s batch list. Confirm batch/lot, received date, expiry, on-hand quantity, unit cost, status and location.
| Status | Safe interpretation |
|---|---|
| Available | Eligible for normal issue, subject to positive unreserved quantity. |
| Quarantine | Physically present but blocked. Do not issue it. |
| Expired | Expiry marker blocks issue; quantity remains physically on hand until disposition. |
| Depleted | No quantity remains. |
| Disposed / Returned | Closed by the recorded disposition workflow. |
| Reserved | Present in the model, but no current Farmlync workflow creates this state; do not rely on it as an active commitment process. |
Use Quarantine to hold an affected batch and state the evidence-based reason. Use Release only when the hold is resolved; enter the required release reason, up to 500 characters. Releasing an already expired batch does not make it usable.
The batch register currently has no text search even though the service supports it, so narrow by product/status or use Product Detail when tracing a known lot. Some write controls are visible to read-only inventory users; a visible button is not an access grant, and the server still requires Manage inventory.
5. Record physical use not captured elsewhere
Section titled “5. Record physical use not captured elsewhere”Choose Inventory → Overview → Record use only when another Farmlync workflow did not already deduct the stock. Treatment, vaccination and feeding can create their own consumption; recording manual use as well would deduct twice.
| Control | What to enter or check |
|---|---|
| Category / Product * | Tracked product physically used. |
| Stock Batch | Optional exact batch; leave Auto (FEFO) to consume eligible batches with earliest expiry first. |
| Quantity * | Positive amount no greater than confirmed availability. Wait for availability to load and check the after-use balance. |
| Reason * | Spillage, damage, sample testing, routine non-animal use, unrecorded clinical use or Other. |
| Notes | Optional up to 500 characters in the portal; required when Reason is Other. |
Save once, then confirm the Consumption movement. If the use was actually a missing treatment, vaccination or feeding record, record the business event instead so health/feed evidence and inventory remain connected.
6. Move, transfer or dispose stock
Section titled “6. Move, transfer or dispose stock”Choose the action that matches what physically happened:
- Move location — same farm, different active location. Enter destination, positive available quantity, actual farm-local occurrence time, reason and optional notes. Current validation can accept a future time, so do not use it as a planned movement.
- Send farm — another farm in the same organisation. Follow the inter-farm steps below.
- Disposition — expired or quarantined Health stock disposed of or returned to supplier. Enter quantity, actual non-future date, method, recipient, document reference and notes/evidence as applicable.
- Adjust stock — measured correction, not a substitute for a known receipt, use, transfer or disposal. Select the real reason and explain regulated-stock corrections.
Current ordinary disposition supports Health stock only. An expired/quarantined Feed or Supplies action can be displayed but refused by the API; retain the physical item safely and follow the organisation’s approved inventory process until a category-appropriate Farmlync workflow is available.
7. Send a batch to another farm
Section titled “7. Send a batch to another farm”From Product Detail or Stock Batches on the source farm, choose Send farm, Send to farm or Transfer.
Before saving, verify that:
- both farms belong to the same organisation;
- you have access to both farms;
- the destination has an active product with the same catalogue code and compatible unit/category;
- the source batch is available and has enough unreserved quantity; and
- the physical handover is agreed.
| Control | What to enter or check |
|---|---|
| Destination farm * | Active accessible farm shown in the first 100 options, excluding the source. Search the displayed list. |
| Quantity * | Greater than zero and no more than displayed available quantity; the form prefills the full balance, so reduce it for a partial transfer. |
| Transfer date * | Actual farm-local date, default today. |
| Reason | Optional business reason, up to 200 characters. |
| Notes | Optional transport/handover context, up to 500 characters. |
Saving deducts the source batch, writes an outgoing Transfer movement and creates a received destination batch. The destination batch reuses the source batch number with -T, or receives a generated transfer number when none existed. Its incoming history appears as Receipt rather than a duplicate Transfer row.
After the physical handover, switch to the destination farm and verify product, new batch, quantity, location/status and incoming movement. Then return to the source and confirm the outgoing movement and remaining quantity.
8. Start a physical stock take
Section titled “8. Start a physical stock take”Open Inventory → Stock takes or Overview → Stock take. Farmlync permits one in-progress stock take per farm.
| Control | What to enter or check |
|---|---|
| Count date * | Actual farm-local date; defaults to today and cannot be future. |
| Category scope | All available stock, Health or Feed. Supplies-only is not currently offered; use All with a location where practical. |
| Location scope | Optional active location for a room/store count. |
| Session notes | Optional purpose, team or external reference, up to 500 characters. |
Start only when the chosen scope contains physically countable batches and the team can finish it. Farmlync freezes expected quantity and roster at session start, including available, quarantined and expired stock still physically present.
Pause receipts, use, transfers and adjustments in that scope until completion. The current workflow has no cancel/rebase path, and a concurrent movement on a varied batch can prevent completion indefinitely. Choose the scope carefully and coordinate the count before pressing Start.
9. Record each observation
Section titled “9. Record each observation”The live count shows 50 frozen rows per page. Identify the product, batch/lot, location, expected quantity and unit from the physical label and screen.
| Control | What to enter or check |
|---|---|
| Observed | Physical quantity, zero or greater, in the displayed unit. 0 completes the row as none found; blank means not counted. |
| Variance reason | Required when Observed differs: Unrecorded use, Unrecorded receipt, Damage or spillage, Loss or theft, Unit or pack conversion, Count correction or Other. |
| Variance note | Required when reason is Other. |
| Count note | Optional supporting context, maximum 200 characters. |
Save progress as the count proceeds. Farmlync checks both session and row versions; if another operator changed the session, use Reload latest counts, review their evidence and re-enter only what remains necessary.
For a large roster, choose Download complete roster, fill ObservedQuantity, exact VarianceReason and Notes where required, then Import counts. Do not alter row identity/version columns. The browser submits up to 500 observations per chunk; earlier chunks may remain saved if a later one fails. It can also skip malformed rows while importing valid rows, so compare the success count and progress with the rows you intended to upload.
10. Finish and verify the count
Section titled “10. Finish and verify the count”Choose:
- Complete stock take only when every frozen row has an observation; or
- Finish partial count when at least one row is counted and leaving the remaining rows permanently uncounted is intentional.
Blank rows are never treated as zero. Confirm the action. Farmlync applies observed-minus-expected differences to the affected batches and writes Adjustment movements with expected, observed, variance and reason evidence.
Review the result categories: Adjusted, No change and Uncounted. The displayed total absolute variance currently adds unlike units together, so rely on row-level product/unit evidence rather than that combined number.
Open View audit detail and verify scope, dates, status, counted/total and every frozen row. The current detail retains actor/time data in the service but does not display it. Use Stock Movements to inspect each applied adjustment. An in-progress session is resumed from the live Stock take action; its audit detail is read-only.
11. Investigate a balance difference
Section titled “11. Investigate a balance difference”Open Stock Movements, select the product and a farm-local date range beginning before the last known correct balance. Read movements in sequence:
- Receipt brought stock in;
- Consumption removed used stock;
- Adjustment records a count/correction;
- Expired is a zero-quantity availability marker;
- Return restored stock;
- Transfer moved stock between locations or farms;
- Disposal removed regulated health stock; and
- WriteOff removed an inventory loss.
On screen, + means stock came in and − means it went out. The current table omits the product unit, and its existing CSV uses the internal opposite sign convention, so confirm unit and direction against Product Detail and movement details before using an export as evidence.
Follow the source reference where available. Treatment is enriched with animal context; other sources can show a technical identifier rather than a farmer-facing link. Check receipt, count, treatment/vaccination/feed and transfer evidence before recording a new correction.
12. Replenish without changing stock early
Section titled “12. Replenish without changing stock early”Use Purchase List to review low/reorder products and build proposals. Use Purchase Orders to place and track an order. Neither action increases stock on hand.
When goods arrive, receive the actual delivered quantity as a batch or multi-line delivery, with its supplier, dates, location, identifiers and invoice cost. Then verify the purchase-order remaining quantity and movement history.
Completion checklist
Section titled “Completion checklist”- Existing library/local product was found before creating a duplicate.
- Category, base unit, clinical/feed settings and storage rules are correct.
- Receipt matches the actual supplier label, date, quantity, cost and location.
- Traceable Health stock has a batch or lot identifier and required expiry.
- Manual use was not already deducted by another Farmlync record.
- Quarantined or expired stock was not issued.
- Inter-farm transfer was verified at both source and destination.
- Stock-take scope was frozen only after pausing movements in that scope.
- Zero observations are explicit and blanks remain uncounted.
- Every variance has its real reason/evidence and resulting movement was checked.
- Purchase orders and physical receipts remain separate records.
For control-level references, see Inventory overview and receipt/use, Product setup, Stock Batches, Stock Movements, Stock takes, Farm-to-farm transfers, Deliveries and Purchasing.

