Fintech · Expense Management · Case Study

Fyle — Bulk Mileage
Expense Report

500+ users were filing mileage expenses one painful entry at a time. Some were crying. Some had switched to spreadsheets. I fixed it in 6 weeks. Here's how.

Timeline March–April 2020
Duration 1 Month
My Role End-to-End Designer
Platform Web App
Team 1 Designer · 4+ Eng
500+
complaint tickets resolved in one month
6 wks
research to shipped feature
93%
of users travel daily — the insight that changed everything
32
survey responses that validated the direction

What even is Fyle?

Fyle is a B2B expense management app for companies whose employees travel regularly. The mileage feature let users log routes and get reimbursed for distance — but every entry meant filling out the full form: date, vehicle, cost centre, project, route. One trip at a time.

For daily commuters, that's 20+ form submissions a month. No wonder the support inbox was overflowing.

The old flow was a patience-testing endurance sport

Each mileage expense required its own form submission. For daily commuters, that loop repeated every single working day.

😨
One expense at a time
Every trip meant opening the form, filling all fields, submitting — then starting over. Daily commuters repeated this ~20 times a month.
🧐
Repetitive data entry
Date, vehicle type, cost centre, project, route — the same fields, every time. Users were penalised for traveling consistently.
🥱
No memory of what's been done
No overview, no count — just a screen of input fields. Users had to mentally track how many entries they'd made and how many remained.
🫠
No visibility into status
Checking which expenses were saved vs reported meant navigating back to the reports page. No glanceable summary.
"The user had to add one expense at a time, remember how many they'd added, and had no overview — just a screen of multiple input fields."
— Shyani's problem summary, based on 500+ support tickets

The people stuck in this loop

The primary users are employees who travel regularly for work — daily commuters, client visitors, field teams. They log mileage expenses to get reimbursed.

SW
Shweta Vas, 27
Commutes daily by car. Files all mileage at month-end in one exhausting session.
JA
Jasmine Ansary, 28
Client meetings monthly. Low frequency — but the repetitive form still made her want to give up halfway.
JS
Jatin Sharma, 26
Daily commuter. Has genuinely considered not claiming expenses because the form takes longer than the commute itself.

32 survey responses later...

User surveys. 32 responses. One data point immediately shaped the entire design direction.

93%
of users travel every day for work
7%
travel only 3 days a week or less
32
total survey responses collected
📅
Auto-fill the date. 93% travel daily — the date is almost always today. Don't make them type it.
Show all entries at once. Users need the full picture — saved, reported, pending — without bouncing between screens.
🔁
Reduce repeated fields. Vehicle, cost centre, and project are usually constant across trips. Treat them as a given, not a question.

Before the feature vs after

Before
  • One mileage expense added per session
  • All fields manually entered every time
  • Date had to be typed in each entry
  • No way to see all expenses at a glance
  • Had to navigate to reports page for status
  • 500+ support tickets a month. Someone was losing their mind.
After
  • Multiple mileage expenses added in one session
  • Constant fields (vehicle, cost centre) set once
  • Date auto-filled — editable if needed
  • Table overview of all expenses and their status
  • Save or report all expenses in a single action
  • Complaint tickets dropped dramatically. Peace restored.
Before
Before — single mileage entry form
After
After — bulk mileage entry screen

Four calls that made the feature work

01
Auto-filled date with amendment option
Date defaults to today — but the edit option is prominent, not buried, for users who batch-enter expenses later.
02
Constant input fields
Vehicle type, cost centre, and project are set once at the top and applied to all rows — no re-entering the same data 20 times.
03
Table view over form stacking
All entries live in a scannable table instead of an infinitely growing form. Users see everything at once: saved, pending, needs attention.
04
Bulk save or report action
One action covers all entries. The success state confirms everything clearly — no ambiguity, no second-guessing.
01 Auto-filled date with amendment option
Auto-filled date screen
02 Constant input fields
Constant input fields explainer Constant fields screen
03 Table view over form stacking
Table view screen
04 Bulk save or report action
Bulk save and report action screen

We broke it so users didn't have to

The prototype was tested via Maze with teammates and peers. Two issues surfaced in the first round:

Issue 1: Users weren't sure if the date field meant when the expense occurred or when it was reported. Fixed with clearer labelling.

Issue 2: Multiple cost centres and vehicle types caused errors — the "constant" logic wasn't visually distinct enough. Fixed by making the scope more explicit.

Iterated, retested, shipped.

Maze testing heatmap 1 Maze testing heatmap 2

How Fyle stacked up

Compared Fyle against Zoho Expense and Expensify to map what already existed and where there was room to differentiate.

Number input field — Fyle's new feature. Competitors didn't have a dedicated bulk entry mode.
Auto-filled date — Unique to this design. Neither Zoho nor Expensify defaulted to today's date intelligently.
Auto-check for reimbursement — Reduced a decision users had to make every time.
Inline expense removal — Icon-level delete right in the table row, no navigation required.

What this project taught me

01
Listen to the tickets, not just the users
500 support tickets are 500 user interviews you didn't have to schedule. The solution was in the pattern, not just the complaints.
02
One insight can unlock the whole design
The 93% daily-travel stat reframed everything. Auto-filling the date wasn't a small UX tweak — it was the insight that made bulk entry feel effortless, not just "less bad".
03
Consider all stakeholders — including support
The support team had the richest data on user pain. Looping them in earlier would have accelerated the research phase significantly.
04
Confusion in testing is a gift
The date field confusion caught in Maze testing prevented real errors in live expense reports. Test early, break it yourself first.
Next Case Study
Hoshaksham — Payments App