Skip to main content
Harsh Solanki

Case Study — Enterprise Fleet Management · EU Payments & Compliance

OneFleet

Leading UX for bp’s pan-European fleet management platform — designing a coherent interaction model across fuel card management, invoicing, payments, and compliance for 500,000+ commercial customers operating across six EU markets.

Role

Design Lead · UX Strategy & Platform

Domain

Enterprise Fleet · EU Payments

Period

2022–Present

Scope

End-to-end design leadership across 4 verticals — embedded cross-functional (PM · Engineering · Compliance)


01 — Industry Context

The operational complexity behind every fleet transaction

Enterprise fleet management is not a single workflow — it is the continuous coordination of fuel spend, card controls, driver compliance, and financial reconciliation across organisations that may operate hundreds of vehicles, dozens of cost centres, and multiple delegated account hierarchies simultaneously. A fleet administrator at a logistics company is not managing one account. They are managing a live operational system: enforcing spend limits in near-real-time, resolving card disputes before drivers are stranded mid-route, and maintaining account structures that reflect a workforce that changes weekly. The consequence of a delayed or failed transaction is not inconvenience — it is operational disruption at scale.

At the volume OneFleet operates — approximately 12 million transactions per month across 500,000+ customers — small interface failures compound into significant operational overhead. A workflow that requires three screens to resolve a card dispute adds support burden across thousands of accounts. An invoicing module that cannot surface cost allocation by driver group forces manual export and reconciliation. The platform does not just support operations; it is a direct input to how fleet operators make decisions, control costs, and report to their finance teams.

Cross-border fleet operations in the EU carry a layer of regulatory complexity that most enterprise software does not have to accommodate. VAT reclaim rules differ by market — the mechanisms for fuel tax recovery vary between the UK, Germany, France, and the Netherlands. Card acceptance networks vary by country. Compliance reporting obligations are market-specific. A platform serving customers across six EU markets must present a coherent operational interface while silently carrying the weight of market-level regulatory variance underneath it. Exposing that complexity to the fleet administrator would make the product unusable. Hiding it incorrectly creates compliance risk.

The UX challenge is not simply to make individual screens easier to use. It is to design an interaction model that remains legible under operational pressure — for a fleet administrator managing 300 vehicles, a finance controller reconciling cross-market invoices, and a driver expecting a card to work at a fuel station 400 kilometres from their base. Each of these users operates on a different timescale and with a different tolerance for failure.

Fleet Platform — User Roles & Primary Operational Needs

User Role

Engagement

Primary Operational Need

Fleet Administrator

Daily — card management, spend controls

Real-time transaction visibility, limit enforcement, dispute resolution

Finance Controller

Weekly — invoice reconciliation

VAT-compliant cost allocation, ERP export, cross-market spend aggregation

Account Hierarchy Manager

Ongoing — sub-account governance

Driver group management, policy inheritance, delegated access

Driver / Vehicle Operator

Per-journey — fuel authorisation

Card acceptance, transaction confirmation, mileage reporting

IT / Compliance

Periodic — access and audit

Role governance, audit trail completeness, data sovereignty per market


02 — Problem Definition

A platform with operational scale but no shared design layer

OneFleet had expanded through independent squad delivery — payments, cards, invoicing, and account management each shipped by autonomous teams with no shared design language. The operational cost accumulated gradually, then became visible through support volume, onboarding friction, and low task completion rates on cross-module workflows.

01

Cross-Module Workflow Fragmentation

Core fleet tasks — card dispute resolution, invoice reconciliation, account restructuring — required navigating 3–5 disconnected modules. No persistent context carried between screens. Operators rebuilt their working state at every transition.

02

Inconsistent Interaction Patterns

The same actions — filtering transactions, selecting multiple cards, exporting data — behaved differently across modules. Users developed module-specific habits rather than platform fluency, which compounded onboarding overhead and error rates.

03

Account Hierarchy Complexity

Enterprise fleet clients managed accounts spanning hundreds of sub-accounts, driver groups, and cost centres with delegated permissions. The account model had no coherent navigation metaphor — hierarchy depth was not surfaced, and policy inheritance was invisible.

04

Invoice Reconciliation Failures

Finance controllers reconciling VAT-compliant invoices across multiple EU markets could not access line-item tax breakdowns within the platform. Routine monthly tasks required data export into external spreadsheets to complete, creating data integrity risk.

05

No Shared Design Foundation

Each product squad was building components independently — duplicate form patterns, inconsistent status models, non-transferable component logic. Design debt was compounding faster than any individual squad could address it within their own roadmap.

06

Onboarding Friction at Scale

Extended ramp time for new fleet administrators was not a function of genuine workflow complexity — it was a function of interface unpredictability. Operators needed to learn each module as a separate product, rather than building skill against a coherent mental model.


