Methodology: show the work.
Every number on this site comes from the closed-form formulas below — derived, cited, and gated by an automated test suite that runs before every deploy. No lookup-table interpolation, no curve fits where exact math exists.
1. The partial-fill primitive: circular segment
For a circle of radius r with liquid depth h measured from the bottom, the wetted cross-section is a circular segment:
A(h) = r²·acos((r−h)/r) − (r−h)·√(2rh − h²)
Standard result; see any analytic geometry reference. Multiplying by tank length gives horizontal-cylinder volume. At h = r this is exactly half the circle — our tests assert 50.000% to floating-point precision.2. Obround sections (real 275/330 oil tanks)
Standard heating-oil tanks have flat vertical sides with semicircular top and bottom — an obround, not an ellipse. For a vertical tank of width W, height Ht and length L, with R = W/2 and straight-side height S = Ht − W:
h ≤ R: A = seg(R, h)
R < h ≤ R+S: A = ½πR² + W·(h − R)
h > R+S: A = πR² + W·S − seg(R, Ht − h)
Validated against the Highland Tank gauge chart book: our 27×44×60 model reads 92 gal at 16″ and 197 gal at 31″ vs the published 94 and 200 — within ~2–3%, the spread attributable to corner radii and the ¼″ height difference in the published dims. Tests enforce these tolerances and the continuity of A(h) at both zone boundaries.3. Dished heads (propane / ASME vessels)
The two heads of a horizontal vessel together form a closed end-cap pair. We model the pair as a sphere scaled along the tank axis by factor a/r, which makes the partial-fill volume an exactly scaled spherical cap:
V_heads(h) = (a / r) · πh²(3r − h)/3
For 2:1 semi-ellipsoidal heads a = D/4 and this is exact (affine scaling preserves volume ratios) — verified in tests against numerical integration to <0.2%. For ASME flanged-and-dished (torispherical) heads we use an effective a ≈ 0.1545·D chosen so the full head volume matches the standard 0.0809·D³ result. This is an approximation, and we measured it against the exact torispherical geometry (dish radius = D, knuckle radius = 0.06D, head depth 0.1693·D) by numerical integration: the exact full head pair agrees with 0.0809·D³ to 0.12%, and our model's observed error is at most 0.8% of the head-pair volume across 5–95% fill depths — equivalent to ≤0.06% of total vessel volume (≤0.3 gal) on a 500-gallon tank, identical in relative terms at every diameter. This comparison runs as an automated test on every build. Propane chart pages additionally solve cylinder length so total geometric capacity equals the nameplate water capacity — making the published number, not a tape measure, the source of truth.4. Everything else
Vertical cylinders and rectangles are linear in depth. True ellipses scale the circular segment by the axis ratio a/b. Cone bottoms are cubic in depth through the cone (V = π·(r·h/Hcone)²·h/3), then linear. Spheres use the cap formula directly. Frustums interpolate radius linearly with height. One US gallon = 231 in³ exactly; one gallon = 3.785411784 L exactly.
5. Liquid weights
Liquid weight = gallons × density. The densities below are reference values near 60–70°F; real fluids vary with temperature, grade and composition, so treat weights as indicative (a 10°F swing moves hydrocarbon density by roughly 0.4%).
| Liquid | lb/US gal | SG | Basis / source |
|---|---|---|---|
| Water | 8.345 | 1.000 | Pure water at 60°F, NIST reference density (999.0 kg/m³) |
| Heating oil #2 | 7.20 | 0.863 | Typical No. 2 fuel oil, ~32° API; ASTM D396 grade range |
| Diesel | 7.05 | 0.845 | Ultra-low-sulfur diesel, ~36° API; EIA/ASTM D975 typical |
| Gasoline | 6.30 | 0.755 | Finished motor gasoline, ~58° API; EIA conversion value |
| Propane (liquid) | 4.24 | 0.508 | Saturated liquid at 60°F; GPA/NFPA 58 reference |
| Kerosene | 6.82 | 0.817 | 1-K kerosene / Jet A range, ~42° API; ASTM D3699 |
| Milk | 8.60 | 1.031 | Whole milk at ~68°F; USDA dairy handling references |
| Seawater | 8.56 | 1.025 | Standard ocean salinity (35 g/kg); UNESCO equation of state |
| Hydraulic oil | 7.20 | 0.863 | Mineral ISO VG 32–68 hydraulic fluids, manufacturer data sheets |
| Honey | 11.85 | 1.420 | ~17–18% moisture honey at 70°F; USDA / National Honey Board |
| UAN 28% fertilizer | 10.65 | 1.277 | Urea–ammonium nitrate 28-0-0; university extension agronomy references |
| Ethanol | 6.59 | 0.789 | Anhydrous ethanol at 60°F; standard physical constant |
| Vegetable oil | 7.70 | 0.92 | Soybean/canola class at room temperature; USDA/industry data |
| Coolant 50/50 | 8.94 | 1.07 | 50/50 ethylene glycol–water premix near 60°F (EG SG 1.113) |
| UAN 32% fertilizer | 11.06 | 1.326 | Urea–ammonium nitrate 32-0-0 solution; university extension agronomy references (published range 10.6–11.0+ lb/gal by temperature) |
6. Verification
- 100 automated assertions run on every build: published-chart ground truths, symmetry identities (V(h)+V(max−h)=Vtotal), strict monotonicity, boundary continuity, numeric-integration cross-checks, unit round-trips, and a 5,000-case randomized sweep for NaN/negative/non-monotonic output.
- Sources for tank dimensions are recorded per tank in our registry and shown on each chart page.
- Limits: charts assume clean geometry — fittings, internal coils, sediment and tilt are not modeled. Not for custody transfer.