Crop Rotation Planner
Plan crop rotation by bed and plant family, spot same-family disease conflicts, project future seasons, and compare family balance with tables and heatmaps.Rotation result
| Crop | Assigned bed | Family | Risk | Reason | Action | Copy |
|---|---|---|---|---|---|---|
| {{ row.crop }} | {{ row.bed }} | {{ row.family }} | {{ row.risk }} | {{ row.reason }} | {{ row.action }} |
| Crop | Family | Feeder role | Rotation group | Family pressure | Note | Copy |
|---|---|---|---|---|---|---|
| {{ row.crop }} | {{ row.family }} | {{ row.demand }} | {{ row.group }} | {{ row.pressure }} | {{ row.note }} |
| Bed | Recent family | Planned crops | Status | Next step | Copy |
|---|---|---|---|---|---|
| {{ row.bed }} | {{ row.recentFamily }} | {{ row.plannedCrops }} | {{ row.status }} | {{ row.nextStep }} |
| Season | Bed | Crop line | Family | Risk | Rotation note | Copy |
|---|---|---|---|---|---|---|
| {{ row.seasonLabel }} | {{ row.bed }} | {{ row.cropLine }} | {{ row.family }} | {{ row.risk }} | {{ row.note }} |
{{ jsonOutput }}
Introduction:
Crop rotation places related crops in different beds across seasons so the same plant family is not fed by the same patch of soil every year. In a vegetable garden, that usually means tracking nightshades, brassicas, legumes, cucurbits, alliums, roots, leafy crops, and other families by bed rather than only remembering the crop name.
Plant families matter because related crops often attract similar soil-borne diseases, insects, nematodes, and nutrient demands. Tomatoes, peppers, potatoes, and eggplants are different crops, but they are all nightshades. Repeating them in one bed can keep a susceptible host available for problems that survive in soil or residue.
Rotation is especially useful in small raised-bed gardens where every space is reused. A written bed history makes the next planting decision more concrete: which bed had a recent same-family crop, which bed had a heavy feeder, and which bed had legumes that may make a better follow-on space for demanding crops.
Rotation does not make a bed safe from disease. Some problems last longer than a short schedule, and some pests use multiple hosts. Treat rotation as a planning guardrail that works best with sanitation, resistant varieties, mulch or drip watering, and notes from local extension guidance.
How to Use This Tool:
Start from the bed history you actually trust, then let the planner compare each next-season crop against those recent families and bed loads.
- Enter Bed history with one bed per line. Use a colon after the bed name and separate seasons with a pipe, newest season first, such as
Bed A: 2025 tomato, pepper | 2024 bean. The summary should update the bed count and the visual bed sequence. - Enter Next crops with one planned crop per line. Separate lines keep the Assignment Plan, Family Ledger, and exported records readable.
- Set the Rotation interval from 2 to 6 seasons. Three seasons is a common starting point for home gardens; use a longer interval when a family has had blight, clubroot, wilt, nematodes, or repeated pest pressure.
- Set Bed capacity to the number of crop lines each bed can reasonably hold. Use 1 for a single-family bed and a higher value for mixed beds, succession blocks, or compact raised-bed plans.
- Choose Disease pressure and Planning goal. Higher disease pressure increases same-family penalties, while the goal changes the balance among disease caution, feeder balance, and compact bed use.
- Open Advanced when you need a longer future projection or want the sequence to stay strict to the crop list instead of inserting cover-crop breaks.
- Read Planner notes before trusting the plan. Unknown crop families, target lists that exceed capacity, and two-season intervals all need review before planting.
- Use Assignment Plan for the recommended bed, Family Ledger for crop-family checks, Bed Guidance for per-bed follow-up, Season Sequence for future seasons, Family Conflict Heatmap for all crop-to-bed risks, Family Mix Timeline for projected family balance, and JSON when you need a structured copy of the run.
Interpreting Results:
The Assignment Plan is the first planting draft, but the Family Conflict Heatmap is the better check when you want to see alternatives. A crop can be assigned to the lowest-risk available bed while another bed still shows a high conflict for that same crop.
| Risk label | What it usually means | Best follow-up |
|---|---|---|
| Low | No same-family carryover was found inside the selected interval, or a legume break helped a heavy feeder. | Plant if the family name is correct, then record the family for next season. |
| Medium | A same-family crop, exact crop repeat, heavy-feeder pattern, or capacity concern deserves a closer look. | Use the bed only with notes, cleanup, compost where needed, and a plan to avoid repeating the family next season. |
| High | The recent history conflicts strongly with the planned crop family under the selected interval and pressure settings. | Choose another bed, add an unrelated break crop, or extend the interval before repeating that family. |
Do not treat a Low label as proof that the bed is safe from disease. Verify every Mixed / unknown family in the Family Ledger, and compare the heatmap against your own notes about diseased residue, flooded beds, contaminated tools, or nearby weeds that may host the same problem.
The planner assigns crops in the order listed under Next crops. If the first crop consumes the best bed, a later crop may receive a capacity warning or a weaker placement. Reordering the crop list can be a useful way to test which crop is hardest to place. The future sequence is a planning projection, so treat cover-crop rows and later-season assignments as prompts for review rather than fixed planting instructions.
Technical Details:
A rotation score starts with plant-family history. Each target crop is matched to a recognized family, feeder role, and disease-sensitivity note where the crop name is known. Each bed history line is split into seasons, with the newest season carrying the strongest effect and older seasons fading until they fall outside the selected rotation interval.
The score is not a plant pathology model. It is a deterministic planning score that gives weight to the main rotation concerns a gardener can act on before planting: repeating the same family, repeating the exact crop, following heavy feeders with more heavy feeders, using legumes before demanding crops, and crowding more crop lines into a bed than the configured capacity allows.
The Season Sequence starts with the next-season assignment, then scores later seasons against the projected bed history created by earlier planned seasons. When cover-crop breaks are allowed, the projection can insert a break row if every listed crop would be a high-risk repeat for that bed. The Family Mix Timeline chart counts the crop families by projected season so repeated dominance is visible before you export the plan.
Formula Core:
For each crop-to-bed pair, the base score is clamped to a 0 to 100 range and rounded to a whole number for display.
Here N is the selected rotation interval, i is the season index with 0 as the newest season, r is the recency weight, F is same-family pressure, C is exact-crop pressure, H is recent heavy-feeder pressure, D is the disease-sensitive family add-on, L is the legume credit for a heavy feeder, and S is the displayed score.
| Score part | Rule | Effect on score |
|---|---|---|
| Same family | The target family appears in a season inside the selected interval. | 42 x recency x disease-pressure weight x planning-goal family weight. |
| Exact crop repeat | The same normalized crop name appears in that bed history. | 12 x recency x disease-pressure crop weight. |
| Disease-sensitive add-on | A disease-sensitive target family also has a same-family hit. | Adds 8 x disease-pressure weight x planning-goal family weight. |
| Heavy feeder after heavy feeder | A heavy-feeder target follows a recent heavy-feeder season. | Adds 14 for the newest season or 7 for the previous season, adjusted by the planning-goal feeder weight. |
| Legume before heavy feeder | A heavy-feeder target follows recent legumes. | Subtracts up to 10 for the newest season or 5 for the previous season, adjusted by the planning-goal feeder weight. |
| Unknown family | The crop name is not recognized. | Starts with an 18 point caution score and triggers a planner note. |
| No bed history | A target crop has no usable history to compare. | Starts with an 8 point provisional score. |
| Score | Risk label | Boundary rule |
|---|---|---|
| 0 to 24 | Low | Scores below 25 are treated as low risk. |
| 25 to 59 | Medium | Scores from 25 through 59 are watch placements. |
| 60 to 100 | High | Scores of 60 or higher are conflict placements. |
Disease pressure changes the family and exact-crop weights. Low pressure reduces family and exact-crop pressure, moderate pressure leaves them unchanged, and high pressure increases them. The planning goal also changes the balance: disease caution raises the family weight, fertility planning raises the heavy-feeder weight, and compact planning reduces the penalty for putting more crop lines into one bed.
Assignment uses the base score plus bed-load adjustments. Each crop is placed into the lowest-scoring candidate bed available at that point in the list. Existing load adds a compactness penalty, a bed that is already at capacity receives a larger spillover penalty, and a small mixed-family penalty discourages unnecessary mixing when another bed is close. This makes the output practical for raised beds, but it is not a global optimization across every possible crop order.
| Family or group in results | Examples recognized by the planner | Rotation note |
|---|---|---|
| Solanaceae | Tomato, tomatillo, pepper, potato, eggplant. | Often gets extra caution under blight, wilt, and nightshade disease history. |
| Brassicaceae | Cabbage, broccoli, kale, cauliflower, Brussels sprouts, collards, radish, turnip, rutabaga, arugula, bok choy, mustard greens. | Watch repeated brassica beds where clubroot, flea beetles, or caterpillar pressure has been high. |
| Apiaceae | Carrot, parsnip, parsley, celery, celeriac, dill, cilantro, coriander, fennel. | Useful as a lighter-feeding break when soil is loose and family history is clean. |
| Fabaceae | Bean, bush bean, pole bean, pea, cowpea, fava bean, lentil, soybean, edamame, clover, vetch. | Uses the nitrogen fixer feeder role and can reduce the score for a following heavy feeder when the recent bed history supports it. |
| Cucurbitaceae | Cucumber, squash, zucchini, courgette, pumpkin, melon, watermelon, gourd. | Often needs space and cleanup where mildew, vine borer, or cucumber beetle pressure repeats. |
| Amaryllidaceae | Onion, garlic, leek, shallot, scallion, chive. | Keep alliums moving where bulb disease, onion maggot, or white rot history matters. |
| Other recognized groups | Lettuce and related composites, corn and grains, spinach and beet relatives, mint-family herbs, okra, sweet potato, and common perennial berries. | Use the Family Ledger note to decide whether the family label is detailed enough for your garden. |
| Mixed / unknown | Any crop name outside the recognized list. | Verify the family before treating the placement as safe. |
A simple mechanism walkthrough shows how the pieces combine. With a 3 season interval, a tomato planned for a bed that had tomato in the newest season receives full same-family pressure, exact-crop pressure, and the disease-sensitive add-on, so the score can cross into High. The same tomato planned after a recent legume bed has no same-family hit and may receive a legume credit, so the score can remain Low even though compost and cleanup may still be useful.
Limitations and Privacy:
The result is a garden planning estimate. It does not diagnose disease, identify pathogens, test soil, or know which weeds and crop debris stayed in the bed. Local extension advice, soil tests, resistant varieties, sanitation, and careful watering still matter when disease pressure is real.
- The crop-family list is intentionally limited. If Planner notes reports an unknown family, check the crop name and verify the family before using the risk label.
- A 3 to 4 season break is a common home-garden target, but some long-lived soil problems may need longer breaks or non-rotation controls.
- Capacity warnings are practical bed-space warnings, not crop-spacing advice. Confirm real spacing, trellis needs, airflow, and harvest access before planting.
- The bed and crop text is evaluated in the browser for the planning run. Treat copied JSON, downloads, and any shared browser address as your own records, and remove private site notes before sharing them.
Worked Examples:
Four raised beds with mixed history
A bed history with tomato and pepper in Bed A, cabbage and kale in Bed B, beans and peas in Bed C, and carrots and onions in Bed D gives the planner enough contrast to place new crops. With next crops of Tomato, Cabbage, Carrot, Bush bean, and Cucumber, a 3 season interval, capacity of 2, moderate disease pressure, and the balanced goal, the Assignment Plan places Tomato and Cabbage in Bed C with Low risk because recent legumes make that bed a stronger break than a recent nightshade or brassica bed.
The Family Conflict Heatmap still shows why the alternatives matter. Tomato against Bed A is High because of the recent Solanaceae history, while Tomato against Bed D is Medium because tomato appeared one season farther back.
Tight beds under high disease pressure
If Bed A has tomato, pepper, and eggplant across the last three seasons, Bed B has cucumber, squash, and melon, and the next crops are Tomato, Pepper, and Zucchini, the heatmap will mark Tomato and Pepper in Bed A as High and Zucchini in Bed B as High under a 4 season interval with high disease pressure.
With Bed capacity set to 1, the Assignment Plan may still place Pepper into a bed that is already full because the only other bed is a stronger family conflict. That is a capacity problem, not proof that the planting is wrong. Use the reason text and Bed Guidance to decide whether to split the crop, add a container, or change the crop order.
Unknown crop names
A history line such as Bed A: 2025 sunchoke | 2024 mystery greens and a target crop such as Yacon can produce a Planner notes warning because those names are outside the recognized family list. The Family Ledger will show Mixed / unknown, and the Assignment Plan can still show Low because no same-family match was found.
That low score is provisional. Check the crop family with local guidance or a seed source, then rerun the plan with a recognized family-related crop name if needed.
FAQ:
Why does plant family matter more than the exact crop name?
Many garden problems follow related hosts. Tomato after pepper can still be a nightshade repeat even though the exact crop name changed, so the planner scores the family match first and the exact crop repeat as a smaller add-on.
Is a 3 season interval always enough?
No. Three seasons is a useful planning starting point, but the Rotation interval can be raised to 4, 5, or 6 seasons when a bed has known disease, nematode, or repeated pest pressure.
Why did a crop show as Mixed / unknown?
The crop name did not match the recognized list. Try a simpler common name, check spelling, or verify the plant family elsewhere before trusting the Assignment Plan risk label.
Can this work for containers or very small gardens?
Yes, if you treat each container or group of containers as a bed line. Use Bed capacity and the compact planning goal to test tight layouts, then confirm real spacing and watering needs outside the rotation score.
Is my garden plan uploaded for a crop lookup?
No crop database lookup is required for the planning run. The entered bed and crop text is evaluated in the browser, while copied rows, JSON, and downloads are records you choose to create.
Glossary:
- Plant family
- A botanical relationship group used to spot crops that may share pests, diseases, and nutrient patterns.
- Rotation interval
- The number of recent seasons checked before repeating the same family in a bed.
- Disease pressure
- The selected caution level that increases or reduces penalties for repeated family and crop history.
- Heavy feeder
- A crop group that tends to draw heavily on soil fertility and can create a watch note after another heavy-feeder season.
- Nitrogen fixer
- A legume role that can make a bed a better follow-on candidate for a heavy feeder.
- Bed capacity
- The configured number of planned crop lines each bed can reasonably hold.
- Season Sequence
- The result table that projects each bed through the selected future horizon after the next-season assignment.
- Family Mix Timeline
- The chart view that counts planned crop families by projected season so overused families are easier to spot.
- Family Conflict Heatmap
- The result view that compares every next crop against every bed before the final assignment is chosen.
References:
- Preventing plant diseases in the garden, University of Minnesota Extension, reviewed 2021.
- Raised bed gardens, University of Minnesota Extension, reviewed 2026.
- Rotating crops for a more resilient garden, Illinois Extension, February 28, 2025.
- Disease Prevention in Home Vegetable Gardens, University of Missouri Extension, reviewed March 2026.
- Organic Vegetable Gardening Techniques, University of Missouri Extension.