Skip to content

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.

wear metalsTBN reservesampling compliancetank ROBbunker planning

Four parallel streams

Lab analysis · Sampling compliance · Tank ROB · Daily consumption

Together 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

SourceWhat it provides
Lab analysis (shore samples)Wear metals, additives, contaminants, TBN, viscosity per equipment
Vessel-side LO formsDaily 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.

CastrolChevronMobil ServShellTotalEnergiesGulfMaritecMarlabVPSTribocareViswa Lab

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.

PatternLikely cause
Iron rising, gradualLiner / ring wear
Iron + chromium step jumpRing failure
Copper risingBearing wear
Lead + tin risingBig-end bearing wear
Aluminium present at allPiston / piston-pin damage
Silicon above 25 ppmDirt / 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) × 100

Viscosity 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
VerdictCondition
OverdueΔ_days ≤ 0
Due Soon0 < Δ_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:

EquipmentSampleFindings
ME system oil2026-04-12Iron 42 → 68 ppm (+62% step), silicon 8 ppm — bearing wear suspect
ME cylinder oil2026-04-08TBN reserve 48% — trend down; flag for change
AE1 crankcase2026-04-15Fuel dilution 3.2% — within range
AE3 crankcaseoverdue 38 daysanalytical blind spot
Hydraulics2026-03-20OK

LO tank ROB:

GradeROB (L)85% capacity (L)Bunker intake (L)
ME system8,40012,7504,350
Cyl oil18,20021,2503,050
AE crankcase1,2501,27525

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:

  1. Investigate ME system oil iron step-jump — pull bearing inspection at next port.
  2. Schedule AE3 LO sample within 48h — restore sampling cadence.
  3. Plan ME cylinder oil change at next port — TBN reserve below 50%.
  4. Bunker request: ME system 4,350 L, cylinder 3,050 L; AE crankcase already at 85%.

Under the hood

Contamination flags
ParameterThresholdRisk
WaterAbove engine specCooler leak, condensation
Fuel dilution> 5%Injector leak, fuel-pump seal
SootAbove engine specCombustion incomplete, ring blow-by
Silicon> 25 ppmDirt ingress, air-filter failure
Bunker planning — tank formula
Bunker intake = (0.85 × V_capacity) − V_current

Negative 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 × 100

Sustained variance above 20% signals piston-ring blow-by or excessive cylinder feed-rate — both are top-end overhaul candidates.

Escalation triggers
TriggerSeverity
Wear metal above CRITICAL thresholdCRITICAL
Step jump in any wear metalHIGH
Water above engine specHIGH
Fuel dilution above 5%CRITICAL
TBN reserve below 25%HIGH
Sample overdue more than 30 daysHIGH
Daily consumption variance above 20% sustainedHIGH
Tank ROB below safety reserve with no stemCRITICAL
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.