---
title: Item Group Master
description: A product family — the menu, the variant axis, and why configuration cannot live on the item code.
sidebar:
  label: Item groups
  order: 11
---

An item group is a **product family** as Flowtech sells it: electromagnetic
flowmeter, metal tube rotameter, magnetic level indicator, smart pressure
transmitter. It is not a warehouse bin and it is not one sellable size.

## What the client sells

A family has a **fixed menu of specification options** (flowtube material,
process connection, output, lining, …). A **released size** (DN50, a pressure
range, a face-to-face length) is a sellable finished good. A quotation picks
one released size and **configures it against the family's menu**.

That is why configuration cannot live on the item code. An electromagnetic
flowmeter has on the order of eighteen select fields; the combination space is
hundreds of millions. So the catalogue forks on **exactly one attribute** — the
family's *variant axis* — and everything else is chosen per quotation line.

```mermaid
flowchart LR
  subgraph family ["Item group — Electromagnetic flowmeter"]
    axis["Variant axis: line size"]
    menu["Option menus: lining, MOC, connection, output, …"]
  end
  axis --> codes["Item codes<br/>VTFM-0014 = DN50<br/>VTFM-0015 = DN80"]
  menu --> line["Quotation line<br/>picks one code + fills the menu"]
  line --> model["Model number / order code<br/>FMIPL-VTFM-FT2-PC1-…"]
```

## Two prefixes, two jobs

| Field | Example | Job |
| --- | --- | --- |
| **Prefix** | `VTFM` | Builds the **item code** (`VTFM-0014`). Frozen once any code exists |
| **Model prefix** | `FMIPL-VTFM` | Starts the **model number** when options are chosen |

Mixing these two is the usual meeting failure. The item code names *which
released size you are selling*. The model number names *how this line is
built*.

## Variant axis

The axis is **usually line size**, but not always:

| Family kind | Typical variant | What a released code is |
| --- | --- | --- |
| Most flowmeters | Line size (DN / NB) | One bore |
| Smart pressure transmitter | Pressure range | One range |
| Metal tube rotameter | Face-to-face length | One length |
| Displacer switch | Number of set points | One switch arrangement |

Only DN, NB and THREAD measure a **bore**. Nominal-bore comparison applies to
size, and nothing else. A pressure-range code is not a pipe size.

The axis names a row in this group's decodification master (`variantMasterKey`).
That is how a DN50 code knows which menu position is already decided.

## Companions

Some families are sold **with** another: an orifice assembly with a DPT, a
bypass rotameter with a gauge. The group can point at a companion group, and
can require the sizes to match. A companion-only group is never quoted on its
own.

## One catalogue, eight offices

Item groups are **not office-scoped**. Mumbai and Bengaluru sell the same
families. Permissions still gate who can view or edit the master.

## What the business does here

- Name the family, its prefixes, and which attribute the codes fork on.
- Point the group at its **current** decodification master.
- Record ERP stores-group mapping for handoff.
- Retire a family (`active`) rather than deleting it — released codes and old
  quotations still name it.

Related: [Item Master](/business/features/item-master) ·
[Decodification](/business/features/decodification) ·
[Glossary](/business/glossary) ·
[Setting up catalogue data](/business/workflows/setting-up-catalogue-data).
