Skip to content
Guide · Warehouse Racking Layout

Warehouse racking layout: how to lay out pallet rack

A warehouse racking layout is decided by three inputs before anything gets drawn: how deep a back-to-back pair of rows sits, how much floor an aisle really takes once loads overhang the steel, and which way the rows run. Get those wrong and every downstream number inherits the error, bay count, position count, steel count. This guide works all three by hand on a 300 ft × 200 ft building, then hands the same building to FloorCast3D’s packer and shows the drawing.

Every figure on this page is computed at build time from the same arithmetic the app runs, or read from the app’s own output at a named build. None is typed in. It is planning-grade: good enough to compare options, not a substitute for a drawing an engineer signs.

Start with the building, not the rack

Measure the usable rectangle first. FloorCast3D’s packer keeps a 6″ setback clear along every wall before it places anything, so a 300 ft × 200 ft building packs into a 3,588″ × 2,388″ rectangle. Clear height sets the beam levels, and every building column, dock door and room is an input you place before the packer runs, not a note for later.

Clear height here means the height to the underside of the lowest obstruction over the racking, not to the roof deck. The worked example throughout this page is a 300 ft × 200 ft building with 32 ft clear and narrow-aisle reach trucks. It is the sample package’s own building with the rack zones removed, which is why the finished drawing at the end of the page is the same floor and not a look-alike.

How deep is a back-to-back pallet rack row?

One single-deep row is the frame depth plus the upright’s column depth: 42″ + 2.875″ = 44.875″ with the app’s default frame. A back-to-back pair around the default 6″ flue repeats every 95.75″ of floor. Size the module from rack depth alone and you drop 7 ft 8 in of steel across the worked example.

Single-deep selective rack rarely stands alone. Two rows are set back to back, sharing one flue, because that pairing halves the number of aisles a given amount of 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 formula
module = 2 × (rack depth + column depth) + flue

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 takes up depth behind the beam face, on both rows of every module. Across the 16 modules in the worked example, that omission alone is 7 ft 8 in the plan never accounted for.

How much flue space between back-to-back pallet racks?

The gap between the two rows of a back-to-back pair is the longitudinal flue, and the gaps between loads side by side in a row are the transverse flues. FloorCast3D’s default longitudinal flue is 6″ steel to steel, which nets no clearance at all between the loads themselves, the two overhangs use up the whole flue once each 48″ pallet overhangs its 42″ frame by 3″. How much clearance your building needs is a fire-protection question for the engineer of record and the authority having jurisdiction, not a number on this page.

The distinction matters because a flue is measured between loads, and the steel is not where the loads end. A 48″ pallet on a 42″ frame hangs 3″ past each frame face, and a back-to-back flue has a load overhanging from both directions at once. Net that out and the 6″ steel flue leaves no clearance at all between the loads themselves, the two overhangs use up the whole flue. That is not a defect in the default. It is the honest number, and it is why flue keeping matters: whatever clearance your sprinkler design requires, the racks have to hold it in service, which is what flue labels and flue keepers are for.

The transverse flues come out of the bay math rather than the module. The app keeps 3″ of clear floor on each side of every pallet, so two loads side by side in a bay sit 6″ apart, and at the bay line the upright adds its own 3.625″ to the gap. Treat both defaults as the start of a conversation with the fire-protection engineer, not as a figure to build to. The clear-aisle side of the same steel-versus-load problem is next.

How wide should pallet rack aisles be?

Wide enough for the truck that will work them, measured load to load, not steel to steel. With loads overhanging the frames by 3″ per face, a 108″ clear aisle for a narrow-aisle reach truck needs 114″ between the frame faces. The class-typical clear aisles the app starts from are counterbalance sit-down 144″, double-deep reach 120″, narrow-aisle reach 108″, turret / vna 78″, and it prefers your truck’s published right-angle stack figure the moment you enter it.

The class table is the app’s weakest tier on purpose, and it says so: a class default is unsourced until a spec plate replaces it. From the plate, the working aisle is the right-angle stack figure plus the load length plus 12″ of operating clearance, and that clear figure is then widened by both overhangs to get the steel aisle the drawing has to show. The forklift aisle width guide works each truck class through that conversion.

