Enter your bed size and mature plant spacing to find how many plants fit, plus the number of rows and plants in each row.
Advanced options
Table of contents
How to use our Plant Spacing Calculator
- Measure the inside plantable length and width of your rectangular bed in feet. Use decimal feet, so 8 ft 6 in is 8.5 ft.
- Choose "Same spacing both ways" for a square grid, or choose "Different row spacing" when the planting directions give one distance within rows and another between rows.
- Enter mature center-to-center spacing from the seed packet, plant tag, or growing guide. In Advanced options, enter open edge space only if you intend to leave equal strips empty at both ends or both sides.
- Click Calculate. The first number is the whole-plant count; use the plants per row and row count to lay out the bed.
- Check that the result matches your drawing. Remove paths, supports, fixtures, curves, and existing plants from the measured rectangle before buying plants.

Definitions
Center to center: The distance from the center of one mature plant to the center of the next.
Plant spacing: The center-to-center distance between neighboring plants in the same row.
Row spacing: The center-to-center distance from one row to the next. It may be different from plant spacing.
Open space at each bed end or side: An empty strip left along both matching edges. The calculator removes this space before counting plant positions.
Plantable bed area: The rectangular area left after open edge space is removed.
Whole grid position: A complete plant position or row position that fits at the selected spacing. Partial positions are not counted.
Mature spacing: Spacing based on the plant's expected grown size, not its current container size. [1]
Common mistakes and quick fixes
Mistake: Using the current pot width as plant spacing.
Fix: Use mature center-to-center spacing from the seed packet, plant tag, or growing guide, not the seedling or container width.
Mistake: Measuring the outside frame instead of the part of the bed where plant centers can go.
Fix: Enter the inside plantable length and width.
Mistake: Entering 8 ft 6 in as 8.6 ft.
Fix: Convert inches to part of a foot: 6 in is 0.5 ft, so enter 8.5 ft.
Mistake: Using one spacing number when the directions list a separate distance between rows.
Fix: Choose "Different row spacing" and enter the stated distance in "Space between rows, center to center (in)".
Mistake: Expecting the count to include paths, borders, or fixed obstacles.
Fix: Measure only the usable rectangle, or enter equal open-edge strips in Advanced options when they describe the bed plan.
Limitations & Key Assumptions / Boundary Conditions
- This calculation is for one rectangular bed and one plant type arranged in straight, evenly spaced rows.
- It rounds down to complete positions. A bed can have positive plantable area but still fit zero complete positions at a wide spacing.
- It does not calculate staggered, triangular, curved, circular, or irregular layouts.
- Paths, trellises, irrigation equipment, existing plants, and interior obstacles are not removed automatically. Exclude them from the entered dimensions when possible.
- Open space is applied equally to both ends and equally to both sides. Use a hand-drawn plan for unequal edge gaps.
- Use spacing for the specific variety and growing method. Supports, pruning, airflow, and access needs can change the final layout.
Methodology
Calculation method
The calculator changes bed measurements from feet to inches, subtracts optional open strips at matching edges, and counts complete center-to-center positions. In the same-spacing setup, plant spacing is used in both directions. In the different-row-spacing setup, plant spacing controls positions along a row and row spacing controls the distance across the bed.
bed_length_in = bed_length_ft * 12
bed_width_in = bed_width_ft * 12
usable_length_in = bed_length_in - 2 * end_edge_allowance_in
usable_width_in = bed_width_in - 2 * side_edge_allowance_in
plants_per_row = floor(usable_length_in / plant_spacing_in)
rows = floor(usable_width_in / vertical_spacing_in)
total_plants = plants_per_row * rows
The floor function means round down to a whole number. It prevents a partial plant position or partial row from being included in the count.
Centered starting marks
Once the complete positions are counted, the occupied row span is centered within the usable length and the row span is centered within the usable width. The first-center results tell you where to mark from either outside edge.
first_plant_center_from_end_in = end_edge_allowance_in + (usable_length_in - (plants_per_row - 1) * plant_spacing_in) / 2
first_row_center_from_side_in = side_edge_allowance_in + (usable_width_in - (rows - 1) * vertical_spacing_in) / 2
Worked example
An 8 ft by 4 ft bed is 96 in by 48 in. With 12 in spacing and no open edge space, floor(96 / 12) is 8 plants per row and floor(48 / 12) is 4 rows. The result is 8 * 4 = 32 plants, with the first plant center and first row center each 6 in from the outside edge.
plantable_area_sq_ft = usable_length_in * usable_width_in / 144