Field ReferenceProducts
Batch-firstTTB-awareRev. 2026.06
Manual / Core / Products

Products

A Product is the SKU you sell. The Catalog page lists every product grouped by Line, surfaces the ones that need work, and is the starting point for everything downstream — formulas, BOMs, manufacturing orders, sales orders, MRP.


What’s a Product?

A Product has two halves:

  • Identity — who it’s for and what it is. Client (the brand owner), Brand (the brand under that client), Compliance regime (TTB-regulated alcohol vs. non-alc), Container type (bottle, can, keg, pouch).
  • Spec — how it’s made and packed. The Spec’s required chain is three layers: A · Formula (the liquid), B · Vessel BOM (the primary container — bottle, can, keg, pouch), C · Case BOM (how vessels are grouped into a sellable case). An optional D · Pallet BOM adds a fourth tier — pallet-level packaging and cases-per-pallet — when you ship by the pallet.

A product without all three Spec layers in a Ready state is not plannable: MRP won’t generate proposals against it and you can’t open a manufacturing order from it. The Catalog page tells you exactly which layer is missing.

Vocabulary check. Formula is the liquid. Vessel BOM is the primary container, such as a bottle, can, keg, or pouch. Case BOM is how filled vessels become a sellable case.


Product catalog

The Product catalog groups every SKU by Brand — every SKU belongs to one Brand (or sits standalone under its Client). The page makes one assumption explicit: most products are ready. Ready is the default state, so there is no “Ready” label on normal rows. Only the rows that need work are flagged.

Tree by Brand

The page renders one card per Brand, in alphabetical order. Each card has:

  • A header row with the Brand name, the owning client, and a count of products in the brand.
  • One or more product rows below the header. Each row shows the SKU, pack description (“16 oz · 4-pack”), the current published Case BOM version (“v2”, or ”—” if empty), and a last-edit / last-shipped timestamp.

Standalone products (no Brand) sit in an “Unfiled” group at the bottom.

Attention dots

A small dot in the leftmost column flags a product whose Spec isn’t ready. The dot rolls up:

  • Row dot — appears when any of the three Spec layers is Empty or Draft.
  • Group dot — the Brand header carries a dot when any product underneath has a row dot.

Ready rows show no dot. Absence of a dot is the affirmative signal.

Attention banner

When the catalog has any incomplete products, a banner appears above the tree:

3 products have incomplete specs and can’t be planned by MRP yet.

The banner has a filter on the right: Show incomplete specs. When active, the tree collapses to incomplete rows and Brands with no incomplete products hide entirely. The filter becomes Showing incomplete specs · clear so you always have a one-click way back.

Sort

Default sort is “incomplete first, then alphabetical by Line then by SKU.” A small mono-typed note under the page header reminds you of the order. You can override the sort if you need to look at the catalog purely alphabetically.

Facets

The right rail offers three facet groups:

  • Client — every client with at least one product, with a count beside each.
  • Container — Bottle (glass), Can (aluminum), Keg, Pouch. Driven from each product’s current Vessel BOM container type.
  • Compliance — TTB · alcohol vs. None · non-alcoholic.

Facets combine together. If you choose Container = Can and Compliance = TTB, the catalog shows only products that match both. Selecting facets does not change the sort.

Recent changes

Below the facet rail, the Recent changes card lists the last 7 days of spec activity across the catalog: SKU + action + author + age. Entry types include:

  • A new draft was authored on a layer (“Vessel BOM v3 drafted”)
  • A version was promoted (“Promoted Case BOM v2 → v3”)
  • A new product was created
  • A product was reassigned to a different Line

The feed is capped at 50 entries and follows the current catalog filter. If you have Show incomplete specs active, the feed only shows changes on incomplete products. Click an entry to open the relevant product tab.


Spec readiness

Every product has three independent Spec layers. Each layer follows the same lifecycle:

StateMeaning
EmptyThe layer has not been started.
DraftThe layer is being edited and is not ready for planning.
ReadyThe layer is approved for planning and batch orders.