How many rows fit across the building?

The largest n where n modules and n + 1 aisles fit the across dimension, because a stack of back-to-back pairs needs an operating aisle on both boundaries. On the worked example that is 16 pairs, 32 rows. The looser floor(across ÷ (module + aisle)) formula claims 34 rows and 9,384 positions, and 2 of those rows stand against a wall with no aisle in front of them.

Both-boundaries formula
n × module + (n + 1) × aisle ≤ across

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 stack needs an aisle at both ends of the run, not just one. The loose formula looks nearly identical and returns a bigger, more flattering number because it sets aside one aisle per module and plants the first row hard against the wall. Nothing can pick from that row. FloorCast3D’s packer names these phantom rows for exactly that reason, after catching the bug in its own early math. On this page’s example the loose formula claims 552 positions of phantom capacity a shopping list would have priced and a forklift could never reach.

Which way should the rows run?

Whichever way fits more racking, and that is not always the long wall. Bays and modules only fit in whole numbers, so the leftover footage at the end of each row or stack can favor either orientation. On the worked example, rows along the 300-ft wall fit 10 pairs of 35 bays, 700 row-bays. Rows along the 200-ft wall fit 16 pairs of 23 bays, 736 row-bays. The shorter wall wins.

The instinct to run rows down the long wall is not reliable because the two orientations round differently: one wastes the fraction of a module at the end of the stack, the other wastes the fraction of a bay at the end of each row, and which waste is smaller depends 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, and the drawing further down shows the choice it made on this floor.

How many beam levels does the clear height allow?

Levels come from the clear height, not from the truck. A 48″ load needs a 58″ pitch beam to beam (48″ load + 6″ lift-off + 4″ beam face), and the app keeps its default 36″ reserve between the top of the highest load and the clear height unless the building states its own figure. At 32 ft clear that is 6 pallet levels, the floor level and 5 beam levels, with the top load finishing 338″ above the slab.

The reserve is a planning default, not a sprinkler clearance. It is measured down from the clear height you typed, and heads hung at roof height over open-web joists sit above that plane, which legitimately changes the gap a permit needs. A building can state its own number in the app and the packer uses it. Whether a truck can reach the top level is a separate check: the app does not invent a maximum fork height, it warns when positions sit above the one you entered. How those levels translate into vertical beam spacing is covered in the beam spacing guide.

Worked example: 300 × 200 ft, 32 ft clear

Run the inputs above through the same layout function this page imports and one uniform block of single-deep selective rack, in the better orientation, holds 8,832 pallet positions. Steel follows from bay count: a row of N bays needs N + 1 frames, so the 23-bay rows take 24 frames each, 768 frames across 32 rows, and two beams per bay per beam level make 7,360 beams.

One block, by hand
Truck
Narrow-aisle reach, 108″ clear aisle
Steel aisle
114″ frame face to frame face
Orientation
Rows along the 200-ft wall
Rows
32 (16 back-to-back pairs)
Bays / row
23
Levels
6 pallet levels, 5 beam levels
Positions
8,832
Frames
768
Beams
7,360
Top of load
338″ above the slab

The floor level carries no beams because the bottom load sits on the slab, which is why 6 pallet levels are 5 beam levels. Run your own building’s dimensions through the same arithmetic with the warehouse space calculator.

The same building through the app

Handed the same empty 300 × 200 ft building, the same truck and the same rack, FloorCast3D’s packer returns two candidates: a densest layout of 9,384 positions in 34 rows of 23 bays, and a most-selective layout of 6,720 positions in 16 single rows of 35 bays, every row facing its own aisle. The densest one beats this page’s one-block arithmetic by 552 positions, and the drawing shows where they come from.

FloorCast3D Auto-Layout form for a 300 by 200 ft building with two candidates: densest 9,384 positions, most selective 6,720
The Auto-Layout form and its two candidates for the empty 300 × 200 ft building with narrow-aisle reach trucks: densest 9,384 positions in 34 rows of 23 bays, most selective 6,720 in 16 single rows of 35. The app's own note about widening the aisles 6″ for load overhang is the same steel-versus-load rule worked above. Captured from FloorCast3D at build da9e82e.

