Dynamic Fields

Dynamic fields are properties GoPlanogram calculates, whose values may change depending the state of a planogram.

As such, these properties should only be used to create expressions for parts of your site that interact with the display itself (such as Heatmaps, Labels, Reports), and not other sections (such as Catalog filters, sorters, or tooltips).

Dynamic fields may be used in Calculations as well as 1-1 property mappings (they appear in the final section of the property dropdown).

A brief description of each follows:

FieldDescription
AccountIDRepresents the AccountID of a given product, based on the currently selected Account. If no Account is selected or the product is not supported by the current Account, this will be empty.
AisleThe name of the aisle the product is on.
AreaThe area of the front face of a product position, in square units, counting every facing wide and high (facings deep are behind the face and do not count). Takes into account its current orientation. For a single facing, use Width * Height.
Barcode128Returns the UPC (or ProductID, if no UPC found) of the product as a scannable Code 128 barcode, only in reports below images.
Barcode39Returns the UPC (or ProductID, if no UPC found) of the product as a scannable Code 39 barcode, only in reports below images.
BarcodeEAN13Returns the UPC (or ProductID, if no UPC found) of the product as a scannable EAN-13 barcode, only in reports below images.
BayThe rack bay number, from left to right, a product is on. This will be 0 if a product is not on a rack. A synonym for BayNumber.
BayNumberThe rack bay number, from left to right, a product is on. This will be 0 if a product is not on a rack. A synonym for Bay.
BayPosition

The rack bay number, from left to right, a product is on. This field calculates "universal" bay based on the horizontal position of each Rack in the planogram.

Even if three separate racks exist, bay values will be assigned 1–3 across all racks, instead of each bay count restarting at 1 for each rack.

This will be 0 if a product is not on a rack. Not to be confused with Bay.

BinFitCount

How many units of the product fill its Bin, counting whole units across, up and back.

This is a lower bound: it assumes units sit square and unrotated, so a Bin of loose-filled hardware will hold more than this reports. Treat it as "at least this many".

0 if the product is not merchandised as a Bin. Note this differs from Capacity, which counts how many Bins fit on the fixture front to back.

For the Bin's own dimensions, use Width / Height / Depth: those already report a Position's acting size, which for a Bin IS its bin size.

CapacityReturns how many of the product could fit, front to back, behind a single facing on its current peghook or shelf: the most FacingsDeep could be. This accounts for product orientation. Default value is 1.
ContainerIndex

Returns the index of the container this product is in. If the product's container is on a shelf, the containers on it are ordered from 1 to N, left to right.

If the product's container is parented to a rack, all containers on it are ordered from top left to bottom right, 1 to N.

If the product's container is not on a shelf or a rack, this returns "Not in container".

ContainerPositionReturns the position of a product in a container, ordered from 1 to N, top to bottom. If product is not in a container, returns "Not in container".
CostFitsA decimal number specifying the cost of the product multiplied by how many could fit in the position: Capacity behind each of its facings wide and high.
CostQtyA decimal number specifying the cost of the product multiplied by how many the user has specified at that location.
DividerQty

How many dividers this Bin accounts for.

A Bin is a compartment, so it needs a wall on each side. A run of Bins pushed together shares walls between neighbours and is closed off at both ends, so a run of N takes N + 1 dividers -- and a Bin sitting on its own still takes 2. A shelf whose Bins fall into two separated runs therefore needs more dividers, not fewer.

The count is attributed one Bin at a time (each owns the divider to its left, and whichever Bin ends a run also owns the wall that closes it) so that it adds up: Sum(DividerQty) gives the right total for a shelf, a bay, or a whole plan. For a ready-made order list, see the Fixture BOM report option.

EyeLevelA decimal number between 0 and 1 specifying how close to eye level a product on a rack has been placed.
FacingsDeepReturns the specified number of facings deep at this position. While this is often the same as Capacity, you may specify a different Quantity that does not correspond with the maximum facings deep that could fit. A synonym for Quantity.
FacingsFront

Multiplies FacingsHigh and FacingsWide to get the total number of facings as viewed in XY plane.

Similar to FacingsTotal, but does not include FacingsDeep.

FacingsFrontPerSKUReturns the total number of facings for this SKU, excluding FacingsDeep (across all positions containing this SKU).
FacingsHighReturns the number of vertical facings in this position (facing group). Default value is 1.
FacingsTotal

A convenience field that multiplies FacingsWide x FacingsHigh x FacingsDeep to get the total number of facings specified at a position.

Not to be confused with FacingsFront, which just considers FacingsWide x FacingsHigh.

