How many fish can I put in my tank?
As many as your water changes can keep clean, which is a number you can calculate and then check. A fish eats in proportion to its metabolism, its food is mostly protein, protein is nitrogen, and the nitrogen it doesn't grow into leaves as ammonia and ends up as nitrate. So a stock list is a nitrate production rate, and a nitrate production rate plus a ceiling is a water-change schedule — the same arithmetic the water change calculator runs the other way. A classic 55 gallon community — 12 neon tetras, 8 bronze / albino corys, 2 bristlenose plecos, 2 german blue rams — makes about 1.44 ppm of nitrate a day, 10.1 a week, and a 25 % weekly change holds it under 40 ppm — moderately stocked — an ordinary, well-kept community, and the two plecos are 48 % of it on their own. Add five angelfish and it is 26.7 ppm a week and a 67 % change; put one oscar in the same tank and the fish alone is 19.1 ppm a week — a 48 % change every week, forever. The tool builds the list, does the sum, and prints the checks the sum can't make.
A 5 cm tetra weighs about 1.1 g (W = 0.012·L³, times 0.7 for a lean body). An adult eats about 2 % of its mass a day at that size, scaling as mass0.75 — Kleiber's law, the same exponent behind the one-inch-per-gallon guide — so 21 mg of flake. Flake is ~45 % protein, protein 16 % nitrogen, an adult keeps a quarter and excretes the rest, and nitrate weighs 4.43× its nitrogen: 239 mg of nitrate per gram of food. In 100 L the tetra adds 0.05 ppm a day; a 30 cm oscar (583 g, 2.4 g of food) adds 5.68 — 114× the tetra from 6× the length. Every one of those numbers is an assumption, and the model is honestly ±2×: two nitrate tests a week apart on your own tank replace all of it, which is the calibration the tool asks for.
Why a stocking percentage is the wrong answer
The other calculators turn the same idea into a percentage of a hidden capacity, then add and subtract credits for filtration and plants. Two problems. A filter converts ammonia to nitrate; it removes nothing, so "filtration capacity" is a statement about whether the biofilter keeps up — which any mature filter of sane size does — not about how many fish the tank holds. What removes nitrate is the water change, and only the water change has a number: the fraction that holds a ceiling is rise ÷ ceiling, weekly. And a percentage hides the assumptions that produced it, so when a keeper's test kit disagrees there is nothing to adjust. This page's figure is a nitrate rate you can measure against; if your tank rises 20 ppm a week where the tool says 10, you feed heavier than the model and you know it now. Plants do take some nitrate — a heavily planted tank might halve the rise — which is why the ceiling for a planted tank is lower and the measurement matters more.
What the number can't score: the flags
Schooling, tank length, temperature, hardness and temperament are not arithmetic, and pretending they are — five points off for a barb — is how the black boxes go wrong. The tool states each as a flag with its reason. Schooling: below the group size a shoaling species needs, it is stressed regardless of nitrate. Length: a fish wants a tank about 4× its adult length, 6× if it is a swimmer — a 30 cm oscar or bala shark in a 4 ft tank is a stop, not a warning. Water: the tool intersects every species' temperature, pH and hardness windows and prints what is left; a neon-and-ram community has one degree of overlap, which is the sort of thing that is true and that nobody tells you. Temperament: a predator eats anything under about a third of its length; fin-nippers go on the same line as long-finned fish; two of a solitary species is a fight. And fresh and salt water don't mix, which the tool treats as the only true stop. What it will not do is tell you a species is "compatible" — nothing on this site pretends to know a fish's personality.
The tool's number is a forecast; the tank's number is a fact. Test nitrate, wait a week with no water change, test again: the rise is your stocking level, in the only unit that matters, and it already contains the species, the feeding, the plants and the filter. Put that rise into the water change calculator and it gives the schedule; put it beside the tool's forecast and the ratio tells you whether you feed like the model or twice as much. Add fish a few at a time, through quarantine, and re-test after each — the biofilter follows the load in days, the nitrate rise tells you where you are in weeks.
The species table
One row per species, and nothing else: adult length as kept in aquaria, the body shape the waste model uses, the group it needs, its temperament as the flags use it, and its water window. Sizes are rounded from FishBase and Seriously Fish maxima to what tank-raised fish actually reach; windows are the hobby consensus and match the parameters chart. Salt-water rows share one window. This is not a care guide and does not try to be — if a fish is missing, pick the closest build and size, and the number will be near enough for a forecast that a test kit is going to correct anyway.
| Species | Adult | Build | Group | Temperament | °C | pH | dGH | 1-inch equiv. |
|---|---|---|---|---|---|---|---|---|
| Neon tetra Paracheirodon innesi | 3 cm | slender | 6+ | peaceful | 22–26 | 6–7.5 | 1–10 | 1.1 |
| Cardinal tetra Paracheirodon axelrodi | 4 cm | slender | 6+ | peaceful | 24–28 | 5–7 | 1–8 | 2.1 |
| Ember tetra Hyphessobrycon amandae | 2 cm | slender | 8+ | peaceful | 23–28 | 6–7.5 | 1–10 | 0.4 |
| Rummy-nose tetra Hemigrammus rhodostomus | 5 cm | slender | 8+ | peaceful | 24–28 | 5.5–7 | 1–8 | 3.5 |
| Black skirt tetra Gymnocorymbus ternetzi | 6 cm | deep | 6+ | semi · nipper | 21–26 | 6–7.5 | 3–15 | 8.9 |
| Serpae tetra Hyphessobrycon eques | 4 cm | deep | 8+ | semi · nipper | 22–27 | 6–7.5 | 3–15 | 3.6 |
| Bleeding heart tetra Hyphessobrycon erythrostigma | 7 cm | deep | 6+ | peaceful | 23–28 | 6–7.5 | 3–12 | 12.6 |
| Congo tetra Phenacogrammus interruptus | 8 cm | deep | 6+ | peaceful | 23–27 | 6–7.5 | 3–15 | 17 |
| Harlequin rasbora Trigonostigma heteromorpha | 4.5 cm | standard | 8+ | peaceful | 22–27 | 6–7.5 | 2–12 | 3.6 |
| Chili rasbora Boraras brigittae | 2 cm | slender | 8+ | peaceful | 22–27 | 5–7 | 1–8 | 0.4 |
| Zebra danio Danio rerio | 5 cm | slender | 6+ | peaceful | 18–25 | 6.5–7.5 | 3–15 | 3.5 |
| White cloud mountain minnow Tanichthys albonubes | 4 cm | slender | 6+ | peaceful · coldwater | 15–22 | 6.5–7.5 | 3–15 | 2.1 |
| Cherry barb Puntius titteya | 5 cm | standard | 6+ | peaceful | 22–27 | 6–7.5 | 3–15 | 4.6 |
| Tiger barb Puntigrus tetrazona | 7 cm | deep | 8+ | semi · nipper | 22–27 | 6–7.5 | 3–15 | 12.6 |
| Rosy barb Pethia conchonius | 12 cm | standard | 6+ | peaceful | 18–24 | 6–7.5 | 3–15 | 32.9 |
| Denison barb Sahyadria denisonii | 15 cm | slender | 6+ | peaceful | 18–25 | 6.5–7.5 | 3–15 | 41.6 |
| Boesemani rainbowfish Melanotaenia boesemani | 11 cm | deep | 6+ | peaceful | 24–28 | 7–8 | 8–20 | 34.8 |
| Glass catfish Kryptopterus vitreolus | 10 cm | slender | 6+ | peaceful | 22–26 | 6–7.5 | 3–12 | 16.7 |
| Guppy Poecilia reticulata | 4.5 cm | standard | 3+ | peaceful · longfin | 22–27 | 7–8.2 | 8–20 | 3.6 |
| Endler's livebearer Poecilia wingei | 3 cm | slender | 3+ | peaceful | 22–27 | 7–8 | 8–20 | 1.1 |
| Platy Xiphophorus maculatus | 6 cm | deep | 3+ | peaceful | 21–26 | 7–8.2 | 10–20 | 8.9 |
| Swordtail Xiphophorus hellerii | 12 cm | standard | 3+ | peaceful | 21–27 | 7–8.2 | 10–20 | 32.9 |
| Molly Poecilia sphenops | 8 cm | deep | 3+ | peaceful · brackish-ok | 24–28 | 7.5–8.5 | 12–25 | 17 |
| Betta (Siamese fighting fish) Betta splendens | 6 cm | standard | 1 | semi · longfin, solitary | 24–29 | 6.5–7.5 | 3–10 | 6.9 |
| Dwarf gourami Trichogaster lalius | 8 cm | deep | 1 | peaceful · longfin | 24–28 | 6–7.5 | 4–12 | 17 |
| Honey gourami Trichogaster chuna | 5 cm | deep | 2+ | peaceful · longfin | 22–28 | 6–7.5 | 4–15 | 5.9 |
| Pearl gourami Trichopodus leerii | 12 cm | deep | 3+ | peaceful · longfin | 24–28 | 6–7.5 | 3–12 | 42.4 |
| Angelfish Pterophyllum scalare | 15 cm | deep | 5+ | semi · longfin | 24–29 | 6–7.5 | 3–10 | 70 |
| Discus Symphysodon spp. | 18 cm | deep | 6+ | peaceful | 27–31 | 5.5–6.8 | 1–6 | 105.5 |
| German blue ram Mikrogeophagus ramirezi | 6 cm | deep | 2+ | peaceful | 26–30 | 5.5–7 | 2–8 | 8.9 |
| Bolivian ram Mikrogeophagus altispinosus | 8 cm | deep | 2+ | peaceful | 23–27 | 6–7.5 | 3–10 | 17 |
| Apistogramma (cacatuoides) Apistogramma cacatuoides | 8 cm | standard | 2+ | semi | 24–28 | 6–7.5 | 2–10 | 13.2 |
| Kribensis Pelvicachromis pulcher | 10 cm | standard | 2+ | semi | 24–28 | 6–7.5 | 3–12 | 21.8 |
| Convict cichlid Amatitlania nigrofasciata | 12 cm | deep | 2+ | aggressive | 24–28 | 6.5–8 | 8–20 | 42.4 |
| Firemouth Thorichthys meeki | 15 cm | deep | 2+ | semi | 24–28 | 6.5–8 | 8–15 | 70 |
| Jack Dempsey Rocio octofasciata | 22 cm | deep | 1 | aggressive | 24–28 | 6.5–8 | 8–15 | 165.6 |
| Oscar Astronotus ocellatus | 30 cm | stocky | 1 | predator | 24–28 | 6.5–7.5 | 5–15 | 401.9 |
| Electric blue acara Andinoacara pulcher | 15 cm | deep | 2+ | semi | 24–28 | 6.5–7.5 | 5–15 | 70 |
| Yellow lab (mbuna) Labidochromis caeruleus | 10 cm | standard | 6+ | semi | 24–27 | 7.8–8.6 | 10–20 | 21.8 |
| Peacock cichlid Aulonocara spp. | 14 cm | standard | 4+ | semi | 24–27 | 7.8–8.6 | 10–20 | 46.5 |
| Bronze / albino cory Corydoras aeneus | 7 cm | standard | 6+ | peaceful | 22–26 | 6–7.5 | 3–12 | 9.8 |
| Panda cory Corydoras panda | 5 cm | standard | 6+ | peaceful | 20–25 | 6–7.5 | 2–10 | 4.6 |
| Pygmy cory Corydoras pygmaeus | 3 cm | slender | 8+ | peaceful | 22–26 | 6–7.5 | 2–10 | 1.1 |
| Kuhli loach Pangio kuhlii | 10 cm | slender | 6+ | peaceful | 24–28 | 6–7 | 2–10 | 16.7 |
| Bristlenose pleco Ancistrus spp. | 12 cm | stocky | 1 | peaceful | 22–27 | 6.5–7.5 | 3–15 | 51.1 |
| Common pleco Pterygoplichthys pardalis | 40 cm | stocky | 1 | peaceful | 22–28 | 6.5–7.5 | 3–15 | 767.7 |
| Otocinclus Otocinclus spp. | 4 cm | slender | 6+ | peaceful | 22–26 | 6.5–7.5 | 3–12 | 2.1 |
| Siamese algae eater Crossocheilus oblongus | 15 cm | slender | 3+ | peaceful | 24–26 | 6.5–7.5 | 3–12 | 41.6 |
| Clown loach Chromobotia macracanthus | 25 cm | standard | 5+ | peaceful | 25–30 | 6–7.5 | 3–12 | 171.6 |
| Rainbow shark Epalzeorhynchos frenatum | 15 cm | slender | 1 | semi · solitary | 24–27 | 6.5–7.5 | 3–15 | 41.6 |
| Pictus catfish Pimelodus pictus | 12 cm | slender | 4+ | predator | 23–28 | 6.5–7.5 | 3–15 | 25.2 |
| Bala shark Balantiocheilos melanopterus | 30 cm | slender | 5+ | peaceful | 24–28 | 6.5–7.5 | 3–15 | 197.9 |
| Silver dollar Metynnis spp. | 15 cm | deep | 6+ | peaceful | 24–28 | 6–7.5 | 3–15 | 70 |
| Fancy goldfish Carassius auratus (fancy) | 15 cm | stocky | 2+ | peaceful · coldwater | 18–23 | 7–8 | 8–20 | 84.5 |
| Common / comet goldfish Carassius auratus | 30 cm | stocky | 2+ | peaceful · coldwater | 15–24 | 7–8 | 8–20 | 401.9 |
| Cherry shrimp Neocaridina davidi | 3 cm | slender | 6+ | peaceful · shrimp | 20–26 | 6.5–7.8 | 6–10 | 1.1 |
| Amano shrimp Caridina multidentata | 5 cm | slender | 3+ | peaceful · shrimp | 20–27 | 6.5–7.5 | 4–15 | 3.5 |
| Ocellaris clownfish Amphiprion ocellaris | 8 cm | deep | 2+ | semi | 24–27 | 8.1–8.4 | salt | 17 |
| Yellow tang Zebrasoma flavescens | 18 cm | deep | 1 | semi · solitary | 24–27 | 8.1–8.4 | salt | 105.5 |
| Blue (hippo) tang Paracanthurus hepatus | 25 cm | deep | 1 | peaceful | 24–27 | 8.1–8.4 | salt | 220.8 |
| Kole tang Ctenochaetus strigosus | 15 cm | deep | 1 | semi · solitary | 24–27 | 8.1–8.4 | salt | 70 |
| Royal gramma Gramma loreto | 8 cm | standard | 1 | peaceful | 24–27 | 8.1–8.4 | salt | 13.2 |
| Six-line wrasse Pseudocheilinus hexataenia | 8 cm | slender | 1 | semi · solitary | 24–27 | 8.1–8.4 | salt | 10.1 |
| Firefish Nemateleotris magnifica | 8 cm | slender | 1 | peaceful | 24–27 | 8.1–8.4 | salt | 10.1 |
| Banggai cardinalfish Pterapogon kauderni | 8 cm | deep | 2+ | peaceful | 24–27 | 8.1–8.4 | salt | 17 |
| Green chromis Chromis viridis | 8 cm | standard | 6+ | peaceful | 24–27 | 8.1–8.4 | salt | 13.2 |
| Coral beauty angel Centropyge bispinosa | 10 cm | deep | 1 | semi · solitary | 24–27 | 8.1–8.4 | salt | 28.1 |
| Flame angel Centropyge loricula | 10 cm | deep | 1 | semi · solitary | 24–27 | 8.1–8.4 | salt | 28.1 |
| Lawnmower blenny Salarias fasciatus | 12 cm | slender | 1 | peaceful · solitary | 24–27 | 8.1–8.4 | salt | 25.2 |
| Watchman goby Cryptocentrus cinctus | 10 cm | slender | 1 | peaceful | 24–27 | 8.1–8.4 | salt | 16.7 |
| Foxface rabbitfish Siganus vulpinus | 25 cm | deep | 1 | peaceful | 24–27 | 8.1–8.4 | salt | 220.8 |
| Yellowtail damsel Chrysiptera parasema | 7 cm | standard | 1 | aggressive | 24–27 | 8.1–8.4 | salt | 9.8 |
"1-inch equiv." is what one adult costs in the old rule's currency — length^2.25 × body build — so a 30 cm oscar is 402 one-inch fish, not 12. Sizes and windows: FishBase / Seriously Fish, rounded to aquarium adults; hobby consensus for water.
My nitrate is fine but the fish look stressed — why?
Because nitrate is the arithmetic half and the flags are the other half. A school of four rummy-noses, a tiger barb next to a betta, a rainbow shark that has decided the tank is his, a yellow tang in a 3 ft cube, discus at 24 °C — none of those shows up on a test kit and all of them show up in the fish. The tool prints them because a percentage can't. The other quiet one is rate of change: a tank stocked to its final list in a weekend has a biofilter sized for the tank of the week before, and the ammonia that follows is not a stocking problem but a scheduling one — three or four fish a fortnight, tested between. If everything is green and the fish are still wrong, the answer is not on this page; it is in a species reference, and that is on purpose.