At a Glance
Module purpose: Catalogue of named records (units, vendors, currencies, locations, tax profiles, reason codes) that transactional documents reference via FK + denormalised snapshot · Audience: Product Admin, Configurator, Sysadmin · Key entities/tables:tb_unit,tb_vendor,tb_currency+tb_exchange_rate,tb_tax_profile,tb_location· Sub-pages: 14

Master data is the set of named records that transactional documents reference but do not own. Units, departments, locations, delivery points, business units, currencies, vendors, tax profiles, credit terms, extra-cost types, adjustment types, credit-note reasons, and pricelist templates all live here. Each one is small on its own, and each one is referenced by many transactional rows.
Two principles drive how this umbrella is organised. First, snapshot semantics: documents store an FK to a master record and a denormalised display copy (name, rate, code) so that historical documents render correctly even if the master record is later renamed or inactivated. Second, soft-delete with active flag: every entity uses is_active + deleted_at to retire records without breaking referential integrity, so the standard answer to "delete X" is "inactivate X".
The umbrella spans both Prisma schemas. Most entities live in the tenant schema (the per-property data store), but business-unit and currency-iso are platform-level (shared across tenants), and currency is mixed — its ISO reference is platform, its enabled-currencies list and dated rates are tenant.
Product Admin and Configurator manage these. Sysadmin oversees integration and RBAC, and is the sole owner of business-unit and platform-level currency-iso configuration.
| Entity | Purpose | Managed by |
|---|---|---|
| unit | Units of measure plus per-product conversions | Product Admin |
| department | Organisational departments and user-to-department mappings | Product Admin / Sysadmin |
| location | Inventory, direct, and consignment locations with count behaviour | Product Admin |
| delivery-point | Physical drop-off points for vendor deliveries | Product Admin |
| business-unit | The operating unit — owns calculation method and default currency | Sysadmin |
| currency | Enabled currencies, ISO reference, and dated exchange-rate history | Product Admin / Sysadmin |
| exchange-rate | Dated FX rate history feeding document snapshots and costing FX revaluation | Product Admin |
| vendor | Suppliers with addresses, contacts, and business-type taxonomy | Product Admin |
| vendor-business-type | Classifies vendors by business type (manufacturer, distributor, service, …) | Product Admin |
| tax-profile | Named tax rate definitions | Product Admin |
| credit-term | Vendor payment terms (NET 30, COD, etc.) | Product Admin |
| extra-cost-type | GRN landed-cost categories with allocation modes | Product Admin |
| adjustment-type | Coded reasons for stock-in / stock-out adjustments | Product Admin |
| credit-note-reason | Coded reasons for credit notes raised against GRN | Product Admin |
calculation_method), master-data/currency, and master-data/exchange-rate (for dated FX revaluation).../carmen-turborepo-backend-v2/packages/prisma-shared-schema-tenant/prisma/schema.prisma.../carmen-turborepo-backend-v2/packages/prisma-shared-schema-platform/prisma/schema.prisma.../carmen/docs/settings/locations.md (referenced by master-data/location only)..specs/2026-05-16-master-config-design.md..specs/2026-05-16-master-config-plan.md.