03 — Discovery & Research

Mapping actual task flows across six EU markets

Research began with contextual inquiry sessions with fleet administrators and finance controllers across six European markets — observing operators in their actual working environments, not reconstructed lab scenarios. The goal was to map task flows as they were actually executed, including the workarounds operators had developed to compensate for platform gaps that no support ticket had formally captured.

The most significant findings did not come from interview questions. They came from observation: operators using browser history as a navigation tool between modules, maintaining private spreadsheets to track account structure changes the platform could not represent, and escalating card disputes to support not because they lacked authorisation but because the self-service path was not trusted to work.

Stakeholder interviews with IT administrators, account managers, and bp commercial team members surfaced a second layer of complexity: the operational cost of supporting clients through tasks the platform made unnecessarily difficult, and the downstream effect on renewal conversations when fleet administrators reported low confidence in the tool.

A critical finding from cross-market sessions: task flows were not uniform across markets. The same workflow — invoice reconciliation, for instance — required meaningfully different steps and data access patterns in Germany versus France versus the UK, driven by local VAT and reporting structures. The interaction model had to accommodate this variance without producing market-specific product forks.

Contextual Inquiry — Market & Task Coverage · Key Findings

Market

Role

Task Focus

Primary Finding

UK

Fleet Administrator

Bulk card management & block resolution

Account hierarchy depth was the primary driver of task complexity — not feature availability

Germany

Finance Controller

Invoice reconciliation & VAT reporting

Line-item VAT visibility was a blocking step; controllers were exporting to spreadsheets to complete routine reconciliation

France

Fleet Administrator

Driver group management & policy inheritance

Policy inheritance rules were not legible in the UI — operators were applying policies manually rather than trusting the system

Netherlands

Finance Controller + IT

ERP export workflow & data mapping

Column ordering and field naming in exports did not match the conventions of the ERP systems in use — every export required manual column remapping

Belgium

Account Manager

Sub-account delegation & permission model

The permission model did not reflect the actual organisational structure of the clients — delegation paths required workarounds to match business hierarchy

Poland

Fleet Administrator

Card block resolution & support escalation

Routine card disputes were being escalated to support because the self-service resolution path was not discoverable — operators had no confidence the action would succeed

Finding 01

Workarounds were structural, not incidental

Operators had built stable, repeatable workarounds for platform gaps — spreadsheets, browser bookmarks, support escalation for self-service tasks. These were not occasional shortcuts; they were the actual workflow.

Finding 02

Market complexity was invisible in the UI

The platform presented a single interaction model regardless of market, but the underlying data and compliance rules varied significantly. Operators in markets with complex VAT structures were managing the gap manually.

Finding 03

Account hierarchy was the core navigation problem

Fleet operators navigated by account, not by module. The platform was organised by feature area. Every cross-account task required the operator to re-orient across a navigation model that did not reflect how they thought about their work.

Finding 04

Confidence in self-service was low

Operators chose support escalation over self-service not because they lacked authorisation but because the platform gave no clear feedback on whether a submitted action had succeeded. Low system trust was a measurable productivity cost.


04 — Systems Thinking

One interaction model across four product verticals

The most significant design leverage in a platform of this complexity is not at the screen level — it is at the system level. Addressing individual screens without a shared interaction model produces local improvements that compound global inconsistency. The approach was to define the interaction grammar first, then build the governance conditions that would allow it to hold: a cross-squad review process requiring new patterns to be validated against the shared model before module-level implementation. Consistency was a process output, not a design artifact.

Design Principle

Operational Rationale

Layer

Account-Oriented IA

Restructured navigation around the account hierarchy — the primary organising concept for fleet operators — rather than around product modules. Every IA decision was tested against: what account context does the operator need at this step?

Navigation

Shared Interaction Grammar

Defined a canonical set of patterns — search, filter, select, bulk-action, confirm — applied consistently across all four verticals. An operator who learned filtering in card management could filter in invoicing without re-learning.

Foundation

Market Abstraction Layer

Market-specific complexity — VAT treatment, card network variance, compliance reporting structure — was handled at the data layer, not the interaction layer. The UI presented a single coherent model regardless of the operator's market context.

Architecture

Composable Components via bpCore

Built a token-based design system before touching product screens — the decision that made cross-squad consistency achievable. Components could be assembled differently per context without breaking the underlying interaction model or visual language.

System

Ambient Account Visibility

Account state — card status, spend position, pending transactions — treated as persistent context rather than on-demand lookup. Operators managing large fleets needed ambient awareness of account health, not a drill-down per account.

Perception

Explicit Action Feedback