FacingsTotalPerSKUReturns the total number of facings for this SKU, including FacingsDeep (across all positions containing this SKU).
FacingsWideReturns the number of horizontal facings in this position (facing group). Default value is 1.
FixtureThe name of the fixture a product is on, or the empty string if the product is not on a fixture. A synonym for FixtureName.
FixtureDepthReturns the depth of the product's containing fixture. If the product is not on a fixture, returns 0.
FixtureDescriptionThe description given to the fixture a product is on, or "N/A" if the product is not on a fixture.
FixtureNameThe name of the fixture a product is on, or the empty string if the product is not on a fixture. A synonym for Fixture.
FixtureSKUThe SKU / part number assigned to the fixture a product is on, or "N/A" if the product is not on a fixture.
HookLengthThe length of the hook for a pegged product position
HookNameThe name of the hook for a pegged product position
HookProngDepthHow deep one prong is, in the hook's units, which is what limits facings deep for the product on it. 0 means one item per prong
HookProngDrop

How much lower each prong sits than the one in front of it, in the hook's units.

0 is a level arm, where only the front product is visible head-on. Above 0 is a waterfall, which cascades so every product stays visible.

HookProngOffsetThe distance from where the hook mounts to its first prong, in the hook's units. Fixture catalogs often call this the rack's "extension"
HookProngPitch

Centre-to-centre spacing between prongs, along the hook's reach, in the hook's units.

0 means the hook's prongs are just a capacity number. Above 0, each prong is an addressable station that can hold its own SKU, as on a waterfall or straight-arm rack.

HookProngsCountThe number of prongs for the hook assigned to a pegged product position
HookQtyThe number of hooks a pegged product position hangs from: one per facing wide and high, or two per facing if the product has a second peghole. 0 if the product is not pegged. Members of a Layered Group share their hooks, so Sum(HookQty) gives the total to order.
HookSKUThe SKU of the hook for a pegged product position
HookStationIndex

Which prong a product position STARTS on, counting from 1 at the prong nearest the fixture.

A position can cover several prongs -- one alone on the arm covers them all, and SKUs sharing an arm divide them between them -- so this is where its run begins, not the only prong it uses. 1 for anything that is not on a pronged hook.

HookType

The type of the hook for a pegged product position. Possible values are:

  • S - Standard, uses 2 pegholes with the hook between them
  • J - Uses a single peghole
  • L - Loop hook, wider appearance
IsOnPegboardReturns 1 if the product is on a pegboard, 0 otherwise.
IsOnShelfReturns 1 if the product is on a shelf, 0 otherwise.
ItemImageRenders the item image in PDF Reports / Live Insights for this product.
LayerCountReturns how many layers are in the Layered Group a product belongs to. A product that is not in a Layered Group returns 1. Useful together with LayerIndex, for example LayerCount - LayerIndex + 1 to number layers from the shopper's side inward.
LayerIndex

Returns which layer a product occupies within its Layered Group, counting from 1 at the end of the group nearest the fixture.

  • In a depth-wise group (for example several SKUs sharing one peghook), layer 1 is the layer at the fixture and the highest layer is the one facing the shopper.
  • In a stack (for example folded shirts on a table), layer 1 is the bottom of the stack.

A product that is not in a Layered Group returns 1, since it is its own only layer.

To count from the other end instead, use LayerCount - LayerIndex + 1. To report letters rather than numbers, use Format(LayerIndex, A). See also LayerCount.

LocationIDA number identifying a product location on a planogram. LocationID's are assigned left to right, top to bottom, per bay, per fixture.
MarginThe margin for a position rounded to 2 decimals. Empty if the product has no price or cost, or its price is 0.
MerchStyle

The current merchandising style of a product position. Typically this is "Default", though any style is possible.

Common examples include Tray, Carton, PDQ, Unit, etc...

For more information on how to set up merch styles, see the catalog format documentation.

OrientationReturns the orientation of this product (i.e. Front 90, Top, etc..)
PositionAcross

A decimal number specifying the horizontal position of the product on its fixture.

For pegboards, this is the number of pegholes from the left edge of the pegboard.

For shelves, this is a unique number, from 1 to N (where N is the number of products / fixture groups on the shelf), from left to right.

For containers, this is the same as ContainerIndex.

For all other fixtures, this is the number of inches / cm across from the left edge of the fixture.

PositionDown

A decimal number specifying the vertical position of the product on its fixture.

For pegboards, this is the number of pegholes down.

For shelves, this is always 0.

For all other fixtures, this is the number of inches / cm down from the top of the fixture.

