Inchcape — Case study · Tom Nicholls
Tom Nicholls [email protected]
Case study · Inchcape Shipping Services

Calculating
port call costs

Turning a paper-and-spreadsheet business into a quoting system

Organising ships in port is still run on paper and, occasionally, spreadsheets — an archaic, ancient business. Inchcape wanted to digitise it, and the pressing reason was money: large customers disputed paper invoices for months on end, and nobody could reliably say what was owed or where a dispute had got to.

Role
Lead product designer
Team size
Me & a UX researcher
Platform
Web app — port cost calculator
Industry
Shipping & maritime services
Users
Local port agents and pricing teams, worldwide
Final design, live in production
iss-optic.com
INCHCAPE
OPTIC
/ Dalian Express (9601730) – (1003)/ MUNDRA (INMUN1) India/ LA00123412
Help
TN
Overview
Configure Job
Vessel programme
Services
Operations
Savings
LA00013224
+  Add job
Job Type
Appointment
Performing Agent
ISS MUNDRA
*Total Amount (INR) ⓘ
100,000.00
Revisions
Version
Status
Pre-Appointment
Download
Submit
DA Tips Drag and drop the files over each DA to upload to any of them.
Add DA
Label
Liable Party
Processing Party
Services
DA Amount
Docs
DA
Status
Actions
MOL Marine Crewing
MOL Chemical A/S
MOL Chemical Ltd
12
6550.00 USD
🗎
Approval Pending
Resolve
MOL Marine Crewing
MOL Chemical A/S
MOL Chemical Ltd
12
6550.00 USD
🗎 2
Draft
Resolve
Bank Details
14230582
Address to
MOL Chemical Ltd
Address to
MOL Chemical Ltd
GL
GL Posted ⓘ
DA History
Previous Total: 148,300.00 INR New Total: 198,300.00 INR ⚠ Variance 20% ↑
DA Type: Original
Total Received: 0.00 GBP / Total Outstanding: 0.00 GBP
Funding
Port costs 2490.00 GBP2490.00 GBP40%1295.00 EUR20%
Partially Received

The shipped job screen — disbursement accounts, funding and services in one auditable place.

01

Understanding the business need

Inchcape staff spent the majority of their time calculating port call costs. There are thousands of in-port services, and the price of each one varies on factors like time of day and vessel draft. Every quote was assembled by hand from tariff documents.

The pressure to get a quote out quickly enough to stay competitive produced long hours, high stress and real inefficiency for the business. And because the paperwork was the only record, invoices could be disputed for a very long time — sometimes until Inchcape dropped the customer.

The business problem

Quotes were slow to produce and impossible to audit, so debts owed to Inchcape were slow to collect.

Digitising the calculation wasn't a tidying exercise. It was the only way to give every line of a quote a traceable origin — and therefore to make an invoice hard to argue with.

02

User research

Inchcape's local port agents take enquiries from customers looking to bring a vessel into port, and have to create a quote as quickly as possible. I went to the people doing it and mapped where the time actually goes.

The race isn't to price a call accurately. It's to price it accurately before a competitor prices it at all.

Four pain points behind every quote
Getting the right information
Extracting everything needed for a quote out of the customer, first time.
Guessing the services
Working out which in-port services this vessel will need takes time and experience.
Gathering the prices
Prices live across tariff documents, vendors and local rules. Finding them is very difficult.
Beating the competitors
Getting the quote back before someone else does — the whole job, under time pressure.
Remote focus group with port managers, reviewing the existing DA-Desk list together

A focus group with port managers — walking through the tools they use today to find what a new system actually had to do.

03

Solution ideation

We ran an in-depth feasibility study against the alternatives, and concluded it would be advantageous to build our own system rather than bend an existing product around a pricing model this specific.

Nothing off the shelf could hold thousands of port services, each with their own variables, and still be editable by the people who own the tariffs locally.

Options assessed
Low-code / no-code — fast to stand up, but limited once the formulas get genuinely complex.
Pricing / CPQ — built for quoting, but needs heavy customisation for non-sales cases like port tariffs.
Formula management — powerful modelling, overkill for the simpler calculations and a harder setup.
Assessment of third-party solution categories — low-code, CPQ and formula management — with features, pros, cons and potential fit

The third-party assessment — each category weighed on features, pros, cons and fit before we committed to building.

04

Mapping the experience, then the pricing

First the end-to-end experience of a port call, so everyone could see where a quote sits in it. Then the harder half: an in-depth discovery into how the existing workflow and pricing structure actually work.

We took in documentation from all over the world — the tariffs for ports, services and vendors, the pricing structures, and the variables such as time of day that change a figure. No two regions documented it the same way.

As-is experience map — vendor onboarding from initial contact through to a draft vendor record

The as-is experience, mapped stage by stage — here the vendor onboarding run, from a first email to a draft vendor record marked ‘New – Unverified’. Scroll to follow it across.

Houston Pilots 2024 tariff document — draft rates by zone and unit rate tables

One of hundreds of source documents — the Houston Pilots tariff, where a single pilotage charge depends on zone, draft and a unit rate derived from length × breadth.