Every submitted action — card block, limit change, dispute submission — returned an explicit, timestamped confirmation visible in context. Designed specifically to rebuild operator confidence in self-service resolution flows.

Resilience

Shared Interaction Pattern Coverage — Unified Across Verticals

Shared Pattern

Applied Across Verticals

Status

Search + Filter

PaymentsCardsInvoicingAccount Mgmt

Unified

Account Hierarchy Nav

CardsAccount MgmtInvoicing

Unified

Bulk Selection + Action

PaymentsCardsInvoicing

Unified

Status Indicators

PaymentsCardsAccount Mgmt

Unified

Inline Edit + Confirm

CardsInvoicingAccount Mgmt

Unified

Export & Reporting

PaymentsInvoicingAccount Mgmt

Unified


05 — Design Approach

System-first, then surfaces — in that order

The first three months produced no visible product screens. They produced bpCore — the design system that made the rest of the work viable. Building the shared token architecture and component library before any squad touched their product surfaces was a contested decision under delivery pressure. It was the right one: without a common foundation, every screen-level improvement would have compounded the inconsistency we were trying to resolve.

Navigation was restructured around the account hierarchy rather than the feature taxonomy. Any primary workflow reachable within three interactions from a given account context. The account record became the persistent anchor — card management, transaction history, invoices, and driver groups all accessible from within the account view rather than requiring module navigation.

Form architecture across all verticals was restructured to follow task sequence rather than data model. Fields grouped by what an operator needs to know at each decision point, not by how the underlying data is stored. Progressive disclosure applied to reduce cognitive load on complex multi-step workflows — compliance fields surfaced at the step where they became decision-relevant.

Cross-squad governance was established alongside the design system. A pattern review process required any new interaction pattern proposed by a squad to be validated against the shared grammar before implementation. This was not a bureaucratic gate — it was the mechanism by which consistency remained a live property of the platform rather than something that decayed between release cycles.

Design was moved upstream into the planning process. That meant arriving at roadmap sessions with a defined problem framing and measurable success criteria — not a solution. Scope decisions were shaped at the point where they were cheapest to make, not after engineering estimates had already been committed. This changed the nature of design’s relationship to the product organisation from delivery executor to planning co-author.

Usability testing ran throughout — not as a sign-off gate but as a continuous input. Every significant interaction change was validated with fleet operators before shipping. The test population included experienced administrators and new operators, because the metric we were optimising for was time-to-proficiency on complex tasks, not just completion rate at steady state.

Workflow Redesign — Card Dispute Resolution

Before — Fragmented Resolution Flow

  1. 1

    Open Cards module — search for blocked card

  2. 2

    Switch to Transaction History module — locate failed transaction

  3. 3

    Open Driver Management module — verify driver identity and eligibility

  4. 4

    Return to Cards module — fill dispute reason form

  5. 5

    Submit — manually log outcome in Transaction Ledger

4 module switches  ·  5 steps  ·  avg ~4 min per dispute

After — Unified Card Management

  1. 1

    Search surfaces card + driver context + transaction history in one view

  2. 2

    Dispute reason and resolution options inline — no module navigation required

  3. 3

    Submit — auto-logged to transaction record and driver account

0 module switches  ·  3 steps  ·  context preserved throughout


06 — Enterprise Constraints

Constraints that shaped every decision at the system level

Enterprise fleet software operates under a constraint set that consumer products do not face. Solutions must be governable across market-specific regulatory environments, configurable to the organisational structures of enterprise clients, and defensible at the compliance level — not just usable at the individual interaction level.

Multi-Market VAT & Regulatory Compliance

Each EU market carries distinct fuel tax recovery mechanisms, compliance reporting obligations, and invoice formatting requirements. Design decisions had to accommodate this variance without fragmenting the interaction model into market-specific forks. The solution was market abstraction at the data layer — operators experienced a single coherent interface regardless of their regulatory context.

Card Network Interoperability

Fuel card acceptance varies by country and network. Transaction states, decline reasons, and dispute resolution paths differ across card schemes. The UI had to handle network-specific transaction states without surfacing network complexity to the fleet administrator — a user who should not need to know which card scheme is involved to resolve a blocked card.

Account Hierarchy Depth

Enterprise fleet clients managed accounts spanning hundreds of sub-accounts, multiple cost centres, delegated permissions, and complex driver group structures. The navigation and permission model had to represent genuine organisational hierarchy — not a flat account list — while remaining navigable under operational time pressure.

Accessibility — WCAG 2.1 AA

Non-negotiable for enterprise procurement in regulated industries. Colour contrast, keyboard navigation, screen reader compatibility, and focus management were requirements from the outset. Accessibility was validated as part of the component review process in bpCore, not retrofitted at the product level.

Legacy Integration & Engineering Constraints

