All work

Fishka · Loyalty ecosystem · Mobile

Making a multi-partner loyalty program feel like one simple idea.

Fishka connects OKKO with a broad partner network — retail, banking, mobility, pharmacies, food and services. The redesign challenge was never visual modernisation. It was architectural: making a complex, partner-driven loyalty system understandable in a single mental model — earn, keep, spend.

Role

Senior Product Designer

Scope

Product architecture · IA · UX · UI

Platform

iOS & Android loyalty app

Focus

Mental model · Hierarchy · Personalisation

01 — The app today

This is how Fishka looks before the redesign.

These are the current production screens. They are not my design — they are the starting point I audited. Everything the program can do is already here; the problem is that the user has to assemble it themselves.

Fishka home screen with balance, barcode, OKKO Pay and promo blocks
Home: balance, barcode, OKKO Pay, two content tabs and a stack of promo banners compete for the same first screen.
Rewards tab with discounted product catalogue
The Rewards tab turns into a product catalogue — spending points reads as e-commerce browsing.
Fishka Online partner list with cashback percentages
Fishka Online: a long partner list where every brand states a different earning rate.
Loyalty card screen with barcode and discount cards
The card screen mixes the loyalty barcode with an unrelated discount-card wallet.
OKKO Pay screen with a grid of payment and bonus services
OKKO Pay: seven services in one grid — fuel wallet, partner bonuses, arcade, insurance, charity, transfers.
Partner map with filters and search
The map answers “where”, but never connects a location back to what the user can earn or spend there.
Promo details screen with fuel rates and long terms text
Offer details: rates first, then a wall of conditions the user has to decode alone.

02 — What the audit showed

The complexity isn't in the features. It's in the model.

Five parallel entry points

Home, Fishka Online, the card, Fishka Pay and the map each open their own logic instead of one loyalty flow.

Earning rules live per partner

Every brand, fuel type and co-brand card carries its own rate and condition. The system never sums up to “what do I get”.

Points without a purpose

The balance is visible everywhere, but the app rarely says what it is worth right now, right here.

Promo over context

Campaign banners and catalogues fill the space where a personalised “your next benefit” should be.

The app answers “what campaigns exist?”. Users are asking “what do I have, and what is it worth to me today?”

03 — Product architecture

One ecosystem, dozens of intersecting services.

The map below is the redesigned architecture we used to make sense of the system. It shows how Fishka, OKKO, partners, payments and rewards connect — and why the interface had to separate the contexts before users could understand the whole.

Fishka redesign product architecture map
Redesigned product architecture map. Click to open full size.

03b — Visual identity

A new identity stretched over the redesign.

In parallel with the product work, Fishka rolled out a new brand language: sculpted 3D objects, a saturated Fishka red, bold speech-bubble typography and flat colour blocks. The redesign had to carry this identity into the product without letting decoration compete with the loyalty mechanics.

Fishka brand identity exploration: 3D objects with and without clay texture, plus promotional key visuals
Identity exploration: textured versus smooth 3D objects, and how they behave in campaign key visuals. Click to open full size.

3D objects

Each category — fuel, health, home, retail — gets a tactile object instead of a flat icon, so partner groups become recognisable at a glance.

Texture decision

Two treatments were compared: strong clay texture versus a smooth surface. The smoother set holds up better at small sizes inside the app.

Red as structure

Fishka red marks value and action; everything else stays quiet so balance, rewards and offers keep the hierarchy.

03c — Fishback card

Rebuilding the Fishback card inside marketing's format.

The fuel Fishback card is where users check what they earn per litre. The existing version was built around a rigid communication format that marketing had already prepared and aligned across channels — so the redesign could not change the shape freely, only make the meaning clearer inside it. I explored many approaches for how rates, sources and activation states could read at a glance before landing on the final structure.

Before — Fishback on OKKO

Current Fishback on OKKO screen: base and improved Fishback rates with Visa Fishka promo

