← All work
Edenred

The payroll screen that answered its own questions.

Edenred's Salary Status screen drove 46% of salary-category support queries. Finance managers couldn't tell what stage payroll was at, why it stalled, or what to do next. I rebuilt it to answer all three, and salary-status queries fell around 21%.

Edenred's payroll status screen drove 46% of salary queries. I rebuilt it to answer stage, delays and next steps, cutting them ~21%.

Role
Sr. Product Designer
Company
Edenred
Year
2025
Platform
B2B SaaS · Payroll
Redesigned Edenred payroll status screen with a six-step progress tracker
Problem

The Salary Status screen was the single biggest driver of support queries, 46% of the salary category. It showed a stage was "in progress" but never what, why, or what to do.

Solution

Four fixes, all information not features: a clearer progress bar, contextual detail per step, explicit guidance when action is needed, and a flow personalised to each payroll type.

Four fixes, all information not features: a clearer progress bar, contextual detail, explicit guidance when action is needed, and a flow per payroll type.

Impact

Salary-status queries fell about 21% against the three months before launch, and about 16% year-on-year once normalised for 52% business growth.

A concept I explored

An AI assistant for the dead-ends.

A quick look at where I took this work next, then the full case study below. Even with a clear status screen, the dead-ends, a Central Bank rejection or a funds shortfall, can still leave the client stuck. This prototype explores an assistant that does not just explain the problem, it offers to fix it, with the client approving before any money moves.

Where I took this next. Even with a clear status screen, dead-ends like a Central Bank rejection can still leave clients stuck. This concept assistant doesn't just explain the problem, it offers to fix it, with approval before any money moves.

This is a self-initiated concept, not a feature Edenred shipped. Try it hands-on with Use the Prototype at the top, or watch the flow play out below.

Payroll Assistant · concept walkthrough Concept · not shipped

A short walkthrough of the concept: the assistant spots the Central Bank rejection, corrects the four flagged records, and resubmits, confirming with the client before anything moves.

The assistant spots the Central Bank rejection, corrects the four flagged records and resubmits, confirming with the client before anything moves.

01 · The problem

A status screen that never said status.

Edenred's members are finance managers and HR admins running payroll for mid-to-large UAE companies. Payroll day is high-stakes and time-pressured, and the one screen meant to reassure them did the opposite. It showed that something was happening, but never gave them the confidence that things were actually moving.

Edenred's members run payroll for UAE firms on a high-stakes day. The screen meant to reassure them did the opposite, showing activity but never real progress.

Reviewing the support logs, the confusion sorted into three recurring frustrations:

  • Users couldn't tell what stage payroll was actually at
  • When a run was delayed or rejected, there was no explanation and no next step
  • The interface was identical for every payroll type (WPS Card, Non-WPS Card, WPS Bank, Non-WPS Bank) despite very different compliance processes
"Customers did not get all the necessary information on the portal, hence they were forced to call the CS team in times of any issue."

02 · Approach

The calls were the research.

I walked the live flow as an end-user would, ran a structured workshop with eight people from the Customer Success team, and read three months of query logs. Categorised, almost every query collapsed into one of three questions:

I walked the flow, ran a workshop with eight from Customer Success, and read three months of logs. Nearly every query was one of three questions:

  • "Where is my payroll?"
  • "Why is it delayed?"
  • "What do I need to do next?"

The insight that shaped everything: all three were self-service questions. The product already held the answers; the design simply wasn't surfacing them. So the brief wasn't "add features", it was "answer the three questions, in context, at the right moment".

All three were self-service questions: the product held the answers, the design wasn't surfacing them. Not "add features" but "answer them, in context".

03 · The solutions

Four fixes. All information, not features.

Each question from the logs became a design job. Here is the before and after for each.

01

A clearer progress bar

I renamed and reordered the stages to match the real backend sequence, and put a timestamp and a responsible name on each one. "Where is my payroll?" now has a precise, glanceable answer.

Stages reordered to match the backend sequence, each with a timestamp and owner. "Where is my payroll?" now has a glanceable answer.

BeforeOld payroll timeline: a flat five-dot row with only dates
AfterNew six-step progress tracker with timestamps and responsible owners
02

Contextual information per step

Every stage now carries its own status and a plain-language explanation. A "waiting for funds" step spells out exactly how much is short and how to fix it, with a short video. "Why is it delayed?" answers itself.

Every stage carries its own status and plain explanation. A "waiting for funds" step shows the shortfall and the fix, answering "Why is it delayed?".

BeforeOld waiting-for-funds screen with a generic next-steps list
AfterNew action-needed step showing the exact shortfall and how to resolve it
03

Guidance when action is required

When the client has to act, the screen says so, explicitly, and lists exactly who and what. A central-bank rejection now names each affected employee and links straight to the fix. "What do I need to do next?" becomes a checklist.

When action is needed, the screen says so and lists who and what. A rejection names each affected employee and links to the fix, making "What next?" a checklist.

