Streamlining ticket purchases for long range train travel

PKP is biggest rail provided in Poland, however their current app design makes booking travel confusing and tedious. In this project I redesigned ticket flow, simplifying the process and adding core features enabling passengers to book their travel effortlessly.

UX Design

Personal Project

2025

Context

PKP Intercity is biggest rail provider in Poland. Some time ago when I was trying to book a ticket for my travel, I decided that this time I’ll order it through the native PKP app instead of website. I was really stunned to see that such a big company has an app which design is far from optimal. The process of buying the ticket was far from pleasant for me. And then I asked myself, why is that. So I decided to dig deeper and try to find solution to PKP problem with their app ticket problem.

Challenge

PKP app (and train booking app in general) is very complex, featuring many design elements that are tailored specifically to the use context of given provider. In this project I focused on ticket flow and optimising purchasing process, while also making sure my solutions will be tailored to the use & business requirements of the company. On top of that it was very crucial for project success to thoroughly research user behaviour and patterns regarding traveling with trains in Poland.

Optimise and Improve ticket flow

Update app’s UI

So, who do I design for?

Research

Millennials & Gen-Z

This group are the most active users of PKP app and compose majority of people traveling by trains in Poland. They are tech-savvy and value convenience above all.

Business Travellers

In recent years, Polish economy witnessed significant growth, which resulted in many people now travel between important enterprise hubs across country(ofter with PKP)

Tourists

International & local tourists rely heavy on PKP services as main mean of travel between larger cities and tourist destinations in the country, which emphasises need for accessible product.

Expert* Review

To better understand potential problems with the UI and structure of the current app, I conducted an expert review, to uncover potential problems and map out areas of the app that need most attention.

Research

Main takeaways

Search-bar is very outdated and limited in options, requiring users to move few separate pages in order to add passengers, change dates or apply filters.

Cluttered UI

UI of the important sections of the app is cluttered, not following any guidelines, often having inconsistent spacing. All of this hinders scalability and readability.

Inconsistent Labels

Many Labels thorough the app are inconsistent, changing names depending on the page(even though it’s still the same features)

User Needs & Expectations

Research

Efficient navigation & search system

During research, many users emphasised that having efficient way to input data is one of the most important features they would expect, since it saves time.

Information about delays & disruptions

With long range travel and many connections, having real time update is very important for passengers, enabling them to plan ahead and stay informed.

Clear information structure to enhance security

When it comes to searching for actual connection, many users mentioned that they expect interface to display information in structured and clear way.

User personas & Planing behaviour

To get better understanding of core passenger profiles, I created few user personas based on research I did at the beginning of the project. This lead me to come across interesting pattern that helped me to highlight 2 prominent type of personas relating to how people plan their journeys.

Research

Structured Planner

Messy Planner

Why does it matter?

Different approach

It’s important to consider how different people plan their travel. Some of them need to know every detail because travel is part of their living or they use it to get to work, which means no mistakes allowed. On the other side, a lot of people(especially daily commuters & tourist) usually are happy with whatever comes first.

It takes time

Different planning behaviour also reflect in time it takes people to buy their ticket. More structured approach usually involves much more information comparison, while users who plan on the go, want to be time efficient and get going fast.

Research

Insights from user research

Through the research, I managed to get a lot of insight into how users operate within the app and what are the core needs & features they expect. Here are some of most interesting ones.

Ticket Selection

Research have showed that most of the people prefer to indicate ticket type or add passengers earlier in the process, before they start searching for connection.

Discounts

PKP enables users to use many discount options, hence why users here want to have very clear overview of available discounts and easy way to use them.

E-wallet

Even though you can access the ticket inside of the app, users usually prefer to have ability to add ticket to their phone wallet(better offline usability)

Quote from interview

“I like to have the ability to choose how many people are traveling up front, It saves time and shows you better price predictions, however I do appreciate if I can edit my choices later”

Understanding the journey

To finalise my research and better understand on which areas of current product I should focus the most, I decided to use customer journey mapping in order to pin point potentially chokepoints in current flow and better identify problems with the design.