Rates are split into “Basic” and “Improved” blocks. What is active, what is a promo and what adds together is left for the user to decode.

Before — Fishback card detail

Current Fishback card: stacked offer rows with different rates per fuel type

Multiple sources — MasterCard, Uklon, surveys, Visa Fishka — each presented as its own row with its own rules, all competing inside one card.

Explorations — one format, many readings

Base case iterations of the Fishback card: different ways to present rates, Dronopad gift and Visa Fishka upsell

Iterations on the same constrained layout: how to show “my Fishback” versus partner sources, how to surface the Dronopad gift, when to show the combined rate and when the breakdown — all while keeping the communication block marketing had already committed to.

Cross-sell while refuelling

OKKO home and in-refuelling catalogue: food and coffee categories

While the fuel is flowing, the app offers the café catalogue — turning wait time into order time.

Reward bottom sheet & promo history

Pandora reward bottom sheet with promocode, free promocode state and promocode history

Getting a partner reward ends in a promocode with clear states — available, copied, archived — so the value stays findable after the moment of redemption.

Reward order — paying with points

Reward order flow: item, recipient, delivery address and paying with points

Ordering a physical reward mirrors a familiar checkout — item, recipient, Nova Poshta branch — with the points balance shown where the payment would be.

04 — The direction

Three states instead of five destinations.

Rather than five parallel sections, the redesign organises the whole ecosystem around one loop the user already understands intuitively.

Earn

Every partner, fuel type and co-brand rule collapses into one answer: how points come to me.

Keep

One balance with a clear identity — value, not a number floating above banners.

Spend

Rewards, fuel, partners and payments read as ways to use the same balance.

Partners · fuel · banking · retailone balanceone next benefit

The ecosystem stays as wide as it is. Only the way it is presented narrows — from many rule sets to a single, contextual statement of value.

05 — Structure first

Make Fishback understandable before making it beautiful.

The core flows were worked out in grayscale: available versus reserved points, the transaction list, transaction detail, statistics by category and partner, the rewards catalogue, the cardholder and the points-transfer flow. Structure and wording carried the meaning; visual style came after.

Grayscale Fishka flows: home, card, balance, statistics, transaction detail and rewards
Balance, transactions, statistics and rewards: one balance with an explicit reserved state, and every transaction saying what was spent, deducted and earned.
Grayscale points transfer flow from services to confirmation
Points transfer end to end: services, recipient, amount, insufficient-balance state, archive and confirmation.
Grayscale card screen with reserved and available points
Reserved points sit next to available points, with a direct link explaining what reserved means.
Grayscale cardholder screen with loyalty and bank cards
Cardholder: partner loyalty cards and bank cards in one place, as part of the same account.
PurchaseReservedAvailableSpend

The reward lifecycle is stated in the interface instead of being inferred from a single number.

06 — Identity applied

The new brand language on top of the new structure.

With the structure settled, the new identity was applied to the home experience: 3D objects for content and partner blocks, flat colour fields for offers, and Fishka red reserved for the balance itself.

Fishka home with accumulated balance card in a soft accent colour
Early exploration: accumulated points as a single hero card, with charity and savings read as outcomes of the same balance.
Fishka home with red accumulated balance and 3D content blocks
Red owns the balance; everything below it is content — what's new, top offers, new rewards, new partner.
Fishka home with promo codes, partner offers and a multi-partner challenge block
Promo codes, partner offers and challenges keep one rhythm instead of competing banner styles.

07 — Reward feedback

Make every reward tangible.

Earning points needed a moment of its own. After a qualifying transaction the app shows the reward as an event — the amount, the new balance and where more points can come from next.

Reward screen showing plus 35 Fishback earned
+35 F: the reward arrives as a visible event, not a line in a history list.
Reward screen showing plus 300 Fishback and updated balance
+300 F with the updated balance, followed by partners where points can be earned again.

Every transaction closes the feedback loop: earn, see it, know what it is worth.

A loyalty program is only as strong as the moment a user can say what their points are worth.

All work