Overview
When a lab sends back a Certificate of Analysis for a batch — fat and SNF, the safety pass/fails, an aflatoxin reading — that PDF usually ends up in a WhatsApp chat or a paper file. You can read it once, then never query it. Lab testing keeps the COA as a record you can search: the PDF itself, the lab's original numbers, the headline composition, and one clear verdict per batch — pass, fail, or conditional.
Opt-in Capability · off
Lab Testing is switched offLab Testing
You can read the guide. An owner or manager flips this Capability on in settings — it then lights up across the app.
This is an opt-in Capability, and it is not switched on for anyone yet. It ships dormant — the data shape is built, but there is no screen, no way to enable it, and no live workflow in the app today. It comes alive when the Dairy Pack (and later the Pharma Pack) compose it; until then there is nothing to turn on.
Where to find it
There is no menu item for this yet. The Capability is a dormant skeleton — not mounted in the web app, not in any sidebar, and absent from the feature catalog, so even an Owner cannot find or enable it today. When it is wired, it will surface on web only, against a batch.
Key concepts
- A Certificate of Analysis is the lab's signed report for one sample — the document everything here hangs off.
- The overall verdict is the headline gate:
pass,fail, orconditional. It is the one field a vertical Pack reads to decide whether a batch is good to ship. - The ULR number is the 18-character Unique Laboratory Report code (for example
TC1151624000009910F) that proves a NABL-accredited lab issued the report. Lab identity also carries the lab name and its NABL cert (likeTC-11516). - An analyte is one thing the lab measured — fat, SNF, aflatoxin M1, coliform count. Analytes fall into four groups: compositional, adulterant, microbiological, and residue/contaminant.
- A result status says whether one reading sat inside its FSSAI limit:
in_spec,out_of_spec, ornot_evaluated(captured, but not yet compared to a limit).
Common workflows
These describe the shape a COA maps onto when the Capability is live. They are not yet clickable screens.
The analyte catalog itself is national, not per-tenant: FSSAI milk limits are "All India," so the same analyte dictionary is shared across every business.
Role notes
Only one role touches this Capability.
Owner holds every non-Pack permission on the tenant, so the Owner is the one who would manage lab testing once it is enabled. But Capability permissions are not registered in the live catalog yet, so today even the Owner does not hold a lab-testing permission — there is nothing to grant and nothing to enable. No other role (Manager, Operator, Sales, Warehouse, Delivery, Accountant) has any binding here.
Tips & time-savers
The verdict is deliberately small — pass / fail / conditional — so a Pack can act on it without parsing the whole results table. One field decides the batch.
Gotchas
This Capability owns only the verdict. It does not, by itself, quarantine a failed batch — that fail-to-quarantine step lives in the vertical Pack (for example the Dairy Pack's qc_fail disposal reason). A fail here is the signal; the Pack does the holding.