The cert nobody knew expired
A container leaves for Hamburg. Customs holds it because the EU MDR cert expired sixteen days ago. The cert was in a Dropbox folder nobody opened. Demurrage starts at €185/day.
PLATFORM · PRODUCTS
Most trade operators run three product catalogs without realizing it — one in accounting, one in a Sales spreadsheet, one in shipping. By Friday they've drifted. Nobody knows which cost is current, which cert is valid, or whether the SKU still pays its way.
Products in TradeOS is the row of record. Change a spec once. Sales sees the new price. Finance sees the new landed cost. Compliance sees the new cert. Nobody emails anybody.
WHAT BREAKS WITHOUT IT
A container leaves for Hamburg. Customs holds it because the EU MDR cert expired sixteen days ago. The cert was in a Dropbox folder nobody opened. Demurrage starts at €185/day.
Sales quotes off last quarter's buy costs. Freight has moved 22%. Eight orders ship before accounting closes the books and finds the margin was negative on four of them.
Your top SKU comes from one supplier. A lockdown hits Tuesday. Production stops Thursday. The backup costs 18% more and ships in twice the time — and the hospital order you promised is now six weeks late.
01 · Catalog
Every row is a five-second health check. A red "1" in the supplier column means single-source risk. Margin coloured by threshold. Stock rolled up across warehouses. Compliance state per destination market. Lifecycle badge so Sales doesn't quote something you've already decided to stop selling.
Sortable, filterable, full-text searchable. Click a badge → that section, pre-filtered to the problem.
62 products
| Product | SKU | Category | Variants | Suppliers | Margin | Stock | Compliance | State | |
|---|---|---|---|---|---|---|---|---|---|
| Protect-Pro Latex Surgical examination, powder-free | PP-LATEX | Medical gloves | 6 sizes | 4 | 28.4% | IN STOCK | COMPLIANT | ACTIVE | ⋯ |
| Chemo Safe Nitrile Chemo-rated, ASTM D6978 | CS-NIT | Medical gloves · Chemo | 5 sizes | 3 | 31.2% | IN STOCK | EXPIRING | ACTIVE | ⋯ |
| Standard Vinyl PF Powder-free, food-safe | SV-PF | Industrial gloves | 4 sizes | 2 | 17.5% | LOW | COMPLIANT | ACTIVE | ⋯ |
| Premium Latex 6mil Heavy-duty, textured palm | PL-6M | Industrial gloves | 3 sizes | 1 | 11.8% | OUT | EXPIRED | DRAFT | ⋯ |
| Protect-M Nitrile Medical examination, blue | PM-NIT | Medical gloves | 7 sizes | 5 | 24.1% | IN STOCK | COMPLIANT | ACTIVE | ⋯ |
| Sterile Surgical Sterile, single-pair pack | SS-PR | Medical gloves · Sterile | 5 sizes | 2 | 26.0% | IN STOCK | COMPLIANT | ACTIVE | ⋯ |
02 · Pricing & Economics
Three views of the same product row. Buy Side for sourcing — every supplier offer with cost, MOQ, lead time, validity. Sell Side for sales — per-client pricing with margin computed live from current buy costs. Economics for the CFO — landed cost, freight share, duty share, and what you actually keep.
The number Sales used in the quote is the number Finance sees in the close. Nothing to reconcile.
Buy / Sell / Economics across 62 products
across 14 manufacturers
in catalog
next 30 days
per unit, weighted
Chemo Safe Nitrile
Medical gloves · Chemo · 5 sizes
$0.048
per glove
Protect-Pro Latex
Surgical examination, powder-free · 6 sizes
$0.034
per glove
Premium Latex 6mil
Heavy-duty, textured palm · 3 sizes
$0.089
per glove
03 · Inventory
On-hand by warehouse, against reorder points that follow your velocity. Status badge driven by ratio, not gut feel.
Expand any row to receive stock, post adjustments, or change reorder points without a finance ticket. Every action writes a movement record. The audit trail per SKU per location is automatic.
62 products · 3 warehouses
| Product | On hand | Reorder point | Warehouses | Status | |
|---|---|---|---|---|---|
| Protect-Pro Latex PP-LATEX | 1,240,000 | 500K | EU-FR · ASIA-SG · US-NJ | IN STOCK | ▸ |
| Chemo Safe Nitrile CS-NIT | 820,000 | 300K | EU-FR · ASIA-SG | IN STOCK | ▾ |
| Standard Vinyl PF SV-PF | 142,000 | 200K | US-NJ | LOW | ▸ |
| Premium Latex 6mil PL-6M | 0 | 100K | — | OUT | ▸ |
| Protect-M Nitrile PM-NIT | 1,890,000 | 500K | EU-FR · ASIA-SG · US-NJ | IN STOCK | ▸ |
04 · Compliance
Four numbers at the top: fully compliant, expiring in 90 days, expired, missing. Every product shows a coloured dot per required cert — green valid, amber expiring, red expired, hollow missing.
When a destination market is added to an order, every line is checked automatically. If something's missing, it surfaces before the container leaves the yard, not after.
Across 62 products · 9 destination markets
products · all certs valid
within 90 days
action required
required by some markets
Certificate status by product
Chemo Safe Nitrile
Medical gloves · Chemo
Protect-Pro Latex
Surgical examination, powder-free
Premium Latex 6mil
Heavy-duty, textured palm
Protect-M Nitrile
Medical examination, blue
05 · How Products Connects
Orders pulls names, prices, weights. Shipments pulls weights and HS codes. Finance pulls landed costs. Compliance pulls market requirements. None of them cache their own copy — they call ProductService at read time.
In most trade businesses a spec change propagates through emails. Someone misses the email, goes on holiday, the fact diverges, twelve weeks later you ship the wrong thing. In TradeOS there's no email because there's no copy.
Order line items pull product spec, pricing, packaging, HS code via ProductService.getForOrderLine(). Past orders snapshot the values at order time so historical financials remain accurate even if HS codes are reclassified later.
Sources / Suppliers is the Buy Side of Pricing seen through the manufacturer lens. Per-manufacturer cost, capacity, lead time, MOQ, on-time performance. Single-source risk is flagged on both the product row and the manufacturer's Strategic KPI card.
Sell Side pricing matrix lives on the Clients side too. Per-client × per-product price records with volume tiers and validity periods. Sales can view sell prices but field-level RBAC hides manufacturer costs from the Sales role — margin information stays inside Finance.
Landed cost basis = product buy cost + freight share + duty + insurance. Finance pulls this from ProductService.getLandedCost()when computing invoice margin. Three-way matching at receipt verifies the buy cost on file matches what was actually invoiced.
Container-load planning needs weight and CBM per product unit. ProductService.getDimensions()feeds the packing optimizer in Shipments. Change a unit weight on a product → every draft shipment recomputes container utilization automatically.
The cert requirements table maps product category × destination market → required certificates. When an order's ship-to country is set, every product line is checked against that market's requirements. Missing or expired certs surface as warnings on the order before it ships, not after.
Frequently asked
Every product has zero, one, or many variants. A product like a glove SKU has six size variants (XS / S / M / L / XL / XXL); a product like a packed pallet of one specific size has no variants and the product itself is the tradeable unit. Pricing, inventory, and compliance can each be set at the product level (applies to all variants) or at the variant level (specific size/color only). Orders, shipments, and invoices reference both the product and the specific variant when one exists.
Bring a CSV export. We'll show you the single-source risks, the expiring certs, and the SKUs with margin drift you didn't know about — using your real data, in twenty minutes.