Skip to content
All cases

How I changed the way 28,000 companies manage rail freight

When I joined JSC RZD, customers needed specialist knowledge to use its freight portal: which document came next, what internal codes meant, and where to finish tasks the portal couldn’t handle.

I initiated a redesign around the shipment itself, designed the core workflows and prototypes, and stayed hands-on through delivery while building and leading a five-person design team.

The platform reached 33k monthly active users across ~28,000 companies. The cycle from accepted shipping documents to signed delivery paperwork fell from 30 to 14 days, and inquiries to RZD managers dropped by 45% in the first year.

Role
Senior Product Designer / Design Lead
Company
JSC RZD
Product
Freight client platform
Period
2019 – 2023

The portal had functions, but no workflow

The legacy client portal was slow, unstable and inconsistent. It pulled single functions out of a much larger railway system, and those functions never added up to a customer journey.

Arranging one shipment meant moving between unrelated functions and, in many cases, back to the legacy system to finish. One document exposed 29 statuses, many of them technical. After signing an important document, the portal could drop the user on the home page with no confirmation and no next step.

This was not a screen-level design problem. The portal was essentially a thin access layer over railway functions, while customers still depended on the underlying professional system to complete real work. I built the business case around the potential economic and reputational impact, won support for a broader product rebuild, partnered with the development department, and built a design team around it.

I rebuilt the product around one complete job: moving a shipment

My core idea was to stop treating documents, tracking, payments and services as separate destinations. The customer’s goal was not to fill in a document or check a status; it was to move a shipment from origin to destination. I introduced Shipment as the central product entity and connected everything needed to complete that job around it.

Each shipment held the route, cargo, wagons and containers, documents, services, money and a timestamped event feed, so users could move through a process without memorising how the railway structured it.

Before: separate functions

  • Documents
  • Tracking
  • Payments
  • Services

Customers often had to go back to the legacy railway system to finish. One document had 29 statuses; signing could drop the user on the home page.

After: one shipment

Shipment · plain status · next action

  • Route
  • Cargo
  • Wagons & containers
  • Documents
  • Services
  • Money
  • Event feed
From separate functions to a single shipment-centred workflow.
Read diagram description

Before: documents, tracking, payments and services were separate functions. Customers often went back to the legacy railway system to finish. One document had 29 statuses, many of them technical, and signing an important document could drop the user on the home page with no next step.

After: the shipment is the central object. It holds the route, cargo, wagons and containers, documents, services, money and an event feed, and shows a plain status with the next action.

One shipment brings together the next action, route, wagons and containers, events, cost and documents.View full size

I also cut the status model down to what customers needed. Technical states stayed available for the people who used them; the main interface showed plain names, timestamps and the next action.

With the shipment as the main object, documents, tracking and payments shared one structure, and that model became the standard across the platform.

Bringing route, services and price into one decision

Clients used to plan routes from their own experience, tips from colleagues and unofficial tariff calculators. I brought route, station and tariff data into one view, so they could compare realistic options side by side.

Four routes compared on what decides the choice: time moving, time waiting, and where wagons get held.View full size

I labelled the useful trade-offs, such as fastest and cheapest. The bigger change was extra services. They used to sit in catalogues and separate processes, so a customer had to know they existed. I moved them into route planning, where the system knew the origin, destination, cargo and special requirements and could offer the options that fit, such as warehouse pickup or the road leg to the railway. Use of additional services grew by 5%.

The rail charge had one more catch: RZD fixed the final amount after the shipment arrived and the last documents went through. So I showed a calculated price, its breakdown and the costs that could still change, and labelled the whole figure an estimate.

The estimate sat next to the company’s settlement account. If the shipment pushed the company past its allowed debt limit, the product asked the client to contact their RZD manager first.

Rail charge, chosen services and possible extras stay separate, with the account balance before and after.View full size

Making a 278-field legal document usable

For complex freight operations, many customers had no practical alternative to a professional legacy system. It was powerful, and it demanded long training and deep domain knowledge. We were building that alternative.