Rules:

  • A Product is plannable by MRP and shippable from a manufacturing order only when all three layers are Ready.
  • Ready versions are locked. Editing a ready layer creates a new draft only when you save a change; opening a layer to read it does not create a new version.
  • MRP and new manufacturing orders use the latest Ready version of each layer. Drafts are never used for planning.
  • Promotion is an explicit action (“Promote v2 → v3”) — never implicit from save.

The lifecycle is per-layer. A product can have a ready Formula, a ready Vessel BOM, and a draft Case BOM. That product is incomplete and the row will carry an attention dot, but the ready Formula and ready Vessel BOM are still valid for any other product that uses them.


Creating a product

The new-product wizard (Products → New Product) is the only way to create a product. It walks five steps:

#StepPurpose
1IdentityPick the Client, Line (or ”+ New line” inline), display name, container type, and compliance regime. SKU is auto-suggested from line + pack.
2Spec — A · FormulaAuthor the liquid: ingredients, baseline qty, loss model, process steps. Saves as a v1 draft of the Formula.
3Spec — B · Vessel BOMAuthor the primary container: vessel type (bottle/can/keg/pouch), fill volume, vessel components (the can or bottle, lid, label, neckband). Saves as a v1 draft of the Vessel BOM.
4Spec — C · Case BOMAuthor the case: bottles per case, case components (tray, ring, tape). Saves as a v1 draft of the Case BOM.
5ReviewConfirm everything reads correctly. Submit creates the product and lands you on the new product’s detail page with the Formula tab active.

MiniMap rail

The wizard’s right rail carries a permanent system map — a small diagram of Product → Spec ⇒ A · Formula → B · Vessel BOM → C · Case BOM → (Cased product → Batch). The currently-active layer is bold and outlined; future layers are dimmed with “comes next” labels.

Drafts persist on refresh

The wizard auto-saves a draft to local storage on every step change. If you refresh the page mid-wizard, you land back on the step you left with all entered fields intact. The draft clears on submit.


Product detail

Land here after creating a product, or by clicking any row on the catalog. The detail page is a tab strip + two-column body.

Tab strip

TabWhat it showsCarries an attention dot when…
OverviewLayer cards + Where it’s running + Identity card— never
Spec — A · FormulaThe Formula version history — open to edit in-placethe Formula is Empty or Draft
Spec — B · Vessel BOMThe Vessel BOM version historythe Vessel BOM is Empty or Draft
Spec — C · Case BOMThe Case BOM version historythe Case BOM is Empty or Draft
HistoryAudit log scoped to this product— never
ComplianceTTB filings + COLAs scoped to this product— never

The dot rule is strict: only the Spec layer tabs that are incomplete carry a dot. Overview, History, and Compliance never do — the sub-tabs already say where to look.

Overview tab

The Overview body is three layer cards stacked vertically — one for Formula, one for Vessel BOM, one for Case BOM. Each card shows:

  • The layer letter (A, B, or C) as a small label on the left.
  • The layer title, current version, and ready/needs-work status.
  • A one-line summary of contents (e.g. “5 ingredients · 12 process steps” for the Formula card).
  • A timestamp (“edited 2 weeks ago” or “missing — finish to ship”).
  • An Open → button that takes you to the Spec tab for that layer.

Below the layer cards, a Where it’s running card surfaces three production stats:

  • Open manufacturing orders for this product
  • Last-30-day batches (with running yield average)
  • On open sales orders (with cases committed)

The right rail carries an Identity card (Line / Client / Compliance / Container / Selling unit) and, when any layer isn’t ready, a What’s blocking card:

Case BOM is a draft.

MRP plans from v2 until you promote v3. New manufacturing orders default to v2.

[Open Case BOM →]

The blocking rail is decisive — it tells you exactly which layer needs work and what MRP will do until you fix it.

Spec tabs

Clicking a Spec tab opens the editor for that layer’s latest version. The tab itself shows the version history and a button to open the layer editor. Editing happens in the existing layer screens — see Formula, Vessel BOM, and Case BOM — but the version history you’re editing is always scoped to this Product.

History tab

A reverse-chronological audit log scoped to this Product. Entry types include version drafts, promotions, identity changes (line reassignments, name edits), and Spec-layer state changes. The log is capped at the most recent 100 entries.

