Most "compatibility" answers come from a chart: find your fish in one column, find the other fish in another, get a checkmark or an X. Charts aren't useless, but they compress a multi-factor decision into a single yes/no, and the factors that actually determine whether two fish do well together — water parameter overlap, adult size, temperament as a spectrum, territory and swimming level, group-size minimums, and your specific tank's bioload capacity — don't fit in a grid. This guide walks through each factor, then applies all of them to two real stocking decisions.

Why a chart alone gets you in trouble

A chart usually answers one question: "are these two species, in the abstract, ever kept together successfully?" That's a low bar. It says nothing about whether your tank fits the adult versions of both fish, whether you're buying enough of a schooling species to keep it calm, whether your water sits inside both species' ranges, or whether your filtration can handle the combined waste load once everyone's grown. Two fish can be "compatible" on a chart and still fail badly in a specific 20-gallon tank with an immature filter and no floor space to spare. Treat a chart as a first filter, not a final answer.

Water parameter overlap — not just "both freshwater"

See our water parameters and testing guide for what each core number (pH, GH, KH, temperature) actually measures and how to test for it before you compare species.

"Freshwater" covers a huge range of conditions. A fish from a slow, tannin-stained Amazon tributary and a fish from a hard, alkaline African rift lake are both freshwater fish, and they'd stress each other badly in the same tank. The real question isn't whether two species are both freshwater — it's whether their temperature, pH, and hardness ranges genuinely overlap, ideally without pinning either species to the edge of its tolerance.

Temperature is the least forgiving, because most tanks run one heater at one setting. Zebra danios are comfortable across 64-77°F, but discus do best in the mid-to-upper 80s°F — no setting is correct for both. pH and hardness are more forgiving since most captive-bred fish tolerate a wider band than their wild ancestors, but the overlap logic still applies: a cardinal tetra's 3.5-7.5 pH range and a bronze corydoras' 6.0-8.0 range overlap comfortably between 6.0 and 7.5 — a checkable number, not a guess.

What actually constrains this decision is your source water. A shop that regularly tests customers' tap water — a normal service at a dedicated retailer like Pet Zone Tropical Fish — can usually tell you your baseline pH and hardness before you buy a test kit, which is the real starting point for every overlap check that follows.

Adult size — stock for the fish it becomes, not the fish you bought

The fish in the store tank isn't the fish you're stocking for. A clown loach sold at 1-2 inches can reach well over a foot, and per Seriously Fish, needs a group of at least 5-6 (preferably 10+) or the dominant fish will stress subordinates until they stop eating. The "small, cheap, easy" loach is really a decades-long commitment to hundreds of gallons and a large group. Common plecos and Chinese algae eaters are the same story: sold small, capable of outgrowing a standard community tank entirely.

A subtler version of the mistake is buying two species whose current sizes make them compatible and whose adult sizes don't. Juvenile angelfish are genuinely peaceful with small tetras, but once an angelfish's mouth is wide enough to swallow one — roughly 3-4 inches of body length, reachable within 8-12 months of good feeding — neon tetras stop being tankmates and start being food. A stocking decision that looks correct on day one can quietly reverse a year later, and a chart never flags it because it doesn't know how big either fish will get.

Before buying, look up the adult size for every species in the plan — not the display-tank size, the maximum recorded size — and stock for that number. A tank that fits six adult fish comfortably does not fit six juveniles that are all headed toward adult size at different rates.

Temperament is a spectrum, not a label

"Peaceful," "semi-aggressive," and "aggressive" are useful shorthand, but real temperament sits on a spectrum and shifts with group size, tank size, and what else is in the water. Tiger barbs are the textbook case: sold as an "easy community fish," yet Seriously Fish notes their reputation for fin-biting is worst specifically "when insufficient numbers are purchased or space is limited." In a large enough group, tiger barbs redirect most of that energy at each other instead. A 2025 behavioral study housed tiger barbs in groups of 1, 2, 4, and 8, and found smaller groups showed more chasing and body-bumping, while isolated fish ate less and showed elevated stress-related gene expression — a measurable link between undersized groups and aggression, not just an anecdote.

