Grocery shelf facing allocation calculator

Calculate facing allocation and minimum facing overrun with your own figures.

Your numbers

Use the units shown. Results update as you change valid inputs.

Use facing allocation and minimum facing overrun to compare changes to your inputs. The method and limits below explain the scope.

Examples

Examples

Try the starting example

Products [facing width cm,demand units/day,minimum facings]; enter JSON
[[10,30,1],[15,20,1],[20,10,1]]
Usable shelf width (cm)
100
Facing allocation (JSON)
{"facings":[5,2,1],"used_width":100,"remaining_width":0,"minimums_feasible":true}
Minimum facing overrun (cm)
0

Try another scenario

Products [facing width cm,demand units/day,minimum facings]; enter JSON
[[12,40,1],[18,15,1],[20,20,1]]
Usable shelf width (cm)
90
Facing allocation (JSON)
{"facings":[4,1,1],"used_width":86,"remaining_width":4,"minimums_feasible":true}
Minimum facing overrun (cm)
0
Calculation method

Calculation method

Facing allocation (JSON)

Start minimum facings. If feasible, repeatedly add to fitting product with largest demand/(current facings+1), input-index ties. Stop when no fit or 1000 total facings.

Minimum facing overrun (cm)

max(0,sum(width×minimum facings)−shelf width).

Symbols and units
a
Products [facing width cm,demand units/day,minimum facings]; enter JSON
b
Usable shelf width (cm)

Use the units shown. A list keeps the order in which you enter its values. The symbol ^ means “raised to the power of”.

Calculation steps and notation

sum(list) adds all entries in the list.

Assumptions & limits

Assumptions & limits

  • Single linear shelf and whole facings; deterministic demand-per-facing heuristic, without commercial optimality claim. Supported limits: All numeric inputs and computed intermediates must remain finite. Supported numeric input magnitude is zero or 1e-12 through 1e12 in absolute value; reject values outside this bounded range. All lists/JSON record tables are limited to 100 records unless a stricter bound is stated; reject malformed record arity and wrong member types. Facing widths>0; demand>=0; minimum facings nonnegative integers; sum minima<=1000; shelf width>0.
Are these inputs private?

These calculations run in your browser. A shared link contains the values you choose to share. Only questions submitted to the separate AI finder are sent to OpenAI.

Share this page
Share this calculator

Leave unchecked to share the page without your entered values.