The consignment note showed the gap best. It could hold up to 278 fields across hundreds of scenarios: dangerous goods, export, containers, mixed cargo, extra parties such as insurers or private-track owners, and many rare exceptions.

I regrouped fields by meaning and then by role, showed a conditional section once an answer called for it, and pushed for autofill from every source we could trust. Pick timber, and the system knew the cargo fell outside dangerous goods and dropped that branch. Ship a container inside a wagon, and the flow opened the nested fields at that moment.

The note fills itself from the company profile, the earlier shipment and the contract, and asks only what this cargo needs.View full size

Checks ran as early as they could, so nobody went far down an invalid branch. Before signing, users saw a short summary, the check results and a PDF preview. Colleagues could share drafts within the company’s permissions.

The work took almost a year, because rare cases mattered. We launched the waybill once we trusted that it covered the full decision tree.

The last check before signing sits beside the legal document the carrier receives.View full size

Turning repeat shipments from data entry into review

Many companies shipped the same cargo along the same routes, using almost the same document set each time. With cloning, a recurring shipment meant checking what had changed and signing it.

91% of regular shipments used clone/reuse.

A repeat shipment: what gets copied, and what is always entered again.View full size

Bulk wagon work followed the same idea. A shipment could involve 1 to 50 wagons, and a company might run hundreds or thousands. Customers could paste a list from their own systems, fix invalid or repeated rows, apply shared values and correct individual exceptions without starting over.

Errors in a pasted list get fixed in place, and the line numbers still match the source.View full size

The system knew about a hundred parameters for many wagons and containers. I surfaced single values where they mattered, such as a wagon due for maintenance or an export requirement.

A wagon as a physical object: photo, type, location, cargo, and the repair that affects this trip.View full size

Containers had their own numbers, documents and states, yet they travelled inside wagons, so I kept that link in view.

Each container hangs off the wagon that carries it.View full size

Moving legal actions into the workflow

I brought legally significant signing into the document workflow, using a browser extension to work with the client’s certificate. Users could review what they were signing, select eligible documents and confirm a package without leaving the product.

Signing used to depend on separate software and USB certificates, which broke up the workflow and made bulk operations hard.

One confirmation in the extension signs the whole package.View full size

After signing, the product showed users what they had signed, the new state and what came next. Around 20% of documents went through this flow.

After signing: what went through, the new states, and the act still waiting for a response.View full size

Automation taught us caution. An early option to auto-sign after a delay was easy to set up wrong and filled the support queue, so I made turning it on a deliberate, explicit step. We limited mass signing of waybills for the same reason: people had to understand each legal action they took.

Designing around the last reliable railway event

Rail freight tracking has little in common with a parcel service. RFID readers, station sensors, cameras reading wagon numbers and confirmations from staff on the ground provided location updates for most wagons.

I designed the product around the last reliable event: current station, timestamp, movement state, delay, expected delivery and related documents. The map helped with geography; the event timeline stayed the source of truth.

A custom group of 8,426 wagons, read station by station.View full size

Clients also tracked wagons in bulk, in custom groups of up to 10,000 wagons or containers spread across the network, and switched between groups in the tracking view. The map clustered a group by location, so clients could read a large fleet and still open any single wagon.

The same group clustered on the map, with the selected wagon at its last reported station.View full size

Notifications used the same model: an arrival for loading, a move into storage, a delay or a document ready to sign appeared in the feed, with a link to the next action where one existed.

The same platform for operational roles

Freight customers were one audience among several. Wagon owners and RZD staff had their own views for fleet operations, company administration and document processing.

Wagon owner workspace
A wagon owner sees the fleet by state and by station.View full size

Inside RZD, staff used the same components to register companies, check the power of attorney a representative would sign under and process incoming documents. The dark theme sets these operational workspaces apart from the customer platform.

Internal RZD workspace
RZD staff check a company’s power of attorney against the role it asked for.View full size

Designing mobile around work beside the train

My first mobile direction borrowed too much from desktop, where people worked with hundreds of wagons. Field research showed something else: on a phone, people cared about the train in front of them, about 20 wagons or fewer.

