Aquarium Stocking Calculator

Not a percentage. Your fish list becomes the nitrate it makes and the water change that holds it — arithmetic you can check against a test kit — and everything a number can't score is a flag with its reason.

The tank
The fish

    Adult sizes, as kept. One row per species — the table at the bottom shows what each row assumes.

    This stock

    —

    Add some fish.

      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.

      Where the nitrate number comes from — every constant

      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 honest stocking level is a nitrate test

      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.

      SpeciesAdultBuildGroupTemperament°CpHdGH1-inch equiv.
      Neon tetra
      Paracheirodon innesi
      3 cmslender6+peaceful22–266–7.51–101.1
      Cardinal tetra
      Paracheirodon axelrodi
      4 cmslender6+peaceful24–285–71–82.1
      Ember tetra
      Hyphessobrycon amandae
      2 cmslender8+peaceful23–286–7.51–100.4
      Rummy-nose tetra
      Hemigrammus rhodostomus
      5 cmslender8+peaceful24–285.5–71–83.5
      Black skirt tetra
      Gymnocorymbus ternetzi
      6 cmdeep6+semi · nipper21–266–7.53–158.9
      Serpae tetra
      Hyphessobrycon eques
      4 cmdeep8+semi · nipper22–276–7.53–153.6
      Bleeding heart tetra
      Hyphessobrycon erythrostigma
      7 cmdeep6+peaceful23–286–7.53–1212.6
      Congo tetra
      Phenacogrammus interruptus
      8 cmdeep6+peaceful23–276–7.53–1517
      Harlequin rasbora
      Trigonostigma heteromorpha
      4.5 cmstandard8+peaceful22–276–7.52–123.6
      Chili rasbora
      Boraras brigittae
      2 cmslender8+peaceful22–275–71–80.4
      Zebra danio
      Danio rerio
      5 cmslender6+peaceful18–256.5–7.53–153.5
      White cloud mountain minnow
      Tanichthys albonubes
      4 cmslender6+peaceful · coldwater15–226.5–7.53–152.1
      Cherry barb
      Puntius titteya
      5 cmstandard6+peaceful22–276–7.53–154.6
      Tiger barb
      Puntigrus tetrazona
      7 cmdeep8+semi · nipper22–276–7.53–1512.6
      Rosy barb
      Pethia conchonius
      12 cmstandard6+peaceful18–246–7.53–1532.9
      Denison barb
      Sahyadria denisonii
      15 cmslender6+peaceful18–256.5–7.53–1541.6
      Boesemani rainbowfish
      Melanotaenia boesemani
      11 cmdeep6+peaceful24–287–88–2034.8
      Glass catfish
      Kryptopterus vitreolus
      10 cmslender6+peaceful22–266–7.53–1216.7
      Guppy
      Poecilia reticulata
      4.5 cmstandard3+peaceful · longfin22–277–8.28–203.6
      Endler's livebearer
      Poecilia wingei
      3 cmslender3+peaceful22–277–88–201.1
      Platy
      Xiphophorus maculatus
      6 cmdeep3+peaceful21–267–8.210–208.9
      Swordtail
      Xiphophorus hellerii
      12 cmstandard3+peaceful21–277–8.210–2032.9
      Molly
      Poecilia sphenops
      8 cmdeep3+peaceful · brackish-ok24–287.5–8.512–2517
      Betta (Siamese fighting fish)
      Betta splendens
      6 cmstandard1semi · longfin, solitary24–296.5–7.53–106.9
      Dwarf gourami
      Trichogaster lalius
      8 cmdeep1peaceful · longfin24–286–7.54–1217
      Honey gourami
      Trichogaster chuna
      5 cmdeep2+peaceful · longfin22–286–7.54–155.9
      Pearl gourami
      Trichopodus leerii
      12 cmdeep3+peaceful · longfin24–286–7.53–1242.4
      Angelfish
      Pterophyllum scalare
      15 cmdeep5+semi · longfin24–296–7.53–1070
      Discus
      Symphysodon spp.
      18 cmdeep6+peaceful27–315.5–6.81–6105.5
      German blue ram
      Mikrogeophagus ramirezi
      6 cmdeep2+peaceful26–305.5–72–88.9
      Bolivian ram
      Mikrogeophagus altispinosus
      8 cmdeep2+peaceful23–276–7.53–1017
      Apistogramma (cacatuoides)
      Apistogramma cacatuoides
      8 cmstandard2+semi24–286–7.52–1013.2
      Kribensis
      Pelvicachromis pulcher
      10 cmstandard2+semi24–286–7.53–1221.8
      Convict cichlid
      Amatitlania nigrofasciata
      12 cmdeep2+aggressive24–286.5–88–2042.4
      Firemouth
      Thorichthys meeki
      15 cmdeep2+semi24–286.5–88–1570
      Jack Dempsey
      Rocio octofasciata
      22 cmdeep1aggressive24–286.5–88–15165.6
      Oscar
      Astronotus ocellatus
      30 cmstocky1predator24–286.5–7.55–15401.9
      Electric blue acara
      Andinoacara pulcher
      15 cmdeep2+semi24–286.5–7.55–1570
      Yellow lab (mbuna)
      Labidochromis caeruleus
      10 cmstandard6+semi24–277.8–8.610–2021.8
      Peacock cichlid
      Aulonocara spp.
      14 cmstandard4+semi24–277.8–8.610–2046.5
      Bronze / albino cory
      Corydoras aeneus
      7 cmstandard6+peaceful22–266–7.53–129.8
      Panda cory
      Corydoras panda
      5 cmstandard6+peaceful20–256–7.52–104.6
      Pygmy cory
      Corydoras pygmaeus
      3 cmslender8+peaceful22–266–7.52–101.1
      Kuhli loach
      Pangio kuhlii
      10 cmslender6+peaceful24–286–72–1016.7
      Bristlenose pleco
      Ancistrus spp.
      12 cmstocky1peaceful22–276.5–7.53–1551.1
      Common pleco
      Pterygoplichthys pardalis
      40 cmstocky1peaceful22–286.5–7.53–15767.7
      Otocinclus
      Otocinclus spp.
      4 cmslender6+peaceful22–266.5–7.53–122.1
      Siamese algae eater
      Crossocheilus oblongus
      15 cmslender3+peaceful24–266.5–7.53–1241.6
      Clown loach
      Chromobotia macracanthus
      25 cmstandard5+peaceful25–306–7.53–12171.6
      Rainbow shark
      Epalzeorhynchos frenatum
      15 cmslender1semi · solitary24–276.5–7.53–1541.6
      Pictus catfish
      Pimelodus pictus
      12 cmslender4+predator23–286.5–7.53–1525.2
      Bala shark
      Balantiocheilos melanopterus
      30 cmslender5+peaceful24–286.5–7.53–15197.9
      Silver dollar
      Metynnis spp.
      15 cmdeep6+peaceful24–286–7.53–1570
      Fancy goldfish
      Carassius auratus (fancy)
      15 cmstocky2+peaceful · coldwater18–237–88–2084.5
      Common / comet goldfish
      Carassius auratus
      30 cmstocky2+peaceful · coldwater15–247–88–20401.9
      Cherry shrimp
      Neocaridina davidi
      3 cmslender6+peaceful · shrimp20–266.5–7.86–101.1
      Amano shrimp
      Caridina multidentata
      5 cmslender3+peaceful · shrimp20–276.5–7.54–153.5
      Ocellaris clownfish
      Amphiprion ocellaris
      8 cmdeep2+semi24–278.1–8.4salt17
      Yellow tang
      Zebrasoma flavescens
      18 cmdeep1semi · solitary24–278.1–8.4salt105.5
      Blue (hippo) tang
      Paracanthurus hepatus
      25 cmdeep1peaceful24–278.1–8.4salt220.8
      Kole tang
      Ctenochaetus strigosus
      15 cmdeep1semi · solitary24–278.1–8.4salt70
      Royal gramma
      Gramma loreto
      8 cmstandard1peaceful24–278.1–8.4salt13.2
      Six-line wrasse
      Pseudocheilinus hexataenia
      8 cmslender1semi · solitary24–278.1–8.4salt10.1
      Firefish
      Nemateleotris magnifica
      8 cmslender1peaceful24–278.1–8.4salt10.1
      Banggai cardinalfish
      Pterapogon kauderni
      8 cmdeep2+peaceful24–278.1–8.4salt17
      Green chromis
      Chromis viridis
      8 cmstandard6+peaceful24–278.1–8.4salt13.2
      Coral beauty angel
      Centropyge bispinosa
      10 cmdeep1semi · solitary24–278.1–8.4salt28.1
      Flame angel
      Centropyge loricula
      10 cmdeep1semi · solitary24–278.1–8.4salt28.1
      Lawnmower blenny
      Salarias fasciatus
      12 cmslender1peaceful · solitary24–278.1–8.4salt25.2
      Watchman goby
      Cryptocentrus cinctus
      10 cmslender1peaceful24–278.1–8.4salt16.7
      Foxface rabbitfish
      Siganus vulpinus
      25 cmdeep1peaceful24–278.1–8.4salt220.8
      Yellowtail damsel
      Chrysiptera parasema
      7 cmstandard1aggressive24–278.1–8.4salt9.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.