Free tool
Stocking & Bioload Planner
Enter your tank, filter and planned fish to get three things: how much water the tank really holds once substrate and decor are in, a bioload estimate against that volume, and a list of compatibility problems such as temperature mismatches or fin nippers next to long-finned fish. Every number is produced by the formulas explained below the tool, so you can check the reasoning instead of trusting a black box.
Results
How to use the planner
- Pick your tank size or type the dimensions. Presets use the common outside dimensions of US standard tanks, so the real water volume is always a little lower than the label.
- Enter the substrate depth at the front of the tank and a rough percentage for rocks and wood. A 10% default suits a tank with a couple of pieces of driftwood.
- Enter the rated flow printed on your filter and choose how planted the tank is.
- Add each species with the number you plan to keep. Adjust counts in the table; the results update as you type.
- Read the flags first. A red “Problem” matters more than the percentage: a lightly stocked tank can still fail because two species need different temperatures.
The example that loads by default is a 20-gallon high with 10 neon tetras, 6 panda corydoras, a honey gourami and a nerite snail. You can copy the link at any point to save or share your plan; the whole configuration is stored in the address.
How the planner calculates
Step 1: water volume
Gross volume in US gallons is length × width × height ÷ 231 with all dimensions in inches (231 cubic inches make one US gallon; 1 gallon = 3.785 liters). Substrate volume is length × width × substrate depth ÷ 231. The remaining water is then reduced by your rock-and-wood percentage:
net gallons = (gross − substrate) × (1 − decor% ÷ 100)
For the default 20-gallon high (24 × 12 × 16 in) that is 4,608 ÷ 231 = 19.9 gal gross, minus 576 ÷ 231 = 2.5 gal of substrate, leaving 17.5 gal, and 17.5 × 0.9 = 15.7 gal of actual water. Losing about a fifth of the labeled volume is normal and is the single most overlooked number in stocking.
Step 2: bioload units per fish
Waste production follows body mass far more than body length, and body mass grows roughly with the cube of length. Metabolic rate grows a little more slowly than mass, so the planner uses an exponent of 2.5 and normalizes to a 5 cm (2 in) fish:
units per fish = shape factor × (adult length in cm ÷ 5)2.5
The shape factor adjusts for build: about 0.9 for slim tetras, 1.0 for average bodies, 1.1–1.2 for deep or heavy fish such as corydoras and plecos, 1.5 for goldfish, and 0.3–0.6 for eel-shaped loaches and invertebrates. A neon tetra (3.5 cm) scores 0.37 units, a panda cory 0.85, a bristlenose pleco 10.71 and a fancy goldfish 23.38. That spread is the core reason the inch-per-gallon rule misleads: one 12 cm pleco is not equivalent to three or four 3.5 cm neons, it produces roughly as much waste as 29 of them. See why the inch-per-gallon rule fails for the full argument.
Step 3: capacity
Capacity starts at one unit per net gallon and is adjusted for filtration and plants:
capacity = net gallons × filtration factor × planting factor
| Rated turnover (flow ÷ gross gallons) | Filtration factor |
|---|---|
| Under 4× per hour | 0.80 |
| 4–6× per hour | 1.00 |
| 6–10× per hour | 1.15 |
| Over 10× per hour | 1.25 |
Planting factors are 1.00 for no live plants, 1.05 for some plants and 1.15 for a heavily planted tank with fast growers, because growing plants take up ammonia and nitrate. The factors are capped deliberately: more filtration improves ammonia processing and oxygenation but does not remove nitrate, and it does not create swimming space. Filter ratings are measured with no media and no height to pump against, so real flow is lower; the filter flow guide explains by how much.
Step 4: stocking level and water changes
The stocking level is total units ÷ capacity. For the default example: 10 × 0.37 + 6 × 0.85 + 0.63 + 0.11 ≈ 9.50 units against 15.7 × 1.00 × 1.05 ≈ 16.5 units of capacity, or about 58%. The water change hint follows simple bands: up to 60% suggests 20–25% weekly, 60–90% about 30%, 90–110% about 40% with frequent nitrate testing, and over 110% means the plan should change. The only way to know your real number is to measure nitrate before each water change; the water change math guide shows how to turn those readings into a schedule.
Compatibility checks
- Temperature and pH: the planner intersects each species’ range. No overlap in temperature is a problem; no overlap in pH is a caution, since stability matters more than an exact pH for most captive-bred fish (see GH, KH and pH explained).
- Group size: schooling and shoaling species kept below their recommended minimum are flagged.
- Minimum tank size: compared with gross volume, with a 10% allowance because nominal tank sizes compute slightly low from outside dimensions.
- Behavior: known fin nippers alongside long-finned fish, more than one male betta, territorial cichlid species sharing a small floor, and predators with tank mates under one third of their length.
What the planner cannot tell you
This is a planning heuristic, not a measurement. It cannot see how much you feed, how mature your filter is, whether a fish is a juvenile that will triple in length, or how individual fish behave. Two tanks with the same score can end up with very different nitrate levels. Treat any result above roughly 80% as a reason to plan extra maintenance, and stock gradually into a fully cycled tank, a few fish at a time, testing ammonia and nitrite after each addition.
Species reference data
These are the values the planner uses. Sizes are typical adult standard length; temperature and pH are commonly cited husbandry ranges summarized from Seriously Fish and FishBase species pages. Sources disagree at the margins, and wild-caught fish often need narrower conditions than captive-bred ones.
| Species | Scientific name | Adult size | Units each | Temp °F (°C) | pH | Min group | Min tank |
|---|---|---|---|---|---|---|---|
| Neon tetra | Paracheirodon innesi | 1.4 in (3.5 cm) | 0.37 | 68–79 (20–26) | 5.0–7.5 | 8 | 10 gal |
| Cardinal tetra | Paracheirodon axelrodi | 1.8 in (4.5 cm) | 0.69 | 73–84 (23–29) | 4.5–7.5 | 8 | 20 gal |
| Ember tetra | Hyphessobrycon amandae | 0.8 in (2 cm) | 0.09 | 70–82 (21–28) | 5.0–7.5 | 8 | 10 gal |
| Black skirt tetra | Gymnocorymbus ternetzi | 2.2 in (5.5 cm) | 1.40 | 68–79 (20–26) | 6.0–8.0 | 6 | 20 gal |
| Serpae tetra | Hyphessobrycon eques | 1.6 in (4 cm) | 0.57 | 72–82 (22–28) | 5.0–7.8 | 8 | 20 gal |
| Rummy-nose tetra | Hemigrammus bleheri | 2.0 in (5 cm) | 0.90 | 75–84 (24–29) | 5.0–7.0 | 8 | 29 gal |
| Harlequin rasbora | Trigonostigma heteromorpha | 1.8 in (4.5 cm) | 0.77 | 72–82 (22–28) | 5.0–7.5 | 8 | 20 gal |
| Chili rasbora | Boraras brigittae | 0.8 in (2 cm) | 0.09 | 68–82 (20–28) | 4.0–7.0 | 8 | 5 gal |
| Zebra danio | Danio rerio | 1.8 in (4.5 cm) | 0.69 | 64–77 (18–25) | 6.0–8.0 | 6 | 20 gal |
| White Cloud Mountain minnow | Tanichthys albonubes | 1.4 in (3.5 cm) | 0.37 | 59–72 (15–22) | 6.0–8.0 | 6 | 10 gal |
| Cherry barb | Puntius titteya | 1.8 in (4.5 cm) | 0.77 | 73–81 (23–27) | 6.0–8.0 | 6 | 20 gal |
| Tiger barb | Puntigrus tetrazona | 2.4 in (6 cm) | 1.74 | 68–79 (20–26) | 6.0–8.0 | 7 | 29 gal |
| Guppy | Poecilia reticulata | 1.6 in (4 cm) | 0.57 | 72–82 (22–28) | 7.0–8.5 | 3 | 10 gal |
| Southern platy | Xiphophorus maculatus | 2.0 in (5 cm) | 1.10 | 68–79 (20–26) | 7.0–8.2 | 3 | 20 gal |
| Molly | Poecilia sphenops / latipinna | 3.5 in (9 cm) | 4.78 | 75–82 (24–28) | 7.5–8.5 | 3 | 29 gal |
| Green swordtail | Xiphophorus hellerii | 3.9 in (10 cm) | 5.66 | 72–82 (22–28) | 7.0–8.3 | 3 | 29 gal |
| Endler's livebearer | Poecilia wingei | 1.2 in (3 cm) | 0.28 | 75–86 (24–30) | 7.0–8.5 | 3 | 5 gal |
| Betta (male) | Betta splendens | 2.4 in (6 cm) | 1.58 | 75–86 (24–30) | 6.0–8.0 | 1 | 5 gal |
| Dwarf gourami | Trichogaster lalius | 2.4 in (6 cm) | 1.74 | 72–82 (22–28) | 6.0–7.5 | 1 | 10 gal |
| Honey gourami | Trichogaster chuna | 1.6 in (4 cm) | 0.63 | 72–82 (22–28) | 6.0–7.5 | 1 | 10 gal |
| Pearl gourami | Trichopodus leerii | 4.3 in (11 cm) | 7.90 | 75–82 (24–28) | 6.0–8.0 | 1 | 29 gal |
| Freshwater angelfish | Pterophyllum scalare | 4.7 in (12 cm) | 8.03 | 75–86 (24–30) | 6.0–7.5 | 1 | 40 gal |
| German blue ram | Mikrogeophagus ramirezi | 2.0 in (5 cm) | 1.10 | 79–86 (26–30) | 5.0–7.0 | 1 | 20 gal |
| Bolivian ram | Mikrogeophagus altispinosus | 3.1 in (8 cm) | 3.56 | 72–79 (22–26) | 6.0–8.0 | 1 | 29 gal |
| Kribensis | Pelvicachromis pulcher | 3.5 in (9 cm) | 4.78 | 75–82 (24–28) | 6.0–8.0 | 1 | 29 gal |
| Cockatoo dwarf cichlid | Apistogramma cacatuoides | 3.1 in (8 cm) | 3.24 | 75–84 (24–29) | 6.0–8.0 | 1 | 20 gal |
| Bronze corydoras | Corydoras aeneus | 2.6 in (6.5 cm) | 2.12 | 72–81 (22–27) | 6.0–8.0 | 6 | 20 gal |
| Panda corydoras | Corydoras panda | 1.8 in (4.5 cm) | 0.85 | 68–77 (20–25) | 6.0–7.5 | 6 | 20 gal |
| Pygmy corydoras | Corydoras pygmaeus | 1.0 in (2.5 cm) | 0.18 | 72–79 (22–26) | 6.0–8.0 | 8 | 10 gal |
| Bristlenose pleco | Ancistrus sp. | 4.7 in (12 cm) | 10.71 | 72–81 (22–27) | 6.0–7.8 | 1 | 29 gal |
| Otocinclus | Otocinclus spp. | 1.6 in (4 cm) | 0.57 | 70–79 (21–26) | 6.0–7.5 | 6 | 20 gal |
| Kuhli loach | Pangio kuhlii | 3.5 in (9 cm) | 2.17 | 75–86 (24–30) | 5.5–7.0 | 6 | 20 gal |
| Clown loach | Chromobotia macracanthus | 9.8 in (25 cm) | 55.90 | 77–86 (25–30) | 6.0–7.5 | 5 | 125 gal |
| Siamese algae eater | Crossocheilus oblongus | 5.5 in (14 cm) | 13.12 | 75–79 (24–26) | 6.0–8.0 | 1 | 55 gal |
| Fancy goldfish | Carassius auratus | 5.9 in (15 cm) | 23.38 | 59–75 (15–24) | 7.0–8.0 | 1 | 29 gal |
| Cherry shrimp | Neocaridina davidi | 1.2 in (3 cm) | 0.08 | 64–82 (18–28) | 6.5–8.0 | 10 | 5 gal |
| Amano shrimp | Caridina multidentata | 2.0 in (5 cm) | 0.40 | 64–82 (18–28) | 6.0–8.0 | 3 | 10 gal |
| Nerite snail | Neritina spp. | 1.0 in (2.5 cm) | 0.11 | 72–82 (22–28) | 7.0–8.5 | 1 | 5 gal |
| Mystery snail | Pomacea diffusa | 2.0 in (5 cm) | 0.90 | 68–82 (20–28) | 7.0–8.5 | 1 | 10 gal |
Frequently asked questions
Is 100% the maximum safe stocking level?
No. 100% simply means the estimate equals one unit per adjusted net gallon, a point where most community tanks need about 40% weekly water changes to keep nitrate low. Some keepers run higher with heavy planting and large water changes; many beginners are happier around 60–80%.
Why does adding a bigger filter raise capacity only a little?
A stronger filter converts ammonia faster and adds oxygen, but the nitrate it produces still has to be removed by water changes or plants, and fish still need room. Capping the filtration bonus at 25% keeps the planner from suggesting that equipment alone can fix an overstocked tank.
Should I use adult or current size?
Always adult size. Shops sell many species as juveniles; a bristlenose pleco sold at 5 cm grows to around 12 cm and scores roughly nine times higher at adult size.
Can I trust the minimum group sizes?
They are conservative community-tank recommendations. Larger groups usually mean calmer fish and less nipping, especially for tiger barbs and serpae tetras.