Stock takes
What this page helps you do
Section titled “What this page helps you do”A stock take compares the quantity physically on the farm with the quantity Farmlync expected at the start of the count. It preserves the original expectation, every observation, the reason for each difference and the adjustments applied at completion. Use it for a routine count, a medicine-room check, a location audit or an investigation into unexplained stock.
The workflow has three connected views:
- Stock-take history lists every session and starts or resumes the live count.
- The Stock take panel records observations for the one current in-progress session.
- Stock take · date is the permanent, read-only audit view of a frozen roster.
Stock-take history is an advanced Inventory destination available through Manage or Farmlync search.
Start or resume a count
Section titled “Start or resume a count”Open Stock-take history, then choose Start or resume stock take. If this farm already has an in-progress session, Farmlync opens it. A farm can have only one active stock take at a time.
If there is no active session, set the scope before choosing Start stock take:
| Control | Accepted value and effect |
|---|---|
| Count date * | Required farm-local date; defaults to today and cannot be in the future for this farm. It identifies when the physical count applies. |
| Category scope | All available stock, Health or Feed. Select only the stock area the count team will physically inspect. The current page does not offer a Supplies-only scope; use All available stock with a location scope where practical. |
| Location scope (optional) | One active stock location. Use it for a room, store or other bounded count area. |
| Session notes (optional) | Up to 500 characters describing the count, team, purpose or external reference. |
The selected scope must contain at least one physically countable batch. Farmlync includes available, quarantined and expired stock that is still physically present; blocked stock must not disappear from a physical count merely because it cannot be issued.
What “frozen roster” means
Section titled “What “frozen roster” means”Starting creates an exact snapshot of the matching batches and their expected quantities. This preserves the baseline while the team works through a large roster, but it does not make concurrent stock movement safe to ignore.
- A later receipt, consumption or transfer does not rewrite the expected quantity captured for this session. If the affected batch also has a physical variance, Farmlync refuses to finish because it cannot know whether the movement happened before or after that row was counted.
- A new batch created after the start is not silently added to the roster.
- Category and location scope cannot be changed after starting.
- Closing the panel does not discard the session; Start or resume stock take returns to it.
Pause receipts, use, transfer and adjustment for the selected scope until the count is finished. The current workflow has no cancel or rebase action. If a movement changes a batch that also has a variance, recounting the unchanged shelf quantity does not clear the finish conflict; the session may require administrator/support intervention. Choose the scope carefully before starting.
Record each observation
Section titled “Record each observation”The panel shows 50 frozen roster rows per page and a counted/total progress bar. Each row identifies product name and code, batch, location, expected quantity and unit.
| Control | Accepted value and effect |
|---|---|
| Observed | A number of zero or greater in the displayed unit. Enter what is physically present. 0 is a completed count; a blank value means not counted. The normal step control moves by 0.01; values must fit Farmlync’s stored quantity range (no more than 12 integer digits and 6 decimal places). |
| Variance reason * | Required when Observed differs from Expected. Values come from Farmlync’s current reason catalogue, including Unrecorded use, Unrecorded receipt, Damage or spillage, Loss or theft, Unit or pack conversion, Count correction and Other. |
| Variance note * | Required when the reason is Other. Describe the real cause. |
| Count note | Optional context when the selected reason is not Other or there is no difference. Maximum 200 characters. |
Farmlync does not apply one hidden tolerance across unlike units such as doses, litres, kilograms and bales. Any non-zero difference needs an explicit reason.
The live row shows the product, code, batch number, location, expected quantity and unit. A lot-only item currently says Batch not recorded in this panel even though its lot is preserved in the roster and CSV. The panel also does not identify whether a row was expired, quarantined or reserved when the roster was frozen. Match the physical label carefully and use the complete roster file when those distinctions matter.
Moving to another page saves changed rows before navigating. Save & close saves the current changes and leaves the session in progress.
Count with a CSV roster
Section titled “Count with a CSV roster”Choose Download complete roster to export every frozen row, including rows outside the current page. The file contains the identities and version values required to match each observation safely.
- Keep the exported row identity, RowToken and RowVersion unchanged.
- Fill ObservedQuantity for the rows counted.
- For any difference, set VarianceReason to one of the exact CSV values:
UnrecordedUse,UnrecordedReceipt,DamageOrSpillage,LossOrTheft,UnitOrPackConversion,CountCorrectionorOther. Other requires Notes. - Choose Import counts and select the edited CSV.
- Review the updated progress in Farmlync.
Farmlync imports large files in chunks of up to 500 observations. Earlier chunks may already be saved if a later chunk encounters a conflict. Rows with a blank or malformed token, version or observed quantity are currently skipped during browser parsing when at least one other row is valid, so compare the imported-count success message and progress with the number you intended to import. Reload the session, export a fresh roster and retry only after reviewing the saved progress. Importing counts does not complete the stock take.
Handle another user’s change
Section titled “Handle another user’s change”Farmlync checks both the session version and each changed row. If another person saved the same stock take, it shows a warning and does not apply your stale draft. Choose Reload latest counts, review the other person’s values, then re-enter any still-needed observations. Do not overwrite a colleague’s count without confirming the physical evidence.
Finish the session
Section titled “Finish the session”| Action | When available | Result |
|---|---|---|
| Complete stock take | Every roster row has an observed quantity | Reconciles the entire frozen roster. |
| Finish partial count | At least one row is counted | Applies counted rows and permanently records remaining rows as uncounted. It never treats a blank row as zero. |
Both actions show a confirmation. Completion applies each observed-minus-expected difference to its batch and writes an Adjustment into Stock movements. The movement notes retain the count date, expected amount, observed amount, variance and saved reason/evidence.
The result panel reports:
- Adjusted — counted rows whose balance changed;
- No change — counted rows equal to their frozen expectation; and
- Absolute variance — the numeric sum of difference magnitudes across adjusted rows. This total is meaningful only when all adjusted rows share one unit; Farmlync currently adds unlike units together without conversion.
Select View audit detail to open the permanent session. Completion cannot be used as a shortcut to hide an unrecorded treatment, feeding event, receipt or transfer; investigate and correct the actual source when that is what happened.
Read Stock-take history
Section titled “Read Stock-take history”The history is paged at 25 sessions per page.
| Column | Meaning |
|---|---|
| Count date | Farm-local date selected when the session started. Select it to open the audit detail. |
| Status | In progress, Completed or Partially completed. |
| Counted | Number of roster rows with an observation compared with the frozen total. |
| Scope | Saved category and/or location, or All available stock. |
| Finished | Farm-local completion date/time, or a dash for an active session. |
The mobile card also identifies uncounted rows. If there is no history, Start stock take creates the farm’s first frozen count.
Read the audit detail
Section titled “Read the audit detail”The detail page is intentionally read-only, including for an in-progress session. It shows status, counted/total, uncounted count, saved scope, started and finished times, and session notes. It does not currently show who started or finished the session, or who and when counted each row, even though those identities and timestamps are retained by the service. Its frozen roster is paged at 50 rows and shows:
- product name/code with a link to Product detail;
- batch or lot and location;
- expected and observed quantity;
- variance, displayed as + for more found or − for less found; and
- variance reason and count note.
Use Stock movements to inspect adjustments applied by a finished count. Use History to return to the session list. To continue an active count, return to Inventory and choose the live Stock take action; the audit detail itself never edits evidence.
Access and safe practice
Section titled “Access and safe practice”Viewing history requires inventory viewing permission. Starting, saving and finishing require inventory-management authority; the application currently describes this as Owners and Managers. The history page currently exposes its Start/Resume controls to inventory viewers as well, but the service remains authoritative and rejects an attempted change without management permission.
For a reliable count:
- Choose a scope the count team can finish.
- Separate available, quarantined and expired packages physically, but count all rostered stock.
- Enter zero only after checking the physical location.
- Explain every variance with the best available reason and evidence.
- Use a partial finish only when leaving the other rows explicitly uncounted is the intended outcome.
- Review the permanent detail and resulting ledger movements before closing the count task.

