Methodology
Every result on Aquarium Forge is reproducible. This page documents the formulas, assumptions, and rule versions behind our tools, so you can always trace a number back to its source.
Calculator formulas
Volume & Water Change
Rectangular volume = L × W × H, converted at 231 in³ per US gallon. Actual water volume applies your fill percentage. Glass displacement is not subtracted.
Substrate & Gravel
Volume = footprint × depth. Weight uses typical bulk densities: gravel 1.68 kg/L, sand 1.6 kg/L, aquasoil 0.75 kg/L; gravel types range 1.5–1.6 kg/L. Weights are estimates — real density varies by brand and moisture.
Weight
Water ≈ 1 kg/L, reduced by substrate displacement. Glass = panel area × thickness × 2.5 g/cm³ (soda-lime), open-top assumption. Freshwater basis; saltwater ~2–3% heavier.
Heater
Linear model: watts/gallon ≈ 1.5 + 0.175 × ΔT(°F), rounded to standard wattages and shown as a range. Large tanks or large rises trigger a two-heater recommendation.
Filter
Recommended flow = volume × turnover (freshwater 4×, planted 3×, heavy stocking 5×, reef 8×). Minimum shown is 3×. Manufacturer rated flow differs from operating flow — always noted.
All tunable constants live in a versioned rules layer — engines never hard-code a magic number, so a rule change is always a version bump you can see.
Engines & versions
Core algorithms are versioned independently of the site. When we change a rule, we bump the version, document it in the changelog, and leave historical results explainable.
Stocking Algorithm
v1.1updated 2026-09-22Bioload points = adult size × per-species bioload factor, adjusted by filtration level, reported as a Planning Status with rule checks.
- Replaced the flat '1 inch per gallon' model with per-species bioload weighting.
- Schooling minimums, temperament conflicts and minimum tank size are checked as independent rules.
- Every result reports a Planning Status (Understocked → Overstocked) instead of a fish count.
Compatibility Engine
v1.1updated 2026-09-22Seven-aspect check (temperature, pH, temperament, adult size, swimming zone, schooling, tank size) mapped to a four-level verdict.
- Expanded from three to four verdict levels: Good Match / Conditional / Risky / Not Recommended.
- Added swimming-zone and schooling-requirement dimensions.
- Results now carry overlap numbers, main risks, exceptions, sources and a rule version.
Calculator Rules Layer (volume, weight, heater, filter, substrate, gravel, water change, tank size)
v1.1updated 2026-09-22All tunable constants live in a versioned rules file; engines read from it instead of hard-coded magic numbers.
- Introduced calculator-rules.ts with per-calculator algorithmVersion + reviewedDate.
- Result cards show 'Why this result' assumptions and the algorithm version badge.
Fish Database
v2026.11updated 2026-09-22Schema v2 with structured compatibility traits, per-species bioload factors and Source Registry references.
- Schema v2: swimming zone, hardness range, lifespan, bioload factor, compatibility tags.
- Every record references registered sources instead of a generic 'Internet' citation.
Editorial review
Species data carries registered sources and a review date on every page. Guidelines follow widely accepted hobby standards (community stocking practice, manufacturer sizing conventions, and NIST conversion factors). When guidance is genuinely contested — as with stocking density — we say so and explain both sides instead of picking a number quietly.
The full process — data collection, verification, review, corrections, and affiliate disclosure — is documented in our editorial policy, and the registries behind every citation are listed under sources.
Last reviewed: · canonical https://aquariumforge.com/methodology/