How to lay out pallet rack in a warehouse
Before a single line gets drawn, three inputs already decide most of a warehouse rack layout: how deep a back-to-back pair of rows sits together, how much steel an aisle actually needs once loads overhang their frames, and which way the rows should run. Get those three wrong and every downstream number — bay count, position count, steel count — inherits the error. Every figure on this page comes from the same rack layout planning arithmetic FloorCast3D’s own packer runs, so it is planning-grade: good enough to compare options, not a substitute for a drawing an engineer signs.
The module: two rows, back to back, around a flue
Single-deep selective rack rarely stands alone. Two rows are set back to back, sharing one flue between them, because that pairing halves the number of aisles a given amount of back-to-back pallet racking needs. The floor-space unit that repeats across the building — call it a module — is two row depths plus the flue between them:
module = 2 × (rack depth + column depth) + flueWith the app’s own default single-deep frame (42″ rack depth, 2.875″ upright column depth) and its default 6″ flue, one row measures 44.875″ steel-to-steel, and one module measures 95.75″ of floor depth per repeat.
It is tempting to size a module from rack depth alone — 2 × 42″ + 6″ — and drop the upright’s own 2.875″ column depth, because the beam face is what usually gets measured on a tape. That shortcut is exactly how a plan overruns the floor it was drawn on: the frame itself takes up depth behind the beam face, on both rows of every module. Across the 16 modules in the worked example below, that omission alone is 7 ft 8 in of steel the plan never accounted for.
Flue space in a pallet rack layout, honestly
The 6″ flue above is steel to steel — frame face to frame face, not load to load. A 48″ pallet on the app’s 42″ frame overhangs the steel by 3″ per face, and a back-to-back flue has a load overhanging from both directions at once. Net that out and a 6″ steel flue leaves roughly 0″ of real clearance between the two loads themselves.
That is not a defect in the default — it is the honest number, and it is why flue keeping matters. How much clearance a given project actually needs between back-to-back loads is an operational and fire-protection question: the fire-protection engineer and the authority having jurisdiction set that requirement for a specific building, sprinkler design and commodity class, not a planning default on a marketing page. Treat 6″ as a starting point for that conversation, not a number to build to. The clear-aisle side of this same steel-versus-load problem is worked through in the forklift aisle width guide.
The both-boundaries rule
A stack of modules needs an operating aisle at both ends of the run, not just one — the front row of one pair picks from the aisle in front of it, and the back row of the next pair picks from the aisle behind it. So the number of modules that fit across a building is the largest n where n modules and n + 1 aisles fit the across dimension, with an aisle on both boundaries:
n × module + (n + 1) × aisle ≤ acrossA looser formula — floor(across / (module + aisle)) — looks nearly identical and returns a bigger, more flattering number, because it sets aside only one aisle per module and plants the first row hard against the wall with no aisle in front of it. Nothing can pick from that row. FloorCast3D’s own layout packer names these phantom rows for exactly that reason, after catching the bug in its own early math. Run both formulas on this page’s worked example and the loose one claims 34 rows and 9,384 positions where the both-boundaries formula fits 32 rows and 8,832 — 2 rows and 552 positions of phantom capacity a shopping list would have priced and a forklift could never reach.
Orientation is not obvious
Racking rows can run parallel to a building’s length or its width, and the instinct is to run them down the long wall. That instinct is not reliable: because bays and modules only fit in whole numbers, the leftover fractional footage at the end of each row or stack can favor either orientation, depending on the building’s proportions and the module and aisle sizes involved. FloorCast3D’s packer does not guess — it lays out both candidates and keeps whichever one fits more racking.
Take a 300 ft × 200 ft building with 32 ft of clear height and narrow-aisle reach trucks — a 108″ class-typical aisle. Run those inputs through the same layout function this page imports, and the rejected candidate (rows along the 300-ft wall) returns 10 back-to-back pairs of 35 bays each — 700 row-bays. The chosen candidate (rows along the 200-ft wall instead) returns 16 pairs of 23 bays each — 736 row-bays. The shorter wall wins, which is the opposite of the usual instinct, and it only shows up by computing both.
- Orientation
- Rows along the 200-ft wall
- Rows
- 32
- Bays/row
- 23
- Levels
- 6
- Positions
- 8,832
Run your own building’s dimensions through the same math with the warehouse capacity calculator.
Setback and steel count
The packer does not work wall to wall either: it keeps a 6″ setback clear on every side before it starts placing rack, so the usable rectangle it packs into is smaller than the building’s own dimensions. In the worked example, that turns the 300 ft × 200 ft building into a 3588″ × 2388″ usable rectangle before a single module gets placed.
Steel count follows directly from bay count, not row count. A row of N bays needs N + 1 frames — one upright at each end and one between every pair of bays — so the 23-bay rows in the worked example take 24 frames each, 768 frames across all 32 rows.
Beams are counted per bay, per beam level, front and back — two per bay per level — and the floor level carries no beams, because the bottom load sits on the slab. With 6 pallet levels that is 5 beam levels, for 7,360 beams in the worked example. How those levels translate into vertical beam spacing is its own question, covered in the beam spacing guide.
What a real building adds
Everything above packs an empty rectangle. A real warehouse is not empty. Building columns sit on a structural grid that has nothing to do with rack modules, and a good layout buries them inside a flue — already dead space between two rows — rather than losing an entire aisle’s width and length to one column. Dock doors need staging depth in front of them that a uniform block would otherwise have racked. Offices, battery or charging rooms and restrooms carve out more floor. Life-safety travel distances add cross-aisles that break long runs into shorter ones, which is more aisle area than one long block accounts for.
Every one of those subtracts from the uniform-block number above, never adds to it — which makes a worked example like this one an upper bound: useful for comparing clear-height options or truck classes quickly, and never a floor plan. Sizing the actual parts against real manufacturer catalogs (see the pallet rack part-number guide) and placing the actual obstacles is the rest of the job; the drawing is the real answer.
Two decisions sit either side of this one. Which storage system the rows should be in the first place — selective, deep-lane density, cantilever — is covered in the pallet rack types guide, and what the finished arrangement has to survive on its way to installation is covered in the high-pile storage permit guide.
Frequently asked
How much flue space should I plan between back-to-back pallet racks?
FloorCast3D’s own default is a 6″ steel flue — frame face to frame face, not load to load. A 48″ pallet overhangs a 42″ frame by 3″ per face, and a back-to-back flue has a load overhanging from both directions, so that 6″ steel flue nets roughly 0″ of real clearance between the loads themselves. Flue keeping beyond that default is an operational and fire-protection matter: the fire-protection engineer and the authority having jurisdiction set the requirement for your building, sprinkler design and commodity class — this page can only show you the steel-versus-load math, not a code number.
How wide does a pallet rack aisle need to be?
It depends on the truck class working the aisle, not one industry number — a counterbalance sit-down truck, a reach truck and a turret truck each turn in a different footprint, and loads that overhang their frames widen the steel needed for a given clear aisle. The forklift aisle width guide on this site works through the class-typical defaults and how to replace them with your own truck’s published dimensions.
Should pallet rack rows run the long way across a warehouse?
Not automatically. Because bays and modules only fit in whole numbers, the leftover space at the end of each row or stack can favor either orientation, depending on the building’s proportions. On a 300 ft × 200 ft building with 32 ft of clear height and narrow-aisle reach trucks, running rows along the 300-ft wall fits 10 back-to-back pairs of 35 bays — 700 row-bays. Running rows along the 200-ft wall instead fits 16 pairs of 23 bays — 736 row-bays. The shorter wall wins here, which is the opposite of the usual instinct, and it only shows up by computing both.
How many pallet positions fit in a warehouse this size?
For that same 300 ft × 200 ft building — 32 ft clear, narrow-aisle reach trucks — the layout math on this page returns 8,832 pallet positions. That is one uniform block in the better of two orientations, with no building columns, dock doors, offices or cross-aisles subtracted yet, so treat it as an upper bound for comparing options, not a position count for a real floor. The warehouse capacity calculator on this site runs the same math against your own building’s dimensions.
What is a phantom row?
A row a formula claims but a forklift can never reach. It happens when a layout formula sets aside only one aisle per row instead of an aisle at both boundaries of the stack, which plants the first row hard against a wall with no aisle in front of it. FloorCast3D’s own layout packer names these phantom rows for exactly that reason, after catching the bug in its own early math.
See this exact geometry in FloorCast3D
Every module, flue and aisle rule on this page is the same math the app runs against your own building. The free trial key is the whole product for 14 days — no card, every artifact marked as a trial copy — lay out your own dimensions, walk the flue and aisle spacing in 3D, and see where the both-boundaries rule actually lands before you commit to a design.