I rebuilt the mobile product around those short operational tasks. An RZD employee could inspect a wagon, attach photos and comments, and create the documents that changed its state. A client could scan a wagon or container number to identify the cargo, check when unloading could begin, sign a handover document, or file a complaint beside the train.

On the phone: what needs signing today, a wagon’s last reported station, and a scan of the wagon number to open its record.View full size

One constraint stayed out of design’s reach: some stations banned electronic devices. Staff there kept recording on paper and typed it in later at the office.

Research became part of every major release

I ran in-product surveys about once a quarter, and a round could draw around 5,000 responses. About 50 qualitative interviews and task-based prototype sessions followed, across company sizes, experience levels and satisfaction.

I also built a standing research group of about 20 companies. We got domain experts on call and early feedback; they saw and shaped proposals before development. Clients took part in large numbers because they saw their feedback change a product they depended on.

  1. 01 · In-product survey~5,000responses a round
  2. 02 · Patterns and recruitmentwho to talk to next
  3. 03 · Interviews and prototype testing~50participants
  4. 04 · Partner reviewbefore development
  5. 05 · Ship
  6. 06 · Usage and support signals
  7. ↻ back to 01 for the next cycle
  8. Standing partner companies~20in every round of 03 and 04
Research ran as a loop inside every release, with the standing group in each round.
The research loop as text
  1. In-product survey, about quarterly: ~5,000 responses a round.
  2. Patterns and recruitment: who to talk to, by company size, experience and satisfaction.
  3. Interviews and task-based prototype testing: ~50 qualitative participants.
  4. Partner-company review: proposals seen before development.
  5. Ship.
  6. Usage and support signals, which start the next cycle.
  7. A standing group of ~20 partner companies feeds steps 3 and 4 in every cycle.

The hardest audience turned out to be internal. Long-time staff resisted when they began moving off the professional legacy system they had used for years. Winning them over took training, co-design, a staged rollout and leadership support.

Not every improvement could stay in the product

We also digitised the claims process, so disputing a charge and gathering its documents became much simpler for customers. An internal governance review later cut its scope, a reminder that organisational constraints shape an enterprise product as much as user needs do.

What changed

These results came from more than interface work. We digitised paper processes, changed workflows across several departments and gave clients and RZD employees faster ways through the steps the railway already required.

Average cycle from accepted shipping documents to signed delivery paperwork
30 → 14 days
Inquiries to RZD managers in the first year
−45%
Share of all complaints related to IT systems
23% → 5%
Documents completed without paper
90%
Satisfaction in quantitative research
89%
Clone/reuse among regular shipments
91%
Route-calculator usage among clients planning shipments
70%
~28,000 companies33k MAU~80% of the national rail-freight market

I kept designing as the team grew from 1 to 5

I started as the hands-on designer behind the new product concept. As the team grew, I added a mid-level designer, then a junior who helped lay the mobile foundation, and in the end led a five-person design team on the portal, part of a design department of seven designers across four products.

I kept designing key flows, reviewing implementation, running research, defending process changes, mentoring designers and growing the design system. I also ran small internal hackathons to test ideas fast.

By the end, designers helped decide how processes worked, along with how screens looked.

What I would improve in a similar project

Treat mobile as a field tool earlier

At first I carried too much of the desktop mental model into mobile. Next time I would define the field context, batch size and physical constraints first, and design the mobile product around those jobs.

Instrument complex document branches earlier

The waybill had a huge decision tree. Interviews and support data taught us a lot; stronger behavioural instrumentation would have shown which branches failed or kept forcing corrections.

Formalise permissions earlier

Permissions grew more complex as companies delegated work across employees, roles and legal entities. I would set up the permission model as a product system in its own right from the start, before each workflow grew its own rules.

Next caseEvents PlatformAn internal events app that grew into a platform for participants and organisers. I designed the first release and its expansion across mobile and web.Read the case studyThe events app on a phone at a conference: Today at the Quantum Communications Forum, the keynote live with 23 minutes left and a vote open, the round table next at 12:00, and the participant's day as a strip.

Open to Senior Product Designer roles

Based in Porto, Portugal, with authorisation to work here. Get in touch about a Senior Product Designer role or to discuss my work in more detail.