How NORUM works
Build the product once, generate everything else. This is what that means in practice — what is calculated, what is validated, and what NORUM deliberately refuses to do.
One product record
Everything else is generated from it, which is why a change made once is a change made everywhere.
- A product carries its identity, net contents, packaging, claims and certifications.
- Ingredients and formulas are separate records, so the same ingredient can be shared across products without being retyped.
- Versions are immutable. A published version is never edited — a new one supersedes it, and the old one stays readable.
- Every change records who made it and when.
Nutrition, calculated not estimated
The panel is arithmetic over your formula, carried out to the FDA 2016 rounding rules.
- Rounding is data, not code: the bands live in a rule set in the database and are applied uniformly.
- All regulated arithmetic uses arbitrary-precision decimals. Floating point is not used anywhere a number reaches a label.
- A value that cannot be derived is refused rather than approximated. A blocked panel prints no rows.
- Daily Values and calorie factors come from the same reference tables the calculation reads.
Labels and barcodes
Vector output at the size and resolution the printer needs, validated before it can be exported.
- UPC, EAN, GS1-128, SSCC and QR. Check digits are verified, and an invalid GTIN produces no symbol at all.
- PDF is generated directly as vectors, so a barcode stays scannable at any scale.
- ZPL II for Zebra printers, plus SVG and PNG.
- A label that fails preflight can be previewed but not exported.
Specifications and quality documents
Finished product specifications, certificates of analysis and conformance, packing lists and bills of lading.
- A certificate is issuable only when every result on it has been evaluated against its specification.
- A result that is missing, pending or unparseable is never treated as a pass.
- Units are never silently converted between a specification and a result.
- Documents draw on the product record, so a specification and a label cannot disagree about the same product.
Where AI is used, and where it is not
AI reads documents. It never originates a regulated number and never approves anything.
- Extraction proposes values from a supplier document. Every field arrives marked for human review.
- Nothing an extraction produces is applied to a product automatically.
- A regulated figure on a label always comes from the calculation engines, never from a model.
- Each job reports its cost before it runs, and credits are reserved before the provider is called and settled against real usage afterwards.
How your data is kept apart
Tenant isolation is enforced by the database, not by application code.
- Every tenant-scoped table has PostgreSQL Row Level Security enabled and forced.
- Queries are written as though they could see other tenants’ rows, and none of them filter by tenant. A query filter that looks like a security control invites the next person to trust it.
- The browser holds a public key only. Anything needing a server secret goes through the API layer.
- The audit trail is append-only at the database level: it cannot be updated or deleted, by anyone.
What NORUM does not claim
NORUM is not an approval and does not certify anything. It performs regulatory calculations and produces documents from data you provide. Reviewing them, and the compliance of what you put on a package, remains yours. Nothing here should be read as a statement that a label has been cleared by any authority.