Mining and mineral processing operations across Kenya and East Africa—spanning gold Carbon-in-Leach (CIL) / Carbon-in-Pulp (CIP) plants in Western Kenya and Nyanza, gemstone mines in Taita Taveta, and industrial mineral quarries (limestone, gypsum, soda ash, silica sand, fluorspar, and iron ore)—operate where a difference of 0.4 grams per tonne (g/t) in head grade or 3% in plant recovery represents millions of shillings per month. When Run-of-Mine (ROM) ore purchases, fire-assay results, cyanide/reagent dosing, and gold room elution are tracked on disconnected spreadsheets, plants suffer severe metallurgical leakage and ore-supplier fraud.
At devManue, we engineer hardened Mining, Mineral Processing & Assay LIMS ERP platforms that lock together pit/shaft ore-lot intake, blind-coded LIMS fire-assay workflows, ball-mill and CIL tank metallurgical mass balance, high-security gold doré / rough gemstone vault custody, and statutory mineral royalty declarations.
1. Securing the Metallurgical Value Chain from ROM Pad to Bullion Vault
- Blind-Coded Sample Preparation & Assay Lab LIMS: When artisanal/small-scale ore suppliers or open-pit dump trucks deliver Run-of-Mine (ROM) ore to the weighbridge, the ERP generates an anonymized QR code for the moisture and fire-assay/AAS laboratory sample—preventing collusion between ore suppliers and assay chemists over head-grade (
g/t Au) payouts. - Ball Mill, Cyclone & CIL/CIP Tank Metallurgical Accounting: Tracks hourly crushed tonnage, ball-mill grind size (
P80 = 75 microns), sodium cyanide (NaCN) and lime dosing, dissolved oxygen, solution and solid tails grades, and loaded carbon gold inventory across every leach tank. - Gemstone Rough-to-Cut Parcel Custody (Tsavorite, Ruby, Tanzanite): For coloured gemstone miners, every rough crystal parcel is weighed in grams/carats at the washing plant, photographed, graded by clarity/colour, and tracked through cobbing, sawing, and faceting yield.
2. Metallurgical Head-Grade, Tailings & Doré Recovery Mass-Balance Engine
Our metallurgical accounting engine computes theoretical contained metal in milled dry tonnes, deducts barren tailings loss, and reconciles expected fine gold against actual smelted doré bar weight and purity:
from decimal import Decimal, ROUND_HALF_UP
class MetallurgicalMassBalanceEngine:
"""
Computes dry milled tonnage, theoretical contained gold (grams), plant
recovery %, and variance against smelted doré bullion output.
"""
@staticmethod
def reconcile_cil_plant_campaign(
wet_ore_milled_tonnes: Decimal,
moisture_pct: Decimal,
weighted_head_grade_g_per_t: Decimal,
weighted_tailings_grade_g_per_t: Decimal,
smelted_dore_bar_grams: Decimal,
dore_gold_fineness_pct: Decimal,
gold_in_circuit_delta_grams: Decimal = Decimal("0.00"),
) -> dict:
dry_tonnes = (wet_ore_milled_tonnes * ((Decimal("100") - moisture_pct) / Decimal("100"))).quantize(
Decimal("0.01"), rounding=ROUND_HALF_UP
)
contained_gold_grams = (dry_tonnes * weighted_head_grade_g_per_t).quantize(
Decimal("0.01"), rounding=ROUND_HALF_UP
)
tailings_loss_grams = (dry_tonnes * weighted_tailings_grade_g_per_t).quantize(
Decimal("0.01"), rounding=ROUND_HALF_UP
)
theoretical_recovered_grams = contained_gold_grams - tailings_loss_grams
actual_fine_gold_poured_grams = (
smelted_dore_bar_grams * (dore_gold_fineness_pct / Decimal("100")) + gold_in_circuit_delta_grams
).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
metallurgical_recovery_pct = (
(actual_fine_gold_poured_grams / contained_gold_grams) * Decimal("100")
if contained_gold_grams > 0 else Decimal("0.00")
).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
unaccounted_gold_variance_grams = (
theoretical_recovered_grams - actual_fine_gold_poured_grams
).quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
return {
"dry_milled_tonnes": dry_tonnes,
"contained_gold_grams": contained_gold_grams,
"actual_fine_gold_grams": actual_fine_gold_poured_grams,
"metallurgical_recovery_pct": metallurgical_recovery_pct,
"unaccounted_gold_variance_grams": unaccounted_gold_variance_grams,
}3. Heavy Earthmoving Fleet Diesel, Explosives Magazine & Royalty Compliance
Beyond the processing plant, our ERP tracks excavator and dump-truck engine hours, drill-and-blast ANFO/emulsion explosives magazine sign-outs, and calculates exact statutory royalties under the Mining Act, 2016.
| Mining & Mineral Processing Metric | Legacy Spreadsheets & Manual Tallying | devManue Custom Enterprise ERP |
|---|---|---|
| ROM Ore Purchasing & Head-Grade Assay | Collusion inflating supplier g/t assay results | Blind-coded QR sample LIMS + moisture-locked weighing |
| CIL / Processing Plant Recovery Audit | Gold-in-circuit & elution losses discovered too late | Daily head-minus-tails vs loaded carbon mass balance |
| Reagent (Cyanide, Lime, Carbon) Consumption | Unmonitored drum issues & overdosing | Kg-per-dry-tonne reagent dosing thresholds |
| Bullion / Gemstone Vault & Export | Manual spreadsheets; complex royalty reconciliations | Dual-custody bar/parcel ledger + automated royalty schedules |
Related Enterprise ERP & Engineering Guides
- Quarry Crushing & Aggregate Weighbridge ERP — Automated weighbridge tickets, crusher screen balance, and tipper dispatch.
- Heavy Earthmoving Fleet & Plant Telematics ERP — Excavator fuel burn, preventative maintenance, and operator hour tracking.
- Custom Mining, Mineral Processing & LIMS ERP — Talk to our industrial engineering team about your mine or processing plant.