Multiple underlying payment processors and card management APIs per market, with varying data schemas and response latency characteristics. Design decisions were made with explicit awareness of integration constraints per release window. Trade-offs were documented and communicated to PMs before scope was committed.

Cross-Squad Governance at Scale

Five independent product squads operating on separate roadmaps with different release cadences. The design system governance model had to support consistent output without creating a centralised bottleneck. Contribution workflows were designed so squads could propose, review, and ship pattern extensions without waiting on a single system owner.


07 — Outcomes

Commercial and operational outcomes across platform and organisation

Outcomes were tracked across usability benchmarking, product analytics, and structured retrospectives with commercial, engineering, and support leads. Work shipped incrementally across multiple release cycles — measured against baselines established during the discovery phase. Revenue attribution methodology was aligned with the product and commercial teams before metrics were reported.

Area

Signal

Outcome

Task Completion

20% improvement on core fleet workflows

Measured across card management, invoice reconciliation, and account hierarchy tasks against pre-redesign baseline. Largest gains on multi-step workflows that previously required cross-module navigation — where the reduction in context switches had the most direct impact on completion rates.

Revenue Attribution

$7M+ attributed revenue impact

Improvement in self-service completion rates reduced support dependency and contributed to upsell conversion on fuel card expansion. The $7M+ figure reflects the combined effect of reduced support cost and increased product-led conversion — aligned with commercial team methodology before reporting.

Support Volume

Measurable reduction in contact rate on key workflows

Card dispute resolution and invoice query workflows — previously high-volume support categories — saw a reduction in inbound contact rate following the redesign of the self-service resolution flows. Explicit action feedback was the primary driver: operators who could see that an action had succeeded stopped escalating to confirm it.

Decision Velocity

35% faster internal decision cycles

Design embedded in planning rather than reactive to it. PM and engineering teams reporting scope and feature trade-off decisions resolved earlier in the planning cycle — at the point where changes were least expensive to accommodate. Attribution reflects the change in design's relationship to roadmap authorship, not just delivery.

Platform Consistency

bpCore adopted across all five product squads

Shared design system eliminated component rebuilds across web and mobile product surfaces. Token propagation reduced design-to-dev specification friction significantly. New designers reach production-ready output against a documented baseline on their first week — rather than spending months reverse-engineering implicit squad conventions.

Operator Onboarding

Reduced time-to-proficiency for new fleet administrators

Interface consistency across modules removed the requirement for module-specific training paths. Operators who learned the interaction model in one vertical could transfer that fluency across the platform — reducing the ramp time that had previously reflected interface unpredictability rather than genuine workflow complexity.


08 — Reflection

What this work taught me about designing at organisational scale

The most significant design problem in OneFleet was not a UX problem — it was an organisational one. The inconsistency in the product was a direct reflection of how it was built: five squads operating on independent roadmaps, with no cross-squad design review, no shared component language, and no mechanism for decisions made in one vertical to inform decisions being made simultaneously in another. Fixing screens without fixing the conditions that produced them would have been expensive and temporary.

Building bpCore before touching product surfaces was the right call, but the sequencing created real stakeholder pressure. Three months without visible product output in an environment focused on delivery velocity required a sustained management argument — not a one-time explanation. Making the architectural investment legible as a delivery accelerator, not an overhead, was as much a leadership challenge as a design one. I learned to make progress visible in system terms: tokens adopted, components reviewed, squads onboarded — not just screens shipped.

The $7M+ revenue attribution was not a figure that emerged from analytics passively. Establishing the causal chain — linking specific interaction changes to measurable commercial outcomes — required proactive collaboration with the product analytics and commercial teams from the beginning of the work, not at the end. That investment in measurement methodology was as important as the design work itself; it created the evidence that justified continued design investment in the platform.

I prioritised operational research over attitudinal research throughout this engagement, and the return on that investment was consistent. What fleet administrators said they needed in interviews and what they actually did under the operational pressure of managing a live fleet were reliably different. The real design problems lived in the workarounds — the spreadsheets, the browser bookmarks, the support escalations for tasks the platform theoretically supported. Observation was the method that surfaced them.

If I were approaching this work again, I would invest more heavily in cross-market journey mapping in the first six weeks. We built our understanding of market-specific VAT and compliance complexity incrementally through research — which worked, but meant some interaction model decisions were made before we had full visibility into the regulatory variance we later had to accommodate. A more systematic upfront mapping exercise would have sharpened the market abstraction layer decisions at a cheaper point in the process.

What this work reinforced above all: the interface is not the hard part. The hard part is building the organisational conditions — the governance model, the shared language, the upstream presence — that allow a coherent interface to be produced and maintained by teams that will never all be in the same room. Design leadership at this scale is as much process architecture as it is product design.