Skip to content

Crew Compliance

Can the vessel sail?

A vessel can be perfectly maintained, perfectly bunkered, and perfectly certified, and still not be allowed to sail. Crew is the binding constraint that catches everything else flat-footed.

safe manningCoC / STCWcontract pressurerelief logisticsMLC rest hours

Four constraints — all must hold

ConstraintFailure mode
Minimum safe manningRank slot empty or under-rank → vessel non-compliant
Certificate validityOfficer’s CoC / GMDSS / medical lapsed → cannot sail in role
Contract pressureOfficer past contract end with no relief → MLC fatigue concern
Rest hoursSustained breach → SMS deficiency, PSC exposure

Pass any three and fail one — the vessel still doesn’t sail.

Where the data comes from

SourceWhat it provides
Vessel ERP (crewing module)Roster, ranks, sign-on dates, contract terms, nationalities
Crew certification registerCoC, GMDSS, STCW endorsements, medical fitness, vaccination
Travel / visa coordination feedRelief logistics — visa lead-time, travel itineraries, quarantine
Rest-hour recordsMLC 2.4 compliance entries (vessel-filed)
Minimum safe manning certificateFlag-issued, defines mandatory rank slots

Manning compliance

The minimum safe manning certificate lists exact rank-slot requirements. The pipeline cross-checks the current roster against it. A rank-slot empty or filled by an under-ranked officer triggers a shortfall — severity CRITICAL, every time.

Certificate validity

Each officer carries:

  • CoC — rank licence, flag-issued
  • GMDSS — deck officers
  • STCW endorsements — by vessel type (tanker, gas, chemical, polar)
  • Medical fitness — typically annual or biennial
  • Vaccination records — trade-specific requirements
  • Travel documents — passport, seamen’s book, visas

Expiry logic is the same window classification used in the certificates pipeline:

Δ_days = D_expiry − D_today
WindowAction
Already expiredOfficer must not sail — escalate immediately
0–30 daysRenewal urgent — coordinate with crewing
31–90 daysRenewal in planning
Beyond 90 daysRoutine

Crew-certificate renewals are paperwork-bound — they take weeks and depend on physical presence for medicals. A certificate at 30 days that hasn’t started the renewal process is already late.

Contract pressure

StateCondition
On contractContract end in future, relief planned or being planned
ApproachingContract end within 30 days, relief plan should exist
Over-contract (with relief plan)Contract end past, relief logistics in motion
Over-contract (no relief plan)MLC fatigue concern — escalate

An officer over-contract by more than 30 days with no relief plan is the textbook MLC-fatigue exposure.

Roster snapshot — MV POSUN

Mid-passage Singapore → Suez, end-of-April review:

RankSign-onContract endΔ daysStatus
Master2025-12-012026-06-01+30OK
Chief Officer2025-11-122026-05-12+10Approaching — relief plan needed
2nd Officer2025-10-152026-04-15-16Over-contract no relief plan
Chief Engineer2025-12-202026-06-20+49OK
2nd Engineer2026-01-082026-07-08+67Medical expired 2026-04-01
3rd Engineer2026-02-222026-08-22+112OK

Plus: 12 rest-hour breaches across 4 officers in April — Chief Officer 5, 2nd Officer 4, Chief Engineer 2, Bosun 1.

Verdict: HIGH. The pipeline routes the 2nd Engineer medical to the Marine Superintendent (next port Suez, 6 days), routes the 2nd Officer over-contract to crewing for immediate relief planning, and logs the rest-hour breaches for the next SMS audit.

Under the hood

Relief logistics — critical-path slack

Once a relief is planned, several lead-times stack:

  • Visa — does the joining officer have the destination-country visa?
  • Travel — flights from home country to join port, transit visas
  • Quarantine — destination-country requirements
  • Medical — must be current when boarding
def relief_slack(officer, next_port, today):
contract_end = officer["contract_end"]
lead_visa = officer["replacement"]["visa_lead_days"]
lead_travel = officer["replacement"]["travel_lead_days"]
lead_quarantine = officer["replacement"]["quarantine_days"]
lead_medical = officer["replacement"]["medical_lead_days"]
relief_critical = max(lead_visa, lead_travel,
lead_quarantine, lead_medical)
days_to_port = (next_port["eta"] - today).days
days_to_contract = (contract_end - today).days
# Negative means we won't make it
return min(days_to_port, days_to_contract) - relief_critical

Negative slack triggers a relief-routing review — sometimes a relief that can’t make Singapore can make Colombo a few days earlier.

MLC rest-hour rules

Maritime Labour Convention 2.4 rest-hour requirements:

H_rest ≥ 10 h in any 24 h window
H_rest ≥ 77 h in any 7-day window

The 24-hour rest may be split into a maximum of two periods, one of which must be at least 6 hours, with no more than 14 hours between consecutive rest periods.

A breach is logged whenever an officer’s record violates either constraint.

PatternVerdict
Single isolated breachAcceptable noise
Multiple breaches same officerWorkload distribution problem
Multiple breaches across officersOperational overload (heavy port-call window?)
Sustained pattern across monthsSMS deficiency — systemic
Escalation triggers
TriggerSeverity
Manning shortfall vs minimum safe manningCRITICAL
Officer certificate expiredCRITICAL
Officer past contract more than 30 days with no relief plannedHIGH
Sustained rest-hour breaches (3+ per officer per month)HIGH
Visa / travel blocking imminent reliefHIGH
Fleet-wide pattern across multiple vesselsHIGH
What the senior review contains
  1. Manning status — roster vs minimum safe manning, shortfalls flagged.
  2. Certificate timeline — every officer’s certificates with expiry windows.
  3. Contract pressure — officers approaching, over-contract, with or without relief plan.
  4. Relief logistics — planned reliefs with critical-path lead-time and slack.
  5. Rest-hour exposure — breach count per officer and aggregate, fatigue-risk verdict.
  6. Recommendations — prioritised by sail date.
  7. Escalation decision — to whom, and why.

Why crew is the binding constraint

Engineering issues can usually be fixed with parts and time. Documentation issues can be fixed with paperwork. Crew issues hit a wall the moment the vessel reaches port — if the relief isn’t there, the vessel doesn’t sail. The pipeline runs continuously because a 30-day window can collapse to zero with one cancelled flight or one delayed visa.