BeforeOld processing-failed screen with a single generic instruction
AfterNew rejection screen with a per-employee table, reasons and review actions
04

Personalised by payroll type

The flow adapts to the route. WPS and Non-WPS, Card and Bank each have different compliance stages, so the screen shows only the ones that apply. A WPS run surfaces live Central-Bank batch timings and an ETA; other types never see them.

The flow adapts to the route: each payroll type shows only the compliance stages that apply, adding live Central-Bank timings and an ETA for WPS runs.

BeforeOld one-size-fits-all processing timeline
AfterNew WPS-specific step showing Central Bank batch windows and estimated crediting time
A fair challenge 🔴

"Your primary CTA is red, but red also signals danger. Doesn't that collide?" Edenred's brand is red, and on a revenue-critical B2B portal with a slow-changing audience, walking away from the brand color would cost more trust than it buys. So the system separates the two jobs structurally, not by hue: primary actions are solid, rounded, label-led buttons; failures pair a muted red tint with an icon, a heading and an inline explanation; waiting states are amber. Meaning is never carried by color alone, which is also the accessible answer: a colorblind user reads the exact same states. We watch support logs and usability sessions for confusion signals; none so far, and if they appear, that is the trigger to revisit.

"Red CTA, red danger, don't they collide?" The brand is red, so meaning comes from structure, not color alone.

04 · Riskiest assumptions

Three bets, tested before I shipped.

The redesign leaned on three assumptions that could have sunk it. I prototyped and tested each with real clients first, rather than finding out in production.

Assumption 01

Guidance videos would just be ignored.

Tested the prototype with five clients, watching whether they reached for the video CTAs.

4 of 5 clicked the videos. Shipped the pattern with confidence.

Assumption 02

Showing "completed by [name] at [time]" would feel invasive.

Three finance managers reviewed the attributed prototype and talked through how it felt.

All read it as reassurance, not surveillance. Kept the attribution.

Assumption 03

Diverging WPS and Non-WPS flows would feel inconsistent.

Two clients who run both payroll types walked through the two distinct flows side by side.

The split matched their mental model and felt clearer, not messier.

05 · The data

Why I measured the rate, not the count.

Raw query volume actually went up after launch. On its own, that reads like failure. It isn't: the business grew about 52% year-on-year, so more payrolls naturally means more queries. The only honest metric is queries per 100 payrolls processed, which strips out growth and shows whether the design really reduced friction.

Raw volume rose after launch, looking like failure. But growth was ~52%, so more payrolls mean more queries. Honest metric: queries per 100 payrolls.

Monthly raw data · Jul–Sep '24 vs Jul–Sep '25
Period Month Salary-status queries Payrolls processed Query rate (per 100) Notes
Jul–Sep '24 (pre)Jul '243722,60514.3Pre-redesign · summer dip
Aug '244172,75415.2Pre-redesign · baseline
Sep '243492,50114.0Pre-redesign · stable
Jul–Sep '25 (post)Jul '25 *5034,10312.3Post-redesign · partial month
Aug '254804,00612.0Post-redesign
Sep '254613,80212.1Post-redesign
Average comparison · what actually changed
Metric Pre (avg) Post (avg) Change Read
Avg monthly queries379.3481.3+26.9%Raw volume up: the business grew
Avg payrolls processed2,616.73,966.7+51.6%Roughly 52% growth year-on-year
Avg query rate (per 100)14.512.13−16.3%The number that mattered fell

Redesign launched end of Jun '25 · Jul '25 is a partial month · query rate = queries per 100 payrolls processed. This is directional evidence, not a controlled experiment.

Read it right 🧮

Judged on raw count, the redesign looks like it added queries. Judged on the growth-adjusted rate, it removed friction: queries per 100 payrolls dropped about 16% year-on-year, and about 21% against the three months right before launch. Same product, opposite conclusions. Picking the honest metric was half the work.

Raw count says more queries; growth-adjusted, less friction, down ~16% YoY. Same product, opposite reads.

06 · Impact

Fewer "I don't know what's happening" calls.

~21% Fewer salary-status queries vs the three months pre-launch
−16% Query rate per 100 payrolls, year-on-year (growth-adjusted)
46% Of salary-category queries came from this one screen, before

The qualitative shift mattered as much as the number: far fewer "I don't know what's happening" calls, and the queries that did come in were specific and informed. Payroll volumes swing with business and seasonal cycles, so the team keeps monitoring across consecutive months before drawing a final conclusion.

The qualitative shift mattered too: far fewer "what's happening?" calls, and those that came were specific and informed. Monitoring continues.

Did you know 😲

Every query in the logs, "Where is my payroll?", "Why is it delayed?", "What do I need to do next?", was a question the product could already answer. The screen wasn't broken, it just wasn't saying anything. The whole redesign added almost no new features, only the information that was already there, shown at the right moment.

Every logged query was one the product could already answer. The screen wasn't broken, it just wasn't saying anything.