# ReplenishmentConfig

object type

A replenishment config — ONE cell of the multi-axis planning parameter matrix: a set of AXES naming a scope (absent = all — the sparse matrix; Location = organizationId XOR logicalFacilityId · Merchandise = categoryId XOR styleId · seasonId · brandId, each SINGULAR) + a SPARSE block of parameters (at least one — the substance rule). Group-scoped like a Brand (parent = the org group). The AXES are the cell identity — IMMUTABLE at birth (re-target = create + doom); parameter VALUES stay editable (nothing clears — removing a parameter = doom + create). the collision rule: an ACTIVE sibling with the SAME normalized axis tuple AND an intersecting SET-parameter set refuses CONFLICT/IDENTITY_TAKEN naming the holder + the intersecting parameters (same-tuple DISJOINT-parameter cells are legal — per-parameter semantics; an inactive cell neither resolves nor collides, so REACTIVATE re-runs the gate). Specificity (the.2 per-parameter resolution): count of set axes, then the locked axis order Location > Merchandise > Season > Brand. A NON-doomed cell blocks its axis targets dooms (LF/Organization/Category/Style/Season/Brand); deactivate stays FREE.

## Fields

| Field | Type | Notes |
| --- | --- | --- |
| `id` | [ID](/types/#scalars) `ID!` | The record’s id — a UUID the platform assigned when the record was created; every reference to this record uses it. |
| `sysId` | [String](/types/#scalars) `String!` | The group-scoped human-facing system id (RP-…). |
| `type` | [String](/types/#scalars) `String!` | The kind of record — always `ReplenishmentConfig` here. |
| `caption` | [String](/types/#scalars) `String!` | The record’s display name — what people see it called. |
| `status` | [String](/types/#scalars) `String!` | The FSM state: active \| inactive \| doomed. |
| `parentId` | [ID](/types/#scalars) `ID!` | The parent org group; for a ReplenishmentConfig parentId === rootId. |
| `rootId` | [ID](/types/#scalars) `ID!` | The org-group family root. |
| `createdAt` | [String](/types/#scalars) `String!` | When the record was created, as a UTC timestamp. |
| `updatedAt` | [String](/types/#scalars) `String!` | When the record last changed, as a UTC timestamp. |
| `revisionNum` | [Int](/types/#scalars) `Int!` | How many times this record has been edited; the first save is 0. |
| `revision` | [ID](/types/#scalars) `ID!` | The OCC revision token — supply it on every mutation of this record; rotates on every write. |
| `refCaptions` | [RefCaption](/types/RefCaption/) `[RefCaption!]!` | The server-composed captions of this record's declared references (the referenced-caption rule) — one row per referenced id; see RefCaption. |
| `organizationId` | [ID](/types/#scalars) | The Location axis, org level (XOR logicalFacilityId; absent = group-wide). IMMUTABLE at birth. |
| `logicalFacilityId` | [ID](/types/#scalars) | The Location axis, LF level (XOR organizationId). IMMUTABLE at birth. |
| `categoryId` | [ID](/types/#scalars) | The Merchandise axis, category level (XOR styleId; matches the subtree). IMMUTABLE at birth. |
| `styleId` | [ID](/types/#scalars) | The Merchandise axis, style level (XOR categoryId; outranks ANY category depth). IMMUTABLE at birth. |
| `seasonId` | [ID](/types/#scalars) | The Season axis (absent = all seasons). IMMUTABLE at birth. |
| `brandId` | [ID](/types/#scalars) | The Brand axis (absent = all brands). IMMUTABLE at birth. |
| `replenishEnabled` | [Boolean](/types/#scalars) | The master switch for the.2 replenishment suggester over this scope. Editable. |
| `minUnits` | [String](/types/#scalars) | The band floor (stock units, the 12-digit/4-dp quantity grammar); minUnits must not exceed maxUnits. Editable. |
| `maxUnits` | [String](/types/#scalars) | The band ceiling (stock units). Editable. |
| `daysOfSupplyTarget` | [Int](/types/#scalars) | Velocity-consuming days-of-supply target (1..3650 — the velocity boundary is disclosed in provenance, -i). Editable. |
| `safetyStockUnits` | [String](/types/#scalars) | FIXED safety stock (stock units) — a service-level METHOD is the named registry-extensible successor. Editable. |
| `reorderMultipleUnits` | [String](/types/#scalars) | The FORCE reorder-multiple override (stock units, strictly positive) — DEFAULT = the pack/MOQ derivation. Editable. |
| `reviewCadenceDays` | [Int](/types/#scalars) | Review cadence (1..3650) — a PARAMETER consumed by derived reads; nothing fires by itself. Editable. |
| `abcClassOverride` | [AbcClass](/types/AbcClass/) | Pin this scope to an ABC class regardless of the computed cut lines. Editable. |
| `buyVsTransfer` | [ReplenishmentBuyVsTransfer](/types/ReplenishmentBuyVsTransfer/) | The buy-vs-transfer-and-backfill thresholds. Editable. |
| `reserveFloorUnits` | [String](/types/#scalars) | Stock a donor NEVER gives up (stock units) — the genuine-excess floor. Editable. |
| `transferableExcess` | [Boolean](/types/#scalars) | May this scope DONATE excess at all. Editable. |
| `allocationWeight` | [Int](/types/#scalars) | The fair-share weight for the.2 allocation suggester (1..10000). Editable. |

## Used by

- [createReplenishmentConfig](/reference/replenishment-config/createReplenishmentConfig/)
- [deactivateReplenishmentConfig](/reference/replenishment-config/deactivateReplenishmentConfig/)
- [doomReplenishmentConfig](/reference/replenishment-config/doomReplenishmentConfig/)
- [reactivateReplenishmentConfig](/reference/replenishment-config/reactivateReplenishmentConfig/)
- [replenishmentConfig](/reference/replenishment-config/replenishmentConfig/)
- [replenishmentConfigs](/reference/replenishment-config/replenishmentConfigs/)
- [updateReplenishmentConfig](/reference/replenishment-config/updateReplenishmentConfig/)
