Lube Oil Analysis
Wear metals, contamination, ROB.
Lube oil is the cheapest insurance policy on a vessel. A single sample tells a Technical Superintendent whether a bearing is wearing, whether seawater is leaking into the cooler, whether fuel is diluting the crankcase — all before any symptom reaches the engine log.
Four parallel streams
Lab analysis · Sampling compliance · Tank ROB · Daily consumptionTogether they answer the only three questions a TSI cares about: Is the equipment wearing? Are samples on schedule? Do we have enough oil to reach the next bunker?
The data sources
| Source | What it provides |
|---|---|
| Lab analysis (shore samples) | Wear metals, additives, contaminants, TBN, viscosity per equipment |
| Vessel-side LO forms | Daily AE crankcase oil consumption + monthly LO ROB |
| ERP (LO inventory) | Tank distribution, capacities, supplier records |
Lab reports arrive by email from Castrol, Chevron, Mobil Serv, Shell, TotalEnergies, Gulf, Maritec, Marlab, VPS, Tribocare, and Viswa Lab. The pipeline parses each PDF or structured email body and normalises into the same record shape regardless of source.
Wear-metal patterns
For each metal the analyzer computes period-over-period rate of change. A step jump where the current value exceeds double the prior reading is treated as a discrete event — bearing wear, ring failure, contamination ingress — rather than noise.
| Pattern | Likely cause |
|---|---|
| Iron rising, gradual | Liner / ring wear |
| Iron + chromium step jump | Ring failure |
| Copper rising | Bearing wear |
| Lead + tin rising | Big-end bearing wear |
| Aluminium present at all | Piston / piston-pin damage |
| Silicon above 25 ppm | Dirt / air-filter ingress |
TBN reserve
| Reserve % | Status |
|---|---|
| ≥ 75% | Healthy |
| 50–74% | Trend down, monitor |
| 25–49% | Oil change discussion |
| < 25% | Overdue |
TBN reserve % = (TBN_current / TBN_new) × 100Viscosity drift outside maker spec at either 40 °C or 100 °C indicates fuel dilution (drop) or oxidation (rise).
Sampling compliance
D_next = D_last + F (F = configured frequency)Δ_days = D_next − D_today| Verdict | Condition |
|---|---|
| Overdue | Δ_days ≤ 0 |
| Due Soon | 0 < Δ_days ≤ 14 |
| In Order | Δ_days > 14 |
A vessel sampling on time but ignoring the trend is not better than a vessel skipping samples — both end with the same engine overhaul.
Worked example — MV POSUN
MAN 6S60ME-C main engine, after a refresh:
| Equipment | Sample | Findings |
|---|---|---|
| ME system oil | 2026-04-12 | Iron 42 → 68 ppm (+62% step), silicon 8 ppm — bearing wear suspect |
| ME cylinder oil | 2026-04-08 | TBN reserve 48% — trend down; flag for change |
| AE1 crankcase | 2026-04-15 | Fuel dilution 3.2% — within range |
| AE3 crankcase | overdue 38 days | analytical blind spot |
| Hydraulics | 2026-03-20 | OK |
LO tank ROB:
| Grade | ROB (L) | 85% capacity (L) | Bunker intake (L) |
|---|---|---|---|
| ME system | 8,400 | 12,750 | 4,350 |
| Cyl oil | 18,200 | 21,250 | 3,050 |
| AE crankcase | 1,250 | 1,275 | 25 |
Verdict: HIGH — ME system oil iron step-jump combined with AE3 sample overdue means the analyzer is missing data on one engine while another shows accelerating wear.
The pipeline tags escalation_required: true, raises the case to CRITICAL, and sends an A2A message to the TSI inbox:
- Investigate ME system oil iron step-jump — pull bearing inspection at next port.
- Schedule AE3 LO sample within 48h — restore sampling cadence.
- Plan ME cylinder oil change at next port — TBN reserve below 50%.
- Bunker request: ME system 4,350 L, cylinder 3,050 L; AE crankcase already at 85%.
Under the hood
Contamination flags
| Parameter | Threshold | Risk |
|---|---|---|
| Water | Above engine spec | Cooler leak, condensation |
| Fuel dilution | > 5% | Injector leak, fuel-pump seal |
| Soot | Above engine spec | Combustion incomplete, ring blow-by |
| Silicon | > 25 ppm | Dirt ingress, air-filter failure |
Bunker planning — tank formula
Bunker intake = (0.85 × V_capacity) − V_currentNegative intake means the tank is already above 85% — flag for ullage check. The aggregate view collapses intake across all tanks per grade, then surfaces the recommended order quantity per grade for the next bunker call.
Daily consumption vs maker limit (AE crankcase)
C_daily = V_consumed (L) / H_running [L/h]Variance % = (C_daily − C_spec) / C_spec × 100Sustained variance above 20% signals piston-ring blow-by or excessive cylinder feed-rate — both are top-end overhaul candidates.
Escalation triggers
| Trigger | Severity |
|---|---|
| Wear metal above CRITICAL threshold | CRITICAL |
| Step jump in any wear metal | HIGH |
| Water above engine spec | HIGH |
| Fuel dilution above 5% | CRITICAL |
| TBN reserve below 25% | HIGH |
| Sample overdue more than 30 days | HIGH |
| Daily consumption variance above 20% sustained | HIGH |
| Tank ROB below safety reserve with no stem | CRITICAL |
Architecture
┌────────────────────────────────────────────┐ │ Lab feed · vessel forms · ROB inventory │ └─────────────────────┬──────────────────────┘ │ samples + tank data ▼ ┌────────────────────────────────────────────┐ │ Stage 1 — Collection │ │ Per-vessel snapshot of lab batch + │ │ shore schedule + tank ROB + consumption │ └─────────────────────┬──────────────────────┘ │ structured evidence ▼ ┌────────────────────────────────────────────┐ │ Stage 2 — Analysis │ │ Wear-metal trends · contamination · │ │ TBN reserve · sampling compliance · │ │ tank distribution · consumption │ └─────────────────────┬──────────────────────┘ │ verdict + scores ▼ ┌────────────────────────────────────────────┐ │ Stage 3 — Expert review │ │ Auto-escalate to TSI when triggered │ └────────────────────────────────────────────┘Why script-driven
Wear-metal rate maths, TBN-reserve calculation, sampling-frequency arithmetic, and bunker-intake formula all live in deterministic Python. A wear-metal trend that flips from “monitor” to “escalate” between two samples is a real change in the data, not a model decision.