Site Quantities — How Calculations Work
Overview
This page explains the calculation logic behind the Site Chemical Quantity Aggregation feature — how Tellus converts your inventory into site-level chemical totals and determines threshold compliance.
Unit Conversions
All quantities are normalized to pounds (lbs) for weight and gallons (gal) for volume using standard conversion factors:
Weight Conversions (to pounds)
| Unit | Conversion Factor |
|---|---|
| lbs | 1.0 |
| oz | 0.0625 |
| kg | 2.2046 |
| g | 0.0022 |
| mg | 0.0000022 |
| ton | 2,000.0 |
Volume Conversions (to gallons)
| Unit | Conversion Factor |
|---|---|
| gal | 1.0 |
| L (liter) | 0.2642 |
| qt (quart) | 0.25 |
| pt (pint) | 0.125 |
| fl oz | 0.0078 |
| mL | 0.000264 |
| cu ft | 7.4805 |
Weight ↔ Volume Conversion
To convert between weight and volume, Tellus uses chemical-specific densities (in lbs/gal). When no density is available for a specific chemical, water density (8.34 lbs/gal) is used as the default.
Quantity Calculation Per Chemical Component
For each inventory item, the calculation is:
Total item quantity = container size × number of containers
Chemical quantity = total item quantity × conversion factor × concentration percentage
Concentration is taken from the SDS composition data — the percentage of each chemical in the product. Most SDSs do not give an exact percentage; they give a range (e.g. "2–6%") or an open-ended bound (e.g. "≤5%", "≥15%"). Tellus applies the EPA rules in 40 CFR 372.30(b) to convert those into a single reporting percentage for Tier II (EPCRA §312) and TRI (EPCRA §313) threshold calculations.
How Tellus picks the reporting percentage
| What the SDS says | Rule Tellus applies | Example |
|---|---|---|
| Exact value (e.g. "30%") | Use it as-is. | 30% → 30% |
| Range (e.g. "2–6%") | Use the midpoint. | 2–6% → 4% |
| Upper bound only (e.g. "≤5%") | Use the upper bound. | ≤5% → 5% |
| Lower bound only, other components are known (e.g. "PFAS ≥10%" and "water 70%") | Estimate the implied upper bound as 100% − the known components, then take the midpoint. | PFAS ≥10% (water 70%) → midpoint of 10–30% = 20% |
| Lower bound only, nothing else known (e.g. "≥15%") | Assume the upper bound could be 100%; take the midpoint. | ≥15% → midpoint of 15–100% = 57.5% |
| No numeric information | Treat the component as 100% of the product. A warning is logged so you can review the SDS. | — |
Why not just use the maximum of the range? Using the maximum over-reports whenever the SDS gives a range, which inflates your fire-code and Tier II numbers for no regulatory benefit. Using the lower bound under-reports and is the actual compliance risk — missing a TRI or Tier II threshold because the SDS was vague. EPA's midpoint-for-ranges / upper-bound-for-one-sided rule is what regulators expect and is what Tellus now applies. (This is a change from our original "always use max" behavior — see Changelog below.)
Responsibility for the report stays with the facility. Even when Tellus, a consultant, or any other tool prepares your Tier II / TRI filing, the EPA holds the facility accountable for accuracy. Tellus gives you the concentration EPA expects to be used, but you should still review the number against your own SDS when filing.
Simple Example
You have 3 bottles of a cleaner, each 1 gallon, and the SDS shows it contains an exact 15% acetone:
- Total item quantity = 1 gal × 3 = 3 gallons
- Acetone contribution = 3 gal × 0.15 = 0.45 gallons
- Acetone in pounds = 0.45 gal × 6.56 lbs/gal (acetone density) = 2.95 lbs
Multi-Component Example
Consider an Isocyanate Activator product used in an automotive paint shop:
| Property | Value |
|---|---|
| Container size | 5 gallons |
| Inventory quantity | 100 containers |
| Total product volume | 5 gal × 100 = 500 gallons |
The SDS lists 5 chemical components with concentration ranges. Tellus applies the EPA midpoint rule to each:
| CAS Number | Chemical Name | SDS Range | Reporting % (midpoint) |
|---|---|---|---|
| 28182-81-2 | Hexamethylene diisocyanate, oligomers | 50–75% | 62.5% |
| 79-20-9 | Methyl acetate | 10–20% | 15% |
| 103-09-3 | 2-Ethylhexyl acetate | 0–10% | 5% |
| 108-83-8 | Diisobutyl ketone | 0–10% | 5% |
| 19549-80-5 | Methyl isoamyl ketone | 0–3% | 1.5% |
Each chemical's site quantity is calculated independently:
| Chemical | Calculation | Site Quantity (gal) |
|---|---|---|
| Hexamethylene diisocyanate | 500 gal × 62.5% | 312.50 gal |
| Methyl acetate | 500 gal × 15% | 75.00 gal |
| 2-Ethylhexyl acetate | 500 gal × 5% | 25.00 gal |
| Diisobutyl ketone | 500 gal × 5% | 25.00 gal |
| Methyl isoamyl ketone | 500 gal × 1.5% | 7.50 gal |
Each of these appears as a separate row on the Site Quantities screen, grouped by CAS number. If other products at the same site also contain any of these chemicals, their quantities are summed together.
Changelog
- 2026-04-22 — Tellus now follows EPA 40 CFR 372.30(b) for converting SDS concentration ranges to a single reporting percentage. Before this change, Tellus always used the upper bound of a range, which over-reported for Tier II and fire code. Ranges now use the midpoint; open-ended lower bounds use EPA's implied-upper rule. See the table above for the full rule set.
Tier II Thresholds
EPA EPCRA Section 312 requires facilities to file annual Tier II reports for hazardous chemicals stored above these thresholds:
| Chemical Type | Threshold |
|---|---|
| General hazardous chemicals | 10,000 lbs |
| Extremely Hazardous Substances (EHS) | 500 lbs |
In the UI, a green checkmark means the chemical is below the threshold. A red indicator means it exceeds — and the chemical should be included in your Tier II report.
Fire Code Thresholds
Based on the International Fire Code (IFC) Table 5003.1.1(1) — Maximum Allowable Quantities per control area for indoor storage:
Flammable & Combustible Liquids
| Class | Description | Max Qty (gallons) |
|---|---|---|
| IA | Flash point < 73°F, boiling point < 100°F | 30 |
| IB | Flash point < 73°F, boiling point ≥ 100°F | 120 |
| IC | Flash point 73–100°F | 120 |
| II (Combustible) | Flash point 100–140°F | 120 |
| IIIA (Combustible) | Flash point 140–200°F | 330 |
| IIIB (Combustible) | Flash point ≥ 200°F | 13,200 |
Oxidizers
| Class | Max Qty (lbs) |
|---|---|
| 1 | 4,000 |
| 2 | 250 |
| 3 | 10 |
| 4 | 1 (any amount requires a permit) |
How Fire Code Class Is Determined
Tellus maps GHS hazard classifications from the SDS to International Fire Code categories:
| GHS Hazard Class | GHS Category | Fire Code Category | Fire Code Class |
|---|---|---|---|
| Flammable liquid | Category 1 | Flammable Liquid | IA |
| Flammable liquid | Category 2 | Flammable Liquid | IB |
| Flammable liquid | Category 3 | Flammable Liquid | IC |
| Flammable liquid | Category 4 | Combustible Liquid | II |
| Oxidizer | Category 1 | Oxidizer | 4 |
| Oxidizer | Category 2 | Oxidizer | 3 |
| Oxidizer | Category 3 | Oxidizer | 2 |
Hazard Summary Aggregation
The Hazard Summary tab groups all chemicals by their fire code classification and totals the quantities. The % of Limit is calculated as:
% of Limit = (total quantity for this hazard group ÷ fire permit limit) × 100
When Fire Protection Settings are configured for a site, the fire permit limit uses the Adjusted MAQ instead of the baseline IFC value. For example, a facility with an approved sprinkler system doubles its MAQ (2x multiplier per IFC Section 5003.1), which means the % of Limit is calculated against the higher adjusted threshold.
This tells you at a glance how close each hazard category is to the fire code maximum — 50% means you're using half your allowable capacity, 100% means you've reached the limit. See the Site Quantities & Reporting page for details on configuring fire protection settings.