Bulk Liquefied Petroleum Gas (LPG) marine import terminals, pressurized spherical Horton-sphere and mounded bullet tank farms, and hospitality/hospitality-hospitality wholesale bridger loading gantries in Mombasa (Kipevu, Shimanzi, Changamwe), Nairobi, Eldoret, Kisumu, and Dar es Salaam handle volatile pressurized hydrocarbon mixtures (commercial propane-butane ratios) where temperature, vapor pressure, and liquid-vapor phase equilibrium directly alter measured mass. Managing marine tanker outturns, third-party hospitality/hospitality storage hospitality agreements, KRA Customs bonded entries, and road bridger gantry loading on spreadsheets leads to unexplained vapor-phase mass losses, disputes between ship Bill of Lading figures and shore sphere receipts, customs bond overruns, and loading-bay queue bottlenecks.
At devManue, we engineer industrial-grade Bulk LPG Import Terminal, Spherical Tank Farm & Gantry Dispatch ERP platforms. Our system integrates radar/servo tank gauging, Coriolis mass-flow meters, ASTM D1250 / API MPMS Table 53E & 54E liquid-and-vapor density conversions at 15°C, KRA iCMS bonded warehouse stock ledgers, and automated PLC weighbridge/mass-meter bridger loading bays.
1. Marine LPG Vessel Outturn, Coriolis Mass-Flow & Liquid + Vapor Sphere Mass-Balance
Unlike atmospheric liquid fuels, an LPG storage sphere or mounded bullet contains both a pressurized liquid phase at the bottom and a compressed hydrocarbon vapor phase in the head-space above the liquid level. Ignoring the mass of the vapor phase—or failing to compensate for vapor-return lines during vessel discharge and bridger loading—creates false stock gains or losses of several metric tonnes per sphere.
- Marine Tanker Discharge & Custody-Transfer Coriolis Metering: Logs ship figure vs. shore Coriolis mass-flow meter readings, pipeline packing state, pigging operations, and propane:butane GC composition ratios (e.g.,
30:70or20:80 C3:C4) to generate the official Shore Outturn Report. - Dual-Phase (Liquid + Vapor) Spherical Tank Gauging at 15°C: Interfaces with high-precision radar level gauges, multi-spot temperature elements, and top/bottom pressure transmitters to compute true liquid volume, liquid mass at
15°C, head-space vapor volume, and compressed vapor mass inside every Horton sphere and mounded bullet. - Third-Party Hospitality & Common-User Terminal Commingled Accounting: Tracks individual Oil Marketing Company (
OMC) stock entitlements, marine discharge hospitality fees, pipeline throughput tariffs, and contractual handling loss allowances (e.g.,0.25%).
2. Dual-Phase (Liquid + Vapor) LPG Sphere Mass & Bridger Gantry Outturn Engine
Our terminal mass-balance engine calculates the exact combined liquid and vapor metric tonnage inside a pressurized storage vessel and reconciles sphere depletion against road/rail bridger weighbridge and Coriolis gantry outturns:
from decimal import Decimal, ROUND_HALF_UP
class LpgTerminalDualPhaseMassBalanceEngine:
"""
Computes total LPG mass (Metric Tonnes) across both liquid phase and
pressurized head-space vapor phase inside a Horton Sphere or Mounded Bullet,
and audits gantry bridger dispatch variance.
"""
@staticmethod
def calculate_sphere_dual_phase_mass_and_variance(
total_sphere_capacity_m3: Decimal,
observed_liquid_volume_m3: Decimal,
vcf_table_54e_at_15c: Decimal,
density_at_15c_kg_per_m3: Decimal,
sphere_vapor_pressure_bar_abs: Decimal,
vapor_temperature_celsius: Decimal,
molecular_weight_kg_per_kmol: Decimal, # e.g. ~53.8 for 30:70 Propane/Butane
opening_sphere_mass_mt: Decimal,
gantry_bridger_dispatches_mt: Decimal,
) -> dict:
# 1. Liquid phase mass at 15°C (vacuum/air-buoyancy corrected)
standard_liquid_vol_15c_m3 = (
observed_liquid_volume_m3 * vcf_table_54e_at_15c
).quantize(Decimal("0.001"), rounding=ROUND_HALF_UP)
liquid_mass_mt = (
(standard_liquid_vol_15c_m3 * density_at_15c_kg_per_m3) / Decimal("1000.0")
).quantize(Decimal("0.001"), rounding=ROUND_HALF_UP)
# 2. Head-space compressed vapor phase mass via real-gas compressibility approximation
vapor_space_volume_m3 = max(Decimal("0.0"), total_sphere_capacity_m3 - observed_liquid_volume_m3)
temp_kelvin = vapor_temperature_celsius + Decimal("273.15")
gas_constant_r = Decimal("0.08314") # bar·m3 / (kmol·K)
compressibility_z = Decimal("0.88") # typical LPG vapor compressibility factor
vapor_density_kg_m3 = (
(sphere_vapor_pressure_bar_abs * molecular_weight_kg_per_kmol)
/ (compressibility_z * gas_constant_r * temp_kelvin)
)
vapor_mass_mt = (
(vapor_space_volume_m3 * vapor_density_kg_m3) / Decimal("1000.0")
).quantize(Decimal("0.001"), rounding=ROUND_HALF_UP)
closing_total_sphere_mass_mt = (liquid_mass_mt + vapor_mass_mt).quantize(
Decimal("0.001"), rounding=ROUND_HALF_UP
)
sphere_depletion_mt = (opening_sphere_mass_mt - closing_total_sphere_mass_mt).quantize(
Decimal("0.001"), rounding=ROUND_HALF_UP
)
mass_variance_mt = (gantry_bridger_dispatches_mt - sphere_depletion_mt).quantize(
Decimal("0.001"), rounding=ROUND_HALF_UP
)
return {
"liquid_phase_mass_mt": liquid_mass_mt,
"vapor_headspace_mass_mt": vapor_mass_mt,
"closing_total_sphere_mass_mt": closing_total_sphere_mass_mt,
"sphere_mass_depletion_mt": sphere_depletion_mt,
"gantry_vs_sphere_variance_mt": mass_variance_mt,
"reconciliation_status": "WITHIN_0.2_PCT_CUSTODY_TOLERANCE" if abs(mass_variance_mt) <= Decimal("0.500") else "AUDIT_VAPOR_RETURN_OR_METER",
}3. Automated Bridger Gantry Loading, Ethyl Mercaptan Odorizing & EPRA Safety Interlocks
At the road and rail bridger loading gantry, our ERP enforces zero-compromise process safety and tax compliance before a single kilogram of LPG is pumped:
- EPRA Licensing, Pressure-Vessel Hydro-Test & Grounding Interlocks: Blocks loading order release if the road bridger’s EPRA Bulk LPG Transport Permit, 5-year statutory pressure-vessel hydro-test certificate, relief-valve calibration, or driver Hazmat license has expired.
- Maximum Safe Fill (85% Ullage Ceiling) & Odorant Dosing Logs: Calculates the maximum permissible net LPG load based on the tanker’s water capacity and product specific gravity so liquid fill never exceeds
85% volume(leaving 15% thermal expansion ullage), and logs ethyl mercaptan stench dosing per metric tonne. - Dual Weighbridge + Coriolis Gantry Cutoff & KRA Customs Release: Cross-checks gantry Coriolis mass-meter delivery against inbound Tare and outbound Gross weighbridge tickets, deducts the exact tonnage from the OMC’s duty-paid KRA Customs release order, and prints the Bill of Lading, CoA, and eTIMS invoice.
| Bulk LPG Import Terminal & Gantry Dispatch ERP Metric | Legacy Spreadsheets & Manual Tallying | devManue Custom Enterprise ERP |
|---|---|---|
| Sphere & Bullet Inventory Accounting | Liquid-only dip sheets ignoring 3–8 MT of compressed head-space vapor | Automated ASTM 54E liquid + real-gas vapor dual-phase mass calculation |
| OMC Hospitality & KRA Bonded Stock | Manual Excel stock ledgers risking customs bond over-withdrawals | Live OMC hospitality sub-ledgers gated by KRA iCMS duty-paid release balances |
| Road Bridger Safety & Ullage Control | Manual visual checks risking overfilling beyond 85% safe liquid volume | Hard EPRA/hydro-test gate lock & automated 85% max-fill preset cutoff |
| Gantry vs. Weighbridge Reconciliation | End-of-day paper ticket matching with long driver turnaround queues | Real-time Coriolis meter vs. dual axle weighbridge interlock & instant BoL |
Related Enterprise ERP & Engineering Guides
- LPG Cylinder Bottling Plant & Cage Distribution ERP — Downstream carousel filling of 6kg, 13kg, and 50kg cylinders from bulk road bridgers.
- Petroleum Depot & Retail Wet-Stock Management ERP — Managing white-oil hospitality depots, ATG tank telemetry, and pump reconciliation.
- Custom Bulk LPG Terminal, Tank Farm & Gantry Dispatch ERP — Architect your marine terminal and gantry automation platform with devManue.