Research

So, what's wrong?

After finalising research, I combined all of the information together and listed key problems that impact the product and it’s ability.

Problem

Confusing Flow

Users agreed that current flow can be confusing at times, especially closer to the earlier part of it, where limited search bar and weir way of accessing date & time selector can catch some people off guard.

Information overload

With recent updates to the app, UI became very cluttered, especially when in comes to cards and journey information, often displaying a lot of unnecessary information that hinders readability.

Unclear Discounts

Even though discounts are located on main page, it’s hard to notice them. Also further into the flow, labelling of the discounts is very unclear, not giving users any hints about it potential application.

Before I jump to Figma...

Prioritisation matrix & New ticket flow

Before design, I wanted to make sure I will prioritise most important features and that I have new clear flow to implement, that builds upon the research and simplifies the process of buying tickets.

Solution

Design

This time, search bar consist of more options for users to search for their travels. Now instead of just location, users can adjust their time and date, choose filters and add passengers

(Highly requested feature)

Visible Discounts

Now discount section, shows more visible cards, that consist of labels that actually tell user what potential discount they can get.

New Cards

New UI includes new set of cards, containing important information like travel destination, times and layovers. All cards are constructed in a way to provide users with information they need at the time, without overwhelming them.

Scan-ability

When designing, I put high priority on making the cards easy to scan. Big labels, clear typography and spacings as well as information structure makes their UI clean and responsive.

Prevent Errors

Error prevention is very important part of good product design especially when user’s money is at play. By introducing smart pop-ups and reminders, I made sure that user stays informed about his actions.

Make it flexible

It’s very possible that in a rush users might forget something or add a wrong option. In my design I introduced many options to quickly change or adjust discounts, passengers & ect.

Information structure

New design utilises progressive disclosure to limit amount of information visible at once, to reduce overwhelming users. First part of the flow have only most relevant information at hand & later more detailed overview appears to reinforce decisions.

Provide Feedback

Since there is a lot of variables when it comes to choosing a ticket or selecting connections, I put high emphasis on providing users with steady feedback about how far in the process are they and what are their current choices / status.

Testing

Research

Usability Protocols

To validate the design I decided to perform usability testing. By checking many scenarios, including the most probable use cases for this app, I tested time needed to complete tasks, success rates as well as heuristic analysis.

A-B Testing

Considering how complex this design is, some way to check for best solutions for many of UI elements were needed. A-B testing helped me to choose which elements needed change or replacement & which worked good from the start.

Iterations

Research

Important note!

*Design you see in “Solution” part is the final version, after testing and iterations. Below you will be able to see some elements that were part of iterations based on feedback.

Examples

Those are just some examples of iteration within the design based on testing. Main focus of the iterations revolved around improving scalability, decluttering UI and making some important details more visible or accessible to the users.

Impact

Design

-30%

Less time needed to buy a ticket compared to previous design.

What are users saying?

User 1

“New search bar feels so much better. I really like the fact that I can now choose amount & type of passengers right away. It was one feature that I felt like was missing in the original app”

User 2

“I really appreciate the fact that the new design reassures me along the way & that I can edit my information or tickets from multiple points in the design, I think this is very important..”

Overall impact

After testing the design I can confidently say that I reached my goal of improving the ticket flow of the PKP app. New design significantly reduced time needed to complete the task while also expanding flow, adding new ways user can interact with it. This design is much more flexible and easy to use compared to it’s predecessor, with information clarity being one of biggest improvements.

What’s Next?

Future

More Flows

This project was focused mainly on improving ticket flow, however during research I came up across other interesting insights that could turn helpful to future explore the product and add more features to it.

More Testing

After initial testing with users I’m confident that I achieved my goal, however I still have few smaller features and UI that I want to test before I’ll jump to next projects.

High Contrast mode

Even though all the content inside of the app passes accessibility checks, some cards and dark mode may still be too hard to read for some people, that’s why I want to also develop some example pages for very high contrast mode, made especially for people with vision impairments.

Seweryn Kułak

LinkedIn

2025 // 2026