What the documents told us
A price is rarely a price — it is a formula over vessel attributes, zones and bands.
The same service is documented differently in every region, so the model had to hold variation without hard-coding it.
Minimums, thresholds and time-of-day rules sit in prose, not tables — they have to be read out and encoded deliberately.
05

Designing the business logic

To build a calculator that could produce a quote instantly, I had to take the pricing logic out of the tariff documents and turn it into formulas and variables. That work is what revealed the true complexity of the requirement — and it is the part a spreadsheet was hiding.

With the logic understood, I could design a system that lets users enter and edit the pricing structure for their own port without a developer in the loop. Some of them were already working in Excel and VBA, so I deliberately kept the interaction close to their existing way of working rather than asking them to learn a new mental model alongside a new tool.

The people who knew the pricing were spreadsheet people. Designing against that skill, instead of past it, is what made local ownership of tariffs possible.

Top level formula slide — pilotage fee expressed as a sum of colour-coded variables

A single charge, written out as a formula — every colour is a variable that has to be looked up, entered or derived.

Variables and calculations table — each variable with its formula, functions used, whether it is included in the PDA calculation, a worked example and example price

Every variable specified in the open: its formula, the functions it needs, whether it belongs in the PDA calculation, and a worked example with a real figure. This became the contract between design and engineering.

06

Sketches to wireframes

Sketching first, cheaply and in volume, to find the shape of a quote — then wireframes detailed enough to argue about with pricing specialists and engineers in the same room.

Pencil sketch of the tariff editor — services rail, tariff list, formula canvas and an objects panel of variables and functions

The sketch that settled the layout — services, tariffs, a formula canvas, and a panel of variables to drop into it.

Wireframe of the tariff editor — Pilotage_Fee formula built from variable tokens, an autocomplete of variables, and a tariff tester showing the output price

The same screen wireframed — variables as tokens, autocomplete for finding them, and a tariff tester that prices a sample vessel as you build.

07

User journeys

Journeys for each side of the system: the port agent turning an enquiry into a quote in minutes, and the pricing owner keeping a port's tariffs current. Both had to work, because a calculator is only as good as the numbers behind it.

Create enquiry, step by step
Start the enquiry and enter what the customer knows.
Create the PDA and select the port.
Build the vessel and operations programme.
Review the default services the operations imply.
Fill the gaps the calculation still needs.
Calculate prices — the tariffs do the rest.
Create Enquiry user journey — eight steps from starting an enquiry through to calculating prices, each with screens and annotations

The Create Enquiry journey, annotated screen by screen — including the open questions and actions we still had to resolve. Scroll to follow it across.

08

User feedback, and how we prioritised it

Feedback came back from ports around the world, each with a local wrinkle they considered essential. Taking all of it would have produced a system as unmanageable as the paperwork it replaced.

So we prioritised it in the open — scored against the impact on quote speed and on how defensible the resulting invoice would be, then fed back into the build in slices. Ports could see where their request sat and why.

Screen-shared requirements document in a call with the wider team, working through numbered feedback items and who owns each

Working the combined requirements list with the team on the call — every request numbered, described, owned, and marked in or out of the next slice.

09

Design library

A library of the components this product leans on hardest — dense tables, editable rate rows, numeric inputs and states — so the calculator stays consistent as more ports and services come into it.

Underneath it, a token layer: one font family with seed and alias sizes, and a colour table where every shade is published with its contrast ratio and pass level. Dense financial tables are unforgiving about contrast, so the decision was made once, in the library, rather than per screen.

Design library type page — Inter regular, italic and semibold, with a table of font tokens, values, line heights and paragraph spacing

Type as tokens — seeds and aliases, so a size change happens in one place.

Design library colour table — primary, neutral, success, warning, error, blue and green ramps with hex values, contrast ratios and AA/AAA pass levels

The colour table — every shade published with its contrast ratio and whether it passes for large and small text.

10

Final UI design

A port cost calculator that produces a quote from a vessel and a port instead of from an afternoon of document-hunting — and leaves a record of how every figure was reached.

Appointment verification screen — vessel, port, ETA and ETS entered against a five-step progress rail, with a date and time picker open

Starting a job: vessel, port and times, with the five steps ahead shown and the vessel sanction-checked as soon as it is chosen.

The job screen — disbursement accounts, funding, and services grouped by husbandry, port costs, berth and voyage, each line priced

The full job, end to end — DAs, funding and every service line priced and status-tracked. Scroll inside to see its length; that whole record used to be paperwork.

11

What I took from it

Do the logic before the layout

Deriving the pricing formulas myself was the design work. Without it, every screen would have been a guess at a domain I didn't yet understand.

Meet expertise where it lives

Designing close to Excel wasn't a compromise — it was how we got tariff owners to trust the system with their own numbers.

Digitising is an evidence problem

The commercial win wasn't faster quotes on their own. It was a quote you could trace, which is what makes an invoice stick.

More work, or a chat?
London SE9 · 07736 048842
All case studies Get in touch