Complete compliance documentation for NOP auditors
This document provides technical details about how Organiko.ai ensures compliance with USDA National Organic Program (NOP) requirements for organic product traceability and record keeping.
This is a reference for auditors, certification bodies, and compliance officers who need to verify that businesses using Organiko.ai meet NOP ยง 205.201 and ยง 205.300 standards.
Organiko.ai fulfills all requirements under ยง 205.201:
Organiko.ai tracks supplier certification status:
Organiko.ai uses a relational database with the following key tables:
inbound_documents (Purchase Orders)
Synced from QuickBooks, ERPNext, Xero, etc. Contains supplier info, PO lines, quantities, prices
outbound_documents (Sales Orders)
Synced from Shopify, WooCommerce, Amazon, etc. Contains customer info, SO lines, quantities
organic_lots
Created when user certifies PO. Contains lot_number, expiry_date, supplier_id, source PO
inventory_adjustments (Audit Trail)
Immutable table - every organic transaction (receipt, sale, adjustment) recorded here
suppliers
Contains organic_cert_number, cert_expiry_date, uploaded certificate files
Auditors can trace a specific lot forward to see all sales:
SELECT so.external_order_number AS sales_order, so.customer_name, ia.quantity_change AS quantity_sold, so.order_date FROM organic_lots lot JOIN inventory_adjustments ia ON ia.lot_id = lot.id JOIN outbound_documents so ON so.id = ia.source_document_id WHERE lot.lot_number = 'LOT-2025-001' AND ia.adjustment_type = 'sale' ORDER BY so.order_date;
Auditors can trace a specific sales order back to the supplier:
SELECT so.external_order_number AS sales_order, so.customer_name, lot.lot_number, lot.expiry_date, supplier.name AS supplier_name, supplier.organic_cert_number, po.external_document_number AS purchase_order FROM outbound_documents so JOIN inventory_adjustments ia ON ia.source_document_id = so.id JOIN organic_lots lot ON lot.id = ia.lot_id JOIN suppliers supplier ON supplier.id = lot.supplier_id JOIN inbound_documents po ON po.id = lot.source_document_id WHERE so.id = 'sales_order_uuid';
Result: Complete chain showing SO โ Lot โ PO โ Supplier with certification number
Beginning + Purchases - Sales - Adjustments = Ending
Acceptable Variance: USDA allows ยฑ5% variance due to spillage, evaporation, and measurement tolerances
When allocating sales orders, Organiko.ai automatically sorts available lots by expiration date (ascending):
SELECT id, lot_number, expiry_date, current_quantity FROM organic_lots WHERE item_sku = 'ORG-ALM-001' AND current_quantity > 0 AND expiry_date > CURRENT_DATE ORDER BY expiry_date ASC;
The lot that expires soonest is allocated first, ensuring older inventory is sold before newer inventory.
Compliance Note: FEFO is not explicitly required by USDA NOP but is considered best practice for inventory management and product freshness
The inventory_adjustments table is append-only:
Result: Complete, tamper-proof audit trail showing every organic transaction from receipt to sale
Organiko.ai retains all records for 7 years, exceeding USDA's 5-year requirement (3 years accessible + 2 years additional).
Use this checklist to verify compliance during an audit:
Generate Full Audit Package for review period
Verify all documents are included and properly dated
Review Mass Balance Report
Verify variance is within ยฑ5% for all SKUs
Test 5 random tracebacks (sales order โ supplier)
Verify complete chain of custody for each
Review Supplier Certification Report
Verify all suppliers have current organic certificates
Verify audit trail integrity
Check timestamps, user attribution, and no gaps in transaction log
Review FEFO allocation
Verify sales orders are allocated from oldest lots first
Check data retention compliance
Verify records are accessible for 7 years
If you are conducting an audit of a business using Organiko.ai and need:
Please contact our compliance team:
Email: compliance@organiko.ai
Phone: 1-800-ORGANIC (24/7 audit support)
Response Time: Within 4 hours during business hours