Aquarium Forge

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-22

Bioload 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-22

Seven-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-22

All 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-22

Schema 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/