So the honest question for a fin-nipper like a tiger barb isn't "are tiger barbs compatible with bettas" in the abstract — it's "am I buying enough of them, in enough room, that they won't need a target." A long-finned, slow-moving betta is one of the worst possible tankmates for an undersized barb group, regardless of what a chart says about "community fish," because the chart doesn't know how many barbs you're planning to buy.

Territory and swimming level — layering the water column

Fish that occupy different layers of the tank compete less for space even in a fairly full aquarium, which is why layering by swimming level is one of the more effective and least-discussed compatibility tools.

ZoneTypical occupantsWhy layering helps
BottomCorydoras, loaches, many plecosForage along the substrate, mostly ignore activity above them
Mid-waterMost tetras, barbs, rasboras, dwarf cichlidsHighest density of activity — the zone most likely to see real competition
SurfaceHatchetfish, some gouramis, killifishClaim the top few inches, rarely interact with bottom or mid fish

Territorial floor-space needs are a separate issue layering alone doesn't fix. Cichlids in particular defend a patch of substrate or a specific rock or cave rather than just "some space," and cramming too many territorial fish into too little floor area produces constant low-grade aggression that a spacious open-water tank of the same volume wouldn't. Decor matters as much as gallon count: broken sightlines from rockwork, driftwood, or dense planting let a subordinate fish get out of a dominant fish's line of sight, which reduces sustained aggression — see our guide to setting up a first planted tank for how to build that in from the start.

Schooling and group-size minimums

Many fish sold as "easy" beginner schoolers are only easy at the correct group size. Below that number, the same species that's calm and colorful in a proper school becomes visibly stressed, washed-out, or — as with tiger barbs — redirects its social energy into harassing tankmates. Neon and cardinal tetras are both listed by Seriously Fish at a minimum of 8-10, corydoras at a minimum of 4-6, and tiger barbs at 8-10 per Seriously Fish or, per Aquarium Co-op, at least seven with a dozen-plus preferred. These aren't arbitrary traditions — they're roughly the point at which a shoaling fish's instinct to stay in a tight, defensive group is actually satisfied, instead of leaving a handful of fish perpetually on edge.

This is where group-size minimums collide with tank size. A species that needs a school of ten isn't a good fit for a tank with bioload and floor space for only six fish total — the honest answer is a different species, not a smaller group of the one you wanted.

Tank size and bioload, in plain terms

The old "one inch of fish per gallon" rule is a rough heuristic at best: it treats a slim, low-waste inch of neon tetra the same as an inch of a deep-bodied, high-waste cichlid, and says nothing about your filter's actual capacity. Practical Fishkeeping's stocking guidance puts the real limiting factor plainly: filter media surface area and flow rate determine how much bioload a tank can carry, and nitrate builds up faster with more fish, heavier feeding, or higher-protein food — none of which shows up in an inch count.

A fish's body mass, and its waste output with it, scales roughly with the cube of its length — a fish twice as long isn't twice the bioload, it's closer to eight times. That's why a handful of larger fish can load a filter as hard as many more small ones, and why "how many fish" is really a filtration-capacity question in disguise. See our guide to cycling a freshwater aquarium for getting a filter's bacterial colony mature enough to carry a full stocking plan — an uncycled filter can crash an otherwise "compatible" stocking list within days.

Putting the framework to work: two real stocking decisions

Example 1: "Can I add tiger barbs to my 20-gallon betta-and-neon-tetra tank?"

A chart says yes — all three are commonly listed as community fish. The framework says otherwise:

Verdict: skip it. Either the barbs or the betta needs a different tank; a 20-gallon already anchored by a betta isn't the tank for a proper tiger barb school.

Example 2: stocking a 40-gallon planted community from scratch

Here the framework runs forward instead of checking an existing plan. Target parameters first: roughly 76-78°F and pH 6.8-7.2, inside range for every species under consideration.