Compliance tab

Surfaces TTB-related artifacts for this product. Today the tab lists associated COLAs (Certificate of Label Approval); production records and monthly reports are joined indirectly through the production batches that pin this product’s Case BOM.

Top action row

The detail page’s action row carries three buttons:

  • Duplicate — see “Duplicate” below.
  • Promote v2 → v3 — promotes the latest draft when one is ready. Disabled when there is no draft to promote.
  • + New manufacturing order — opens the new-manufacturing-order wizard with this product pre-selected.

Duplicate

Duplicate creates a new Product whose Spec is a fresh draft of every layer copied from the source. It’s how you spin a new flavor or a new pack of an existing SKU without rebuilding the Spec from zero.

What duplicate copies:

  • Identity — Client, Line, Container type, Compliance regime. The new product gets a fresh display name (you’ll be prompted) and a new auto-generated SKU.
  • Formula — the full ingredient list, baseline qty, loss model, and process steps from the source’s current published Formula. Copied as a new v1 draft of a new Formula.
  • Vessel BOM — the full vessel components and fill volume from the source’s current published Vessel BOM. Copied as a new v1 draft of a new Vessel BOM.
  • Case BOM — the full case components and bottles-per-case from the source’s current published Case BOM. Copied as a new v1 draft of a new Case BOM.

What duplicate doesn’t copy:

  • Audit history. The new product has no history — it starts fresh.
  • Production-batch links. The new product has no batches.
  • Compliance filings (COLAs, production records). New product, new filings.

The duplicated product lands in a draft state on every layer — you’ll see all three attention dots on the detail page until you promote each layer.


Cross-references

  • Formula — the per-layer editor for Spec A.
  • Vessel BOM — the per-layer editor for Spec B.
  • Case BOM — the per-layer editor for Spec C.
  • Components — the catalog for ingredients, vessel parts, and case parts that BOMs reference.
  • Companies — clients (who own products) and vendors (who supply raw materials).
  • Batches — the manufacturing orders and physical batches that pin a Product’s Spec versions.
  • Planning — MRP, demand, and the schedule view that consumes the Catalog as input.

Field reference

The fields below appear on the product detail page and the new-product wizard. Tooltip copy in the UI mirrors this section — keep them in sync.

Display name

Free-text, customer-facing. The name shown on labels, COLAs, sales orders, and packing slips. Distinct from the internal SKU.

SKU code

Auto-generated from the Brand + pack at create time. Format: CLIENT-LINE-FG-NNNN (brand-anchored) or CLIENT-FG-NNNN (standalone). Stable for the life of the product. Cannot be edited.

Client

The client that owns this SKU. Required. Drives which Brands are pickable in the wizard’s Identity step and which sales-order surfaces the product appears on.

Brand

The brand this product belongs to. Optional — leave empty to create a standalone product. A standalone product can be promoted to a Brand later from the products list.

Container type

Bottle (glass), Can (aluminum), Keg, or Pouch. Drives the Vessel BOM’s vessel-component picker (a bottle vessel won’t list neckbands intended for cans). Set on the Product itself for the catalog Container facet.

Compliance regime

TTB · alcohol = federally regulated; requires a TTB Formula # and a production record on every batch. None · non-alcoholic = not TTB-regulated.

Batch size

The liquid batch size the Formula scales to, such as 100 gal or 1,000 L. The unit selector only lists volume units because this field is about liquid volume; weight and count units belong on ingredient or packaging lines instead.

Selling unit

Almost always case for finished goods. Drives planning math (MRP plans cases; manufacturing orders target cases).

Target ABV % (TTB products only)

The label-claim alcohol-by-volume. Used as the spec target for QC and the value referenced on production records.

TTB Formula # (TTB products only)

The TTB-issued formula number this product was approved against. Required on every production record for this product.

Status

Active products show in pickers (sales orders, manufacturing orders, formulas, COLAs, lot receives). Archived products are hidden from creation flows but kept for historical lookups. Never delete a product that’s been used in a batch — the audit trail and production records reference it.