PositionHeightThe total amount of vertical space a Position takes up
PositionWidthThe total amount of horizontal space a Position takes up
PriceFitsA decimal number specifying the price of the product multiplied by how many could fit in the position: Capacity behind each of its facings wide and high.
PriceQtyA decimal number specifying the price of the product multiplied by how many the user has specified at that location.
ProfitTotal profit for a position, taking into account facings high, wide, and deep, rounded to 2 decimals. Empty if the product has no Price or Cost.
ProfitEachProfit for a single product in a position, rounded to 2 decimals, even if it has multiple facings high, wide, or deep. Requires this item has Price / Cost data.
QuantityReturns the specified number of facings deep at this position. While this is often the same as Capacity, you may specify a different Quantity that does not correspond with the maximum facings deep that could fit. A synonym for FacingsDeep.
RackThe name of the rack the product is on, even if the product is in a different fixture that is attached to a rack. See also Fixture.
RackAreaThe area of the rack a product is on, in square units. If the product is not on a rack, this is 0. See also Area.
RackDepthReturns the depth of the rack this product is on, or 0 if product is not on a rack.
RackHeightReturns the height of the rack this product is on, or 0 if product is not on a rack.
RackWidthReturns the width of the rack this product is on, or 0 if product is not on a rack.
RotationThe rotation angle assigned to a product position
ShelfDepthReturns the depth of the shelf this product is on, or 0 if product is not on a shelf.
ShelfFacingsCountReturns the total number of facings (wide x high, not counting facings deep) on a product position's shelf. Not to be confused with ShelfMemberCount, which counts top-level items rather than individual facings.
ShelfHeightReturns the height of the shelf this product is on, or 0 if product is not on a shelf.
ShelfIDReturns the ID of the product's containing shelf, or -1 if product is not on a shelf. This ID is calculated from 1 to N, where N is the total number of shelves in the planogram, per-fixture, top left to bottom right, much like LocationID.
ShelfIndexReturns the index of the product's shelf. Shelves on racks are ordered by vertical position. The highest shelf is index 1, and the lowest index N. Shelves with equal vertical positions are sorted based on their horizontal positions, leftmost shelves first. If the product is not on a shelf on a rack, this returns -1. Not to be confused with ShelfIndexBay.
ShelfIndexBayReturns the index of the product's shelf within its bay. Shelves within each bay are ordered by vertical position. The highest shelf is index 1, and the lowest index N. If the product is not on a shelf on a rack, this returns -1. Not to be confused with ShelfIndex.
ShelfIndexReversed

Returns the index of a product's shelf, from bottom to top (1 to N)

Not to be confused with ShelfIndex, which orders shelves from top to bottom

ShelfMemberCount

Returns the total number of top-level items on a product position's shelf.

Not to be confused with ShelfFacingsCount. For example, if a Shelf held a single product position with 2 facings:

  • ShelfMemberCount returns 1
  • ShelfFacingsCount returns 2
ShelfNotchReturns the index of the notch a product's shelf is snapped to, relative to the top of its Rack, or "Error" if the product is not on a shelf parented to a rack.
ShelfSegmentReturns which shelf segment this product is on (from 1 to N, left to right). If the product is not on a segmented shelf, returns -1. See also ShelfSegmentAlpha.
ShelfSegmentAlphaReturns which shelf segment this product is on, parsed as a letter, where 1 -> "A", 2 -> "B" and so on. If the product is not on a segmented shelf, returns -1. See also ShelfSegment.
ShelfWidthReturns the width of the shelf this product is on, or 0 if product is not on a shelf.
TableLayerReturns the index of the table layer a product is on.
TotalFacings

Returns the sum of FacingsWide x FacingsHigh x FacingsDeep across every Position in the entire display.

See also TotalFrontFacings, which ignores FacingsDeep.

TotalFrontFacings

Returns the sum of FacingsWide x FacingsHigh across every Position in the entire display. Represents how many product "faces" a shopper would see.

Does not include FacingsDeep. See also TotalFacings.

TotalPositionsReturns the total number of Position objects in the entire display. Each Position counts once, regardless of how many facings it has.
TotalProductAreaReturns the total Area (in square inches/cm) of all products in the entire display, counting every facing wide and high (facings deep are behind the front face and are not counted). Useful for Breakdown views / reports.
TotalProducts

Legacy synonym for TotalFrontFacings. Kept for backward compatibility; new expressions should use one of TotalPositions, TotalFrontFacings, or TotalFacings to be explicit about what is being counted.

TotalProductWidthReturns the total Width (in inches/cm) of all products in the entire display, counting every facing wide. Useful for Breakdown views / reports.
TotalRackAreaReturns the total area of all racks in the display, rounded to the nearest square unit (inches or centimeters).
TotalShelfWidthThe total width of all shelves in the current display
GoPlanogram Logo GoPlanogram Copyright 1998-2026 Northwoods Software