FishZoneGroup sizeAdult notes
Cardinal tetraMid-water10Stays under 2 in; schools tightly at this size
Bronze corydorasBottom6Peaceful, low bioload per fish, overlaps parameters cleanly
Bristlenose plecoBottom1Territorial toward its own species, not toward tetras or corys; one is plenty

Corydoras and the pleco share the bottom, but corydoras forage in the open while the pleco holds a cave, so the overlap is low-conflict. Cardinal tetras occupy mid-water and mostly ignore the bottom, satisfying layering without extra planning. Group sizes clear their minimums, and the combined bioload of sixteen small, slim-bodied fish plus one moderate pleco is well within what a properly cycled 40-gallon filter should handle — very different math from the same fish count using six-inch cichlids instead. See our guide to choosing beginner freshwater fish if you're building a stocking list from zero.

Neither of these decisions required a compatibility chart to get right — they required checking parameters, adult size, temperament, territory, group minimums, and bioload against the specific tank in front of you. That's the whole framework, applied in order.

A last word on "your tank" specifically

Everything above depends on details a generic chart can't know: how mature your filter's bacterial colony is, how much floor space your decor leaves open once rockwork and plants are in, whether your water is naturally soft or hard, and how much bioload headroom you have left after the fish you already own. Two aquarists with the "same" 40-gallon tank and stocking list can get different results because one tank is six months into a mature planted setup and the other is three weeks post-cycle with bare substrate. Run every pairing through the full framework against your tank as it actually is, not as a chart assumes it to be. Shrimp keepers face a narrower version of the same overlap problem with parameter stability specifically; our neocaridina shrimp care guide covers why that's especially unforgiving for invertebrates sharing space with fish.

Do compatibility charts get anything right?

Yes, as a first filter — they're reasonably good at flagging obvious mismatches like a predatory cichlid next to a nano fish. Where they fail is anything specific to your tank: group size, adult size, decor and territory, and how mature your bioload capacity is. Use a chart to build a shortlist, then run each pairing through the full framework before buying.

How many fish do I need to buy for a schooling species like neon tetras or tiger barbs?

Plan on at least 8-10 for most nano schooling tetras, the minimum Seriously Fish gives for neon and cardinal tetras. Tiger barbs need the same or more: Seriously Fish lists 8-10 and Aquarium Co-op recommends at least seven, ideally over a dozen, because undersized groups turn normal barb rowdiness into fin-nipping aimed at other fish. A 2025 behavioral study found smaller tiger barb groups showed more chasing and body-bumping, with isolated fish eating less and showing elevated stress-hormone gene expression.

Can I keep cold-water and tropical fish together if I set the heater in the middle?

No. A shared temperature has to sit inside both species' actual ranges, not halfway between two ranges that don't overlap at all. Zebra danios do fine at 64-77°F; discus need the mid-to-upper 80s°F. There's no compromise setting correct for both — splitting the difference just keeps both fish outside their comfort range permanently. The same applies to true cold-water fish like goldfish paired with any tropical species.

What's the single biggest compatibility mistake new keepers make?

Buying based on the fish's size in the store tank instead of its adult size. A clown loach sold at 1-2 inches can reach well over a foot and needs a group of five or more, turning a cheap impulse buy into a decades-long, hundreds-of-gallons commitment. Angelfish are a subtler version: juveniles are genuinely peaceful with small tetras, but once an angelfish reaches roughly 3-4 inches its mouth is wide enough to eat them — so a tank that's "compatible" on day one quietly stops being compatible a year later.

Do all of a fish's water parameters need to match exactly?

No — they need to overlap, not match to the decimal. Most captive-bred fish tolerate a range; find a temperature, pH, and hardness setting inside every species' range at once, ideally not pinned to any one species' extreme edge. Your source water is the real constraint: a shop that tests tap water for customers, a normal service at a dedicated retailer like Pet Zone Tropical Fish, can usually tell you your baseline pH and hardness before you buy a test kit.

Pet Zone SD Team — Freshwater Guides is written and reviewed by the team behind Pet Zone Tropical Fish, a San Diego aquarium retailer, drawing on hands-on retail and keeping experience.