The packer lays the same 16 pairs the both-boundaries formula finds, in the same orientation, with the same 23 bays per row. Then it looks at the strip left over at each wall, too narrow for another pair with its aisle, and parks one single row there facing the boundary aisle that the formula already paid for. Two wall rows of 23 bays, 2 pallets per bay, 6 levels, are 552 positions, and 8,832 + 552 = 9,384.

Warehouse racking layout in 2D: 34 north-south rows of pallet rack on an empty 300 by 200 ft floor, aisles between every pair
The densest candidate adopted: 16 back-to-back pairs across the floor, plus one single row against each wall in the strip a pair could not use. Those 2 wall rows are the 552 positions between this page's 8,832 and the app's 9,384. Build da9e82e.

Notice that the loose formula from the rows section also claims 34 rows on this floor, the same count the packer draws. The count is not what separates them. The loose formula’s extra rows stand against the wall with no aisle in front of them, and the packer’s extra rows stand against the wall facing the aisle. A position total on its own cannot tell you which of those you have. The drawing can, which is the whole argument for drawing the layout before you price it.

The most-selective candidate is the other honest answer to the same inputs: every pallet faces an aisle, so any load comes out without touching another, at the cost of 2,664 positions against the densest. Which one a customer wants is an operations question, and the point of computing both is that the trade-off is a number on a card rather than an opinion.

What columns and dock doors change

Put the sample package’s 17 obstacles on the same floor, 9 building columns and 8 dock doors, and the densest candidate drops to 8,160 positions, 1,224 fewer, about 13 percent, in 4 rack blocks of short rows between the column lines. The packer tried burying the columns inside flues and kept routing around them, because on this column grid that held more positions.

Warehouse racking layout around 9 columns and 8 dock doors: short north-south rows between the column lines
The same building with the sample package's 17 obstacles placed: 4 rack blocks of short rows between the column lines, 8,160 positions, 1,224 fewer than the empty floor. The packer tried burying the columns inside flues and kept routing around them, because on this grid that held more. Build da9e82e.

A real building’s columns sit on a structural grid that has nothing to do with rack modules. A good layout buries a column inside a flue, already dead space between two rows, whenever that costs less than routing around it, and the app tries both for every candidate. On this grid the column lines run across the rows, so burying would have meant breaking every row at every line, and routing around them into 4 bands of 6-bay rows kept more. Rotate the grid or the rows and the answer can flip, which is why it is computed rather than assumed.

The dock doors are treated here as obstacles with the form’s 6″ clearance, nothing more. Staging depth in front of them, offices, battery rooms and the cross-aisles that life-safety travel distances add are all yours to draw as rooms or racking areas before the packer runs, and every one of them subtracts from the count above. That is the direction every real-building input pushes: down from the uniform block, never up.

What a real layout looks like on that footprint

The sample package’s plan sheet is that same building drawn as a project rather than packed: five zones across 5 rack systems, 1,616 positions, 6 aisles, the 17 obstacles placed, dimensioned and titled for review. It is deliberately a demonstration of five systems on one floor, not a dense layout, so read it for what a finished drawing carries, not for the count.

Warehouse racking plan sheet from FloorCast3D: five rack zones on a 300 by 200 ft building, dimensioned and titled
Sheet 1 of the sample submittal package, the same 300 × 200 ft building drawn as a project: five zones across 5 rack systems, 1,616 positions, 6 aisles, the 17 obstacles placed, dimensioned and titled for review. Generated at build da9e82e. It ships with placeholder pricing and no company name.

What it carries is the part the arithmetic cannot: a north arrow, a scale, a column grid with the racking dimensioned to it, the aisles labelled, the zones lettered so the elevations, the bill of materials and the permit pre-flight all point at the same steel, and a title block that says preliminary, not for construction, prepared for an engineer to review and stamp. The whole package, drawings, quantities, placards and pre-flight, is on the home page to download and judge. Which storage system each zone should be in the first place is covered in the pallet rack types guide, sizing the parts against real catalogs in the pallet rack identification guide, and what the arrangement has to survive on its way to installation in the high-pile storage permit guide.

Warehouse racking layout mistakes we have actually made

These are not a generic list. Each one is a mistake FloorCast3D’s own math or its packer made at some point, caught in review, and now guards against.

  • Counting phantom rows. The first version of this page’s own arithmetic used the loose formula and claimed rows that stood against a wall with no aisle. Comparing it against the app’s packer is what caught it, and the packer’s test suite pins the both-boundaries rule now.
  • Dropping the column depth. Sizing the module as 2 × rack depth + flue reads right on a tape and overruns the floor by 2.875″ per row. On this example that is 7 ft 8 in the plan did not have.
  • Drawing the clear aisle as the steel aisle. A 108″ truck aisle drawn frame face to frame face is 102″ of real aisle once the loads overhang. The app now widens every aisle by both overhangs and says so in a note on the candidate card.
  • Trusting the long-wall instinct. On this building the shorter wall wins by 36 row-bays. The only defence is computing both orientations every time, which is what the packer does.
  • Reading the flue default as a code number. 6″ is a steel-to-steel starting point that nets no clearance at all between the loads themselves, the two overhangs use up the whole flue. The requirement belongs to the fire-protection engineer and the authority having jurisdiction, and the page says so instead of quoting a figure.
  • Bounding the top level by the upright instead of the load. An early suggestion sized beam elevations to the upright and let the top pallet finish above the clear height the layout was drawn for. The reserve is now measured from the top of the highest load, and a building can state its own figure when its sprinkler plane is not the clear height.

Frequently asked

How do I plan a warehouse racking layout?

Start with the building, not the rack: the usable rectangle after the wall setback, the clear height, and every column, dock door and room placed as an input. Then size one back-to-back module (two row depths plus the flue), convert the truck's clear aisle into the steel aisle, fit modules with an aisle on both boundaries, compute both row orientations, and let clear height set the beam levels. Every step is worked below on a 300 ft by 200 ft building.

How much flue space should I plan between back-to-back pallet racks?

FloorCast3D's default is a 6″ longitudinal 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 sides, so that 6″ steel flue nets no clearance at all between the loads themselves, the two overhangs use up the whole flue. How much clearance your building needs is a fire-protection question: the fire-protection engineer and the authority having jurisdiction set it for your sprinkler design and commodity class. This page shows the steel-versus-load math, not a code number.

What is the difference between transverse and longitudinal flue space?

The longitudinal flue is the gap between the two rows of a back-to-back pair, running the length of the rack. The transverse flues are the gaps between loads side by side within a row, at each upright. In this page's math the longitudinal flue is the 6″ default, and the transverse flue between two loads in a bay is 6″, from the 3″ of clear floor the app keeps on each side of every pallet.

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: a 108″ clear aisle for a narrow-aisle reach truck needs 114″ between the frame faces. 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 by 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 fits 16 pairs of 23 bays, 736 row-bays. The shorter wall wins here, 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 by 200 ft building, 32 ft clear with narrow-aisle reach trucks, the one-block arithmetic on this page returns 8,832 pallet positions. FloorCast3D's packer returns 9,384 on the empty floor, by adding a single row against each wall, and 8,160 once the sample package's 17 columns and dock doors are placed. All three are upper bounds for comparing options, not a position count for a real floor. The warehouse space calculator on this site runs the same arithmetic against your own building.

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.

Can software lay out pallet racking for me?

Yes, for the planning pass. FloorCast3D's Auto-Layout takes the building, the truck class and the pallet, fills the floor two ways (densest and most selective), buries or routes around the obstacles you placed, and hands back editable rack blocks with counts, frames and beams. It is preliminary planning: the drawing goes to your engineer for review and stamp, and the flue and aisle clearances it starts from are defaults, not code approvals. The free trial is the whole product for 14 days.

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, place the columns and docks, let the packer fill the floor both ways, and walk the flue and aisle spacing in 3D before you commit to a design.

Updated 2026-09-10. The figures on this page are planning-grade, mirrored from FloorCast3D’s own layout math and read from its output at build da9e82e, and can change as that math changes. Verify against the app’s current defaults for your project. Nothing here is engineering advice: final rack layout, anchorage, flue and aisle clearances, and load placards must be sealed by a licensed engineer and approved by the authority having jurisdiction for your building. See our terms.