Book a call
Case study
Speed Logistics Marine
Maritime logistics

Turning a flooded inbox into a live map of opportunities

Every day Speed Logistics Marine receives thousands of emails about vessels and cargo, each written in its own style. We built a machine-learning pipeline that reads them, turns them into structured data, puts it on a map of shipping regions and matches it against the company's capacity to surface opportunities.

SLM vessel location screen: world map of shipping zones with a region selected and a table of vessels parsed from emails
1,000s
of free-form emails read and parsed every day, whatever the sender's format.
2 hrs
back in every team member's day, because incoming mail no longer needs manual reading and routing.
Engagement
Team
Region
Europe, global operations
Today
Run and evolved by MetaProject
01 · The business problem

The best opportunities were buried in the inbox

In maritime logistics, much of the market still moves by email. Counterparties send vessel positions, open dates and cargo details every day, and every sender writes them differently: free text, tables pasted into the body, abbreviations and shorthand that change from one office to the next.

At thousands of emails a day, no team can read them all in time. The information needed to match a free vessel with the right job was already in the inbox, but finding it depended on who happened to open which email first.

The brief: read every incoming email automatically, pull out the data that matters, and show the team where the opportunities are instead of making people search for them.

02 · What was at stake

No two emails look alike

Template-based parsing breaks the moment a sender changes their layout. The system had to understand content, not positions in a template.

Speed is the margin

An opportunity spotted hours late has often gone to someone else. Reading everything by hand meant reading most of it too late.

Data without context

A vessel's position means little on its own. Its value appears only next to the region it is in and the company's own capacity there.

Shared inbox inside the SLM ERP with vessel position emails, tags and folders across several accounts
03 · How we solved it

Four decisions that turned email into a data source

01

Teach the model the language, not the template

A machine-learning pipeline with a named-entity recognition model reads each email as text and extracts what matters, such as vessel name, deadweight, build year, position and open dates, whether the sender wrote a table, a list or a paragraph.

1,000s
emails parsed every day
02

Turn letters into a table people can trust

Extracted data lands in a structured table the team can filter by zone, deadweight, build year, laycan and update date. When a field cannot be read with confidence, the system flags it for manual entry instead of guessing.

2 hrs
reclaimed per team member per day
03

Put the table on a map

Every record is placed on a map of shipping regions, from the Mediterranean and the Baltic to the Red Sea and the Far East. The team selects a region and immediately sees the vessels and letters that concern it.

04

Match the market against our own capacity

The regional picture is compared with the company's own capacity to show where a vessel, a route and a job line up. From there, the vessel database lets the team check capacity and deadweight and model whether a vessel suits the workload before it is leased.

Email thread with vessel particulars and berth details, next to the message history
04 · Timeline
Part of the SLM platform

The inbox now works for the chartering team

Email intelligence runs inside the SLM platform next to vessels, contracts and accounting, so a parsed email links straight to the vessel and contract it concerns. The team starts the day from a map of what is available and where, not from an unread count.

MetaProject built it and keeps running and improving it as part of the platform we have supported for more than five years. During the 2025–2026 re-platforming, the language-processing module moved to the new stack with the rest of the system.

1,000s

emails parsed every day

2 hrs

reclaimed per person per day

Map

of opportunities by shipping region

5+ years

run and evolved by MetaProject

05 · Results in full

1,000s

of free-form emails parsed daily

2 hrs

back in each team member's day

Any format

tables, lists or free text

Under the hood

An email client inside the ERP with several accounts per user, AND/OR filters, automatic folders by keywords, spam and archive; ML extraction of vessel and cargo data; a regional map with filters by zone, deadweight, build year and dates; links from each email to its vessel and contract.

Python · spaCy named-entity recognition · machine-learning extraction pipeline · PostgreSQL · integrated email client · regional map with vessel filters

FAQ

Questions about this project

How can a model read emails that are all written differently?

By reading them as language rather than matching them to templates. A named-entity recognition model extracts vessel names, deadweight, build year, positions and open dates whether the sender wrote a table, a list or a paragraph.

What happens when the model is not sure about a value?

It does not guess. Fields that cannot be read with confidence are flagged so the team can add them manually, which keeps the table trustworthy enough to act on.

How does email data turn into business opportunities?

Parsed records are placed on a map of shipping regions and compared with the company's own capacity. The team sees where available vessels, routes and jobs line up, then checks capacity and deadweight in the vessel database before committing.

How much time does it save?

Thousands of emails a day are read automatically, and each team member gets about two hours a day back because incoming mail no longer has to be read and routed by hand.

Is your team reading emails your system could read for it?

Tell us what you are building. We will come back with an honest view of how we would approach it.