Record milk, clear the tank lot and reconcile payment
What this workflow achieves
Section titled “What this workflow achieves”This workflow follows milk through four separate records:
| Record | Question answered |
|---|---|
| Animal milk recording | How much did this animal produce in this milking? |
| Session collection | How much did this completed session physically add to the tank? |
| Buyer delivery | How much verified milk left the farm for this buyer? |
| Payment/reconciliation | How does the buyer’s recorded credit compare with Farmlync’s expected payout? |
Never substitute one for another. Saving an animal yield does not create a tank lot; saving a collection does not create a delivery; recording expected payout does not prove a bank credit.
1. Check health restrictions before milking
Section titled “1. Check health restrictions before milking”Open Health withdrawal clearance and review every animal under milk restriction. Check exact farm-local end time and any course awaiting final-administration confirmation. Physically divert restricted milk under the farm’s procedure.
Farmlync still records the animal’s production while restricted and allocates affected quantity as held/discarded. Recording the yield does not release it or move milk physically.
2. Record one animal’s milking
Section titled “2. Record one animal’s milking”Open Milk → Record → Record Milk.
| Field | What to enter |
|---|---|
| Animal * | Search and select the actual milking animal. |
| Recording Date and Time * | Actual farm-local milking instant. Future recording days are rejected. |
| Session * | AM, PM, Night, Session 4 or Session 5 within the farm’s configured sessions. |
| Yield (kg/L) * | Measured or estimated amount in the displayed unit. The form accepts 0.1–99.9 input and the converted amount must be 0.1–99.9 kg. Do not convert twice. |
| Yield Source | Measured (meter) or Estimated (manual entry). Manually typing a real meter result can still be Measured. |
| Milked By | Optional actual operator, up to 100 characters. |
| Notes | Optional, up to 1,000 characters. |
| Save | Saves and closes. |
| Save & Next | Saves, retains date/session/operator and clears animal/measurements for the next cow. |
The suggested session uses farm-local time. Previous same-session yield and quality can prefill. Filled from last recording is a convenience, not a measurement; replace or clear everything not observed today.
Optional quality and sensor fields
Section titled “Optional quality and sensor fields”| Field | Accepted value |
|---|---|
| Fat | 1.0–9.0% |
| Protein | 1.0–6.0% |
| Lactose | 2.0–6.0% |
| SNF | 5.0–12.0% |
| SCC | Positive whole cells/mL, such as 200000 |
| Temperature | 0–50 °C |
| Conductivity | 2.0–15.0 mS/cm |
| Duration | 1–3,600 seconds |
Leave unknown values blank. Collapsing a section does not clear populated values.
Difference, average, yield-drop and SCC cues help review the entry; they are not diagnoses and use different windows from saved alert rules. A health-check shortcut opens a separate record. Saving that health record does not save the unsaved milk form.
After Save, read whether milk was saleable or held from sale (drug withdrawal). That result is an allocation outcome, not a buyer delivery or laboratory clearance.
3. Record a milking group
Section titled “3. Record a milking group”Use Milk → Record → Batch Record when several cows share one farm-local date, session and operator.
| Control | How to use it |
|---|---|
| Date / Session | One completed day/session for all submitted rows. |
| Milked By | Optional, effective saved limit 100 characters. |
| Add Animal | Add an eligible animal not already present. |
| Autofill empty from last | Fills blank yields only. Review every copied value. |
| Yield per row | Positive measured value in displayed unit; converted maximum 99.9 kg. Blank/zero rows are not submitted. |
| Add Quality Data | Optional Fat 1–9%, Protein 1–6% and positive SCC. These shared values apply to every submitted cow. |
| Save All (N) | Sends the N positive rows, up to 500 animals. |
Batch validation currently accepts only sessions 1–3 even if Session 4/5 appears. Use the single form for those configured sessions.
Blank-row skip reasons are only local form explanations and are not durable animal events or milk records. Do not leave a milked withdrawn cow blank—record its production and let withdrawal allocation hold it.
Read the result categories: recorded, already recorded, failed and withdrawal-held. A partial success leaves accepted rows saved. Retry only failures after checking history. Optional Health/Treat shortcuts open separate forms.
4. Record the session collection
Section titled “4. Record the session collection”Open Milk → Record → Record Session Collection after the physical session.
| Field | What to enter |
|---|---|
| Date * | Completed farm-local session date. Current UI/API can accept future, but do not record uncollected stock. |
| Session * | Actual AM, PM, Night, Session 4 or Session 5. |
| Total Yield (kg/L) * | Amount this session added to the tank, at least 0.1. Do not enter the tank’s accumulated balance. |
| Cow Count | Optional positive number milked. |
| Collection Point | Optional tank/location text, up to 100 characters. |
| Quality Parameters | Optional collection-level Fat 1–9, Protein 1–6, Lactose 2–6, SNF 5–12, positive SCC and Temperature 0–50. |
| Notes | Optional context, up to 2,000 characters on this create form. |
Only one collection can occupy a farm/date/session. Changing date or session reloads the animal-production summary; recheck any value that remained in the form.
The comparison uses saleable animal allocations versus entered collection. Its green/amber/red ±5%/15% bands are entry-review hints. Server verification uses the larger of 2 kg or 2% of expected saleable milk plus allocation/withdrawal evidence. A visually green 4% difference can still fail verification.
5. Account for each cow’s milk destination
Section titled “5. Account for each cow’s milk destination”In Milk disposition evidence, select the statement supported by the physical event:
| Action | Assertion saved immediately |
|---|---|
| Diverted | All of this animal’s session milk stayed out of the saleable tank. |
| Not milked | The animal was not milked in this session. |
| To tank | At least some of the milk entered the saleable tank. |
These buttons save immediately; Cancel on the collection form does not undo them. Selecting another claim later can create contradictory evidence rather than silently replacing the first.
For a conflict, an authorised Owner/Manager uses Resolve evidence…:
- correct any wrong underlying milk record;
- choose the corrected disposition;
- enter Evidence and reason for correction up to 500 characters; and
- save the audited correction.
This repairs evidence but does not automatically release a held lot.
6. Verify or quarantine the lot
Section titled “6. Verify or quarantine the lot”Inspect the collection badge:
| Status | Meaning |
|---|---|
| Not checked | Verification has not run. |
| Verified | Quantity/allocation/safety checks passed at that time. |
| Needs review | Evidence, allocation or reconciliation requires work. |
| Quarantined | Do not deliver until authorised re-verification succeeds. |
| Disposed | Terminal discarded lot; ordinary verification cannot restore it. |
Choose Verify this collection / Re-check this collection. The server evaluates contributing milk, missing disposition evidence, withdrawals, allocations and quantity tolerance. Late treatment or milk corrections can return a previously acceptable lot and linked delivery to review.
For an eligible held lot, Re-verify and release requires:
- Reason for release: 10–500 characters; and
- Supporting evidence: 5–1,000 characters.
It still refuses release while withdrawal exposure, incomplete allocation or quantity failure remains. Written explanation does not override safety checks.
Use Record Opening Balance only for attested milk already in the tank when detailed tracking begins. Enter effective date, positive quantity (raw upper guard 50,000), reason 10–500 and evidence 5–1,000. It creates one audited verified opening lot and cannot be used repeatedly as a daily shortcut.
7. Correct a collection or add official milk tests
Section titled “7. Correct a collection or add official milk tests”An ordinary collection Edit changes amount, quality, cow count and notes while preserving date/session. Verified, quarantined, disposed or delivery-reserved lots are not editable through this path. Recheck verification after correction.
Use Record milk test results for official animal-day samples, not tank quality. Choose a non-future test date and enter Sample ref (100 chars), Fat 1–9, Protein 1–6, Lactose 2–6, SNF 5–12, positive SCC and Urea 0–200 for cows with a matching milk-recorded day. Manual rows save in sequential chunks up to 500; inspect per-row outcomes because earlier chunks remain committed if a later chunk fails.
CSV milk tests require animal tag plus date, with optional measurement columns. Preview matches and errors before saving. These results can overlay animal composition but do not change yield or collection-level lot safety.
8. Configure the buyer arrangement
Section titled “8. Configure the buyer arrangement”Before delivery, ensure these organisation/farm records exist:
- Buyer — adopt from catalogue or create a custom buyer with payment cycle and contact details. Current create/edit authority requires Tenant Admin or Platform Admin.
- Payout formula — versioned currency, basis, base rate and quality coefficients effective from the buyer’s schedule. Once a delivery references it, create a new version rather than rewriting history.
- Farm route — buyer, covered AM/PM scope, formula, effective date, primary choice, optional per-litre premium and member number.
Close an occupied route before replacing its session scope. A future-dated route is currently treated as active for occupancy/primary selection, so create it only when the agreement should operate. Verify buyer default formula and route after every terms change.
9. Record the actual buyer delivery
Section titled “9. Record the actual buyer delivery”Open Milk → Deliveries → Record delivery.
| Field | What to enter |
|---|---|
| Date * | Actual collection date. Current single flow accepts future, so verify manually. |
| Session * | Morning, Evening or genuine Extra collection. |
| Buyer route | Matching route covering date/session; choose when several match. |
| Collection readiness | Must show sufficient verified clean tank milk. Animal yields alone are insufficient. |
| Quantity * | Positive slip quantity in displayed unit; converted load capped at 5,000 litres and clean capacity. |
| Fat / SNF / Protein / CLR | Actual buyer receipt values. Limits: Fat 0–10, SNF 0–15, Protein 0–8, CLR 0–40. Formula-required fields cannot be omitted. |
| Receipt ref | Optional, up to 100 characters. |
| Notes | Optional evidence/context. |
Check the payout preview, then save. Verify buyer, quantity, lot lineage, compliance and estimated payout. A proof photo can be JPEG/PNG/WebP/HEIC/HEIF up to 5 MB.
Edit can correct quantity/quality/reference/notes but not date/session/route. Void is for an erroneous Pending delivery and releases its lot reservation; it is not a financial reversal. A paid/reconciled collection needs financial correction.
10. Record payment and reconcile
Section titled “10. Record payment and reconcile”Choose Mark paid and enter the actual non-negative bank credit plus actual non-future Paid on date.
Delivery status compares paid to expected:
- Paid: at least 99%;
- Partial: at least 95% but below 99%;
- Disputed: below 95%;
- Pending: no credit recorded.
These are comparisons, not a bank feed.
Open Milk → Reconciliation. Choose From/To within a maximum 366-day request and select:
- Auto for each buyer’s stored payment-cycle length;
- 10-day, 15-day or Monthly to regroup the same deliveries for review.
Overrides do not edit buyer terms or deliveries. Expand each buyer cycle and compare deliveries, expected amount and recorded credit. Cycle badges use their own thresholds: Settled within 99.5–100.5%, overpayment above 100.5%, small short 95–99%, below 95%, Unpaid or Open current cycle.
If currencies differ, reconcile separately; current combined summaries do not convert values. Investigate source animal milk, dispositions, tank lots, delivery quantity/quality, route/formula and bank credit before editing anything.
Use Share summary or the printable Payout statement only after the source matches the buyer slip and bank evidence. Reopen the statement after corrections because it is generated from current records, not a signed buyer invoice.
Completion checklist
Section titled “Completion checklist”- Restricted animals were identified and milk physically diverted as required.
- Every animal yield uses the actual date, session, unit and measurement source.
- Batch outcomes were reviewed per animal.
- Session collection records only the amount added to the tank.
- Missing/withdrawn milk has truthful disposition evidence.
- Lot is currently Verified before delivery.
- Buyer, payout formula and route match the applicable agreement version.
- Delivery quantity, quality and receipt evidence match the buyer slip.
- Actual bank credit and date are recorded.
- Reconciliation and payout statement match source records and currency.
For control-level references, see Single milk recording, Batch milk, Tank safety, Deliveries and Reconciliation.

