Back to Case Studies
Operations & Systems10 WeeksBusiness AnalystSystem Design · SQL · Process Mapping

Car Rental Booking
Management System

A mid-size Indian car rental company operating 85 cars across 3 cities was losing customers every week due to double bookings, cars being given out that were actually in the garage for service, and a booking process done entirely through phone calls and Excel sheets. This is the full BA journey from understanding the chaos to delivering a working booking management system.

23
Double bookings per month
Customers arriving, no car ready
58%
Fleet utilization before
Many cars sitting idle unseen
0
Double bookings after go-live
8 weeks post-launch
78%
Fleet utilization after
+20 percentage points
01

Business Problem

A car rental company running its entire operation on phone calls, WhatsApp messages, and Excel sheets — with no way to know in real time which cars were available.

An Indian car rental company with 85 cars across 3 city branches was managing all bookings manually. Customers would call, a branch agent would check an Excel sheet, confirm the car was available, and write down the booking. But the Excel sheet was only updated at that one branch — the other two branches couldn't see it. Cars going into the garage for service were sometimes still showing as available. And fleet managers had no way to see which cars were idle at which branch.

Problem 1 — Double Bookings Happening Every Week

When two agents at different branches both confirmed the same car to two different customers (or even two agents at the same branch checking a shared Excel at the same time), the car would get double-booked. The customer would arrive at the counter, wait 20+ minutes, and then be told no car was available. This happened on average 23 times per month. Each incident led to a complaint, a refund, and a customer who would likely never return.

Problem 2 — Cars in the Garage Still Showing as "Available"

When a car went in for service or repair, the Fleet Manager would inform the Branch Manager over WhatsApp. The Branch Manager would then manually update the Excel sheet. But this didn't always happen — the message got missed, or the sheet wasn't updated immediately. Agents then booked that car, and the customer arrived to find it was not ready. This happened across all 3 branches regularly.

Problem 3 — Fleet Sitting Idle Because Nobody Could See It

Fleet utilization was only 58% — meaning 4 out of every 10 cars were not being rented on any given day. The Operations Manager had no central view of which cars were available at which branch. If Branch A had 8 idle cars and Branch B had no cars available, there was no system to know this and redirect bookings. Customers would be turned away from one branch while another had unused cars just 20 km away.

23
Double bookings per month
Leading cause of customer loss
22min
Avg. check-in wait time
Fully manual paperwork process
58%
Fleet utilization
42% of cars sitting unused
3
Branches with no data sync
Each branch used its own Excel
What Was WrongThe Real Impact
Same car being booked by two agents at the same time on the same dayCustomer arrives at the branch, no car is available. Complaint, refund, lost customer.
Cars in the garage marked as available because Excel wasn't updated in timeAgents booking cars that are physically not ready. Customer finds out only on arrival.
No central view — each branch only sees its own Excel sheetOperations Manager can't see idle cars at Branch A being wasted while Branch B turns customers away.
No customer database — bookings had no history; same customer would fill a form every timeAgents manually re-typing the same customer's name and ID every single booking.
No digital record of car returns — verbal handover onlyNo accountability if a car is returned damaged. No record of who had the car and when.
02

Stakeholder Identification

Mapping every person who was affected by the problem or needed to be involved in building the solution.

This company had 3 branches in 3 different cities. Each branch had its own team. The head office had an Operations Manager and a Finance Manager who needed visibility across all branches. I mapped everyone who would either provide information, approve decisions, or use the final system — and decided how to engage with each of them.

DesignationWhat They NeededWhy They MatterPowerInterest
Operations Manager (Head Office)A single dashboard showing all 3 branches — total bookings, idle cars, revenue, complaintsFinal decision maker; project sponsor; approved budgetHighHigh
Branch Manager (×3)Real-time booking screen, ability to see which cars are available right now at their branchDay-to-day users of the new system; critical for adoptionMedHigh
Fleet ManagerA way to mark a car as 'In Service' or 'Back from Service' that immediately shows for everyoneControls vehicle availability — most impacted person by the old manual systemMedHigh
Customer Service Agents (×6)A simple booking screen — enter customer name, date, car type, confirm. Fast and easy.The people who create every booking; heavy daily users of the systemLowHigh
Finance ManagerMonthly revenue report per branch; pending payments; total bookings vs. cancellationsNeeds financial data; currently receives a manually compiled Excel from each branchHighMed
IT ManagerClear technical specifications before development beginsWill build and maintain the system; must be involved from early designMedMed

Power / Interest Grid

Manage Closely — involve in every decision

· Operations Manager — project sponsor and final approver

· Finance Manager — budget and reporting owner

Keep Informed — update at each milestone

· Branch Managers (×3) — must buy in for adoption to succeed

· Fleet Manager — owns the most critical data field (car status)

Keep Satisfied — involve in UAT

· IT Manager — needs specs, not status updates

· Customer Service Agents — should test before go-live

03

Requirement Gathering

Understanding the problem from every angle — using different techniques because what an agent experiences at the counter is different from what the Operations Manager needs at the head office.

I used 4 techniques across 2 weeks. The most important one was process observation — sitting at the busiest branch counter for a full day and watching how agents actually handled bookings. What I saw in person was very different from what the stakeholders had described in their interviews.

TechniqueHow I Did ItWhat I Found
1:1 Interviews30–40 minute sessions with Operations Manager, Finance Manager, all 3 Branch Managers, and the Fleet Manager. Used structured questions each time.Everyone described a different version of the same problem. The Branch Manager was worried about double bookings. The Fleet Manager was frustrated that no one updated the Excel when cars went to service. The Operations Manager just wanted one number: 'How many cars do I have available right now across all 3 branches?'
Process ObservationSpent one full working day (10am to 8pm) at the busiest branch, watching every booking being made, every phone call, every update to the Excel sheet.In 10 hours, 14 bookings were made. 9 of those required the agent to first call the other branch to double-check they weren't booking the same car. Average booking call time: 18 minutes. Two near-misses where the same car was almost double-booked within the same hour.
Document AnalysisReviewed 3 months of booking Excel files from all 3 branches, complaint logs, and the maintenance WhatsApp group chat history.Found 23 confirmed double-booking incidents in 1 month. Found 11 instances where a car was booked that was in the service log — meaning 11 customers arrived to find their car wasn't ready, just in the last 3 months. Complaint log: 78% of complaints were about 'car not available on arrival'.
Group Workshop2-hour session with all 3 Branch Managers together, run at the head office. Used a whiteboard to map the current booking process step by step.The 3 Branch Managers described 3 slightly different processes — each branch had informally evolved its own workflow over time. This explained why cross-branch coordination was so difficult. There was no standard process.

Sample Interview Questions — Branch Manager

Q1

Walk me through exactly what happens from the moment a customer calls to book a car until they pick it up.

Q2

How do you currently know which cars are available right now at your branch?

Q3

When you find out a car you booked has already been booked by another agent, what do you do?

Q4

How do you find out that a car has gone to the garage for service? Who tells you and how?

Q5

What is the most frustrating part of your current booking process?

Key finding from observation: Agents were spending 35–40% of their booking time not talking to customers — but calling other branches to check if a car had already been booked there. This "coordination overhead" was a direct result of having no shared system. Every booking required manual verification across 3 branches. The new system had to eliminate this entirely.
04

As-Is Process Analysis

A step-by-step map of exactly how a booking is handled today — from the first phone call to the customer driving away. Every problem is hidden inside this process.

StepWhat HappensWho Does ItThe Problem
Step 1Customer calls the branch to ask about car availability for specific datesCustomer Service AgentAgent has no system — has to mentally recall bookings or look at a paper register first
Step 2Agent checks the branch Excel sheet for that date to see if any car of the required type is availableCustomer Service AgentExcel is only this branch's data. Agent cannot see if a car was booked at another branch and shifted here.
Step 3Agent calls the other 2 branches to double-check no one else has that car bookedCustomer Service AgentTakes 10–15 minutes. Sometimes agents at other branches don't pick up. Booking gets confirmed without full verification.
Step 4If available, agent verbally confirms with customer and manually writes booking in the ExcelCustomer Service AgentTwo agents checking at the same time can both see 'available' and both confirm to different customers — classic race condition.
Step 5No confirmation sent to customer — customer is told to 'just come at your time'Customer has no proof of booking. Disputes arise at the counter.
Step 6Car goes for service — Fleet Manager sends a WhatsApp to the Branch ManagerFleet ManagerWhatsApp message can be missed or delayed. Branch Manager may not update Excel immediately.
Step 7If Excel not updated, agent books the service car — customer arrives to find it not readyCustomer Service AgentHappens 4–5 times per month across all 3 branches. Major source of complaints.
Step 8Customer arrives for pickup — agent manually fills a paper rental agreement formCustomer Service AgentTakes 18–22 minutes of data entry per customer. Customer waits at the counter.
Step 9Customer returns the car — verbal handover, agent checks it and writes notes on paperCustomer Service AgentNo digital record. If damage discovered later, no documentation to prove which customer caused it.
Step 10End of month: each branch compiles a revenue and booking summary in Excel and emails it to head officeBranch ManagerHead office receives 3 different Excel files with different formats. Finance Manager spends 4–5 hours combining them.
The most serious problem in the entire AS-IS process is Step 4 — the double-booking race condition. When two agents both look at the Excel at the same moment, both see the same car as "available", and both confirm to separate customers — there is no system to prevent this. It is structurally impossible to solve with Excel alone, no matter how carefully agents work. This required a technology solution.
05

Root Cause Analysis

Using the 5 Whys technique to find the actual root cause behind double bookings and low fleet utilization — so the solution fixes the real problem, not just the surface symptom.

5 Whys — Problem 1: Why do double bookings keep happening?

1

Why 1

Why do double bookings happen?

Two agents confirm the same car to two different customers at the same time, because both can see the car as 'available' in the Excel simultaneously.

2

Why 2

Why can both agents see the car as available at the same time?

Excel has no locking mechanism. When one agent is in the middle of confirming a booking, the file does not show 'in progress' to anyone else.

3

Why 3

Why is Excel being used for real-time booking management?

The company started with 5 cars and 1 branch. Excel worked fine then. As the business grew to 85 cars across 3 branches, no one upgraded the system.

4

Why 4

Why was the system not upgraded as the business grew?

There was no Operations Manager role until 18 months ago. Decisions about systems were made by individual Branch Managers who were too busy with day-to-day operations to step back and identify the problem.

5

Why 5

Why was there no one responsible for identifying and fixing operational system gaps?

The company grew informally. No structured review of operational processes was ever done. Problems were handled one at a time as they came up — not addressed at the root.

Root Cause Found

The root cause is not careless agents — it is using a tool (Excel) that is incapable of handling real-time concurrent bookings across multiple users and branches. No amount of training or process improvement can fix a structural limitation of the tool itself. The only fix is a booking system where confirming a booking immediately blocks that car for everyone else — in real time.

5 Whys — Problem 2: Why is fleet utilization only 58%?

1

Why 1

Why are 42% of cars idle on any given day?

Agents at Branch A don't know that Branch B has cars available. They simply tell customers 'we have no cars' — even though there are 8 available 20 km away.

2

Why 2

Why don't agents at Branch A know about available cars at Branch B?

There is no cross-branch view. Each branch's Excel file is a standalone document only that branch can edit or view.

3

Why 3

Why is there no cross-branch view?

Sharing a single Excel across 3 branches was tried but caused file corruption and merge conflicts. The branches went back to separate files.

4

Why 4

Why was no proper multi-user system considered when shared Excel failed?

The problem was escalated to the Operations Manager, but the immediate fix (separate files) was implemented and the underlying issue was never revisited.

5

Why 5

Why was the underlying issue never revisited?

No formal process exists for reviewing and improving operational systems. Problems get solved urgently and then forgotten.

CategoryRoot Causes Found
PeopleAgents solving problems in silos — no cross-branch communication or shared ownership of fleet visibility
ProcessNo standard booking process across branches; no formal escalation for system issues; no operational review cycle
TechnologyExcel is not designed for concurrent multi-user, multi-location booking management. File locking is not possible.
DataNo central customer database; no maintenance log integrated with availability; no historical booking data for capacity planning
06

Gap Analysis

Comparing what the business has today against what it needs — making the scope of the new system completely clear before design begins.

What the Business NeedsWhat Exists TodayThe GapPriority
Real-time car availability — any agent sees the same up-to-date availability at any momentA branch-specific Excel updated manually by agents at each branchNo live/shared view; availability 30 min to 24 hrs stale depending on when Excel was last updatedCritical
Double-booking prevention — once a car is confirmed, it must be locked for everyone elseNo locking in Excel — two agents can see the same car as available simultaneouslyStructurally impossible to prevent with the current tool. Only a proper DB system can do this.Critical
Fleet Manager to update car status ('In Service') directly in the booking systemFleet Manager sends a WhatsApp to Branch Manager who may or may not update Excel3–4 service car bookings per month happen because the update chain breaksCritical
Cross-branch fleet view — Operations Manager sees all 3 branches at once3 separate Excel files; head office gets a combined report once a monthOperations Manager sees status only once a month, 30 days oldCritical
Digital check-in — customer details stored once, reused for every future bookingPaper form filled manually at the counter for every booking22-minute check-in per customer; same data re-entered every time; no customer historyHigh
Automated SMS confirmation sent to customer when booking is confirmedNo confirmation; customer told verbally to 'just come on the day'No proof of booking for customer; disputes at counter; trust issuesHigh
Automated revenue report consolidated across all branches for Finance ManagerFinance Manager manually combines 3 Excel files every month (4–5 hours)4–5 hours of finance team time wasted monthly on data consolidationMedium
07

Business Requirements Document (BRD)

The BRD captures every business requirement in plain language — agreed and signed off by the Operations Manager and Finance Manager before any development begins.

IDPriorityWhat the System Must DoProblem It FixesHow We'll Know It's Done
BR-001MustShow real-time car availability across all 3 branches in one single screenCross-branch visibility gapAgent at Branch A can see available cars at Branches B and C without calling them
BR-002MustWhen a booking is confirmed, the car must be immediately locked — no other agent can book itDouble bookingsNo double booking in 1 month of testing with concurrent users
BR-003MustFleet Manager must be able to mark a car as 'In Service' from the system — instantly visible to allService car still bookableWithin 5 minutes of Fleet Manager updating status, no agent can book that car
BR-004MustStore customer details once — when the same customer books again, auto-fill their information22-min manual check-inReturning customer check-in completed in under 5 minutes
BR-005MustOperations Manager must see a live dashboard: total bookings today, fleet status, revenue this monthHead office blind spotDashboard shows numbers updated within 15 minutes of any booking or change
BR-006ShouldSend an automated SMS to the customer when their booking is confirmed — includes booking ID, car type, date and timeNo confirmation issueCustomer receives SMS within 2 minutes of booking confirmation
BR-007ShouldGenerate an automated monthly revenue and booking report for Finance Manager — no manual compilation needed4–5 hr monthly effortFinance Manager receives report automatically on the 1st of each month
BR-008CouldAllow customers to make bookings online through the company websiteReach and convenienceOnline booking form live; customer can book and receive SMS without calling
BRD formally reviewed and approved by the Operations Manager and Finance Manager at the end of Week 3. BR-008 (online booking) was moved to Phase 2 after discussion — the team agreed to get the internal system stable first before adding customer-facing features.
08

To-Be Process Design

How the same booking process will work after the new system is in place — comparing each old step to the new way.

The goal of the To-Be design was that any agent at any branch should be able to make a booking in under 5 minutes, with zero risk of a double booking, and with the customer getting a confirmation SMS automatically — without any manual coordination between branches.

New Booking Flow

Customer
Calls branch or walks in
Gives preferred date, duration, car type
Agent (System)
Searches for available cars — system shows real-time results across all branches
Selects car, enters customer info (auto-fills if returning customer)
Confirms booking — car LOCKED in system immediately
System sends SMS to customer automatically
Fleet Manager
Marks car 'In Service' from system when sending to garage
System instantly removes car from available pool — no agent can book it
Marks car 'Available' when service complete — re-enters pool immediately
Operations Manager
Opens dashboard — sees all 3 branches live: bookings today, cars available, revenue this month, pending returns
Old Way (AS-IS)New Way (TO-BE)Time Saved
Agent manually checks branch Excel for availabilitySystem shows real-time availability across all 3 branches on one screen5–10 min saved per booking
Agent calls other branches to verify the car isn't booked there tooNo need to call — system locks the car at the point of confirmation for everyone10–15 min saved per booking
Agent manually writes booking in Excel — risk of double bookingBooking saved to database — car instantly locked; zero risk of double bookingError eliminated
No confirmation sent to customerAutomated SMS sent to customer within 2 minutes of bookingCounter disputes eliminated
Fleet Manager WhatsApps Branch Manager → Branch Manager updates ExcelFleet Manager updates car status directly in system — visible immediately to all agentsUpdate delay eliminated
Customer fills paper form at counter every booking (18–22 min)Returning customer auto-filled from database; new customer entered once (4–5 min)14–18 min per returning customer
Finance Manager combines 3 Excel files every month (4–5 hours)Automated report generated on 1st of every month — Finance Manager downloads in 1 click4–5 hours/month saved
09

Functional & Non-Functional Requirements

Functional requirements describe what the system must do. Non-functional requirements describe how well it must do it.

IDWhat the System Must Do (Functional)From BRPriority
FR-001Show all available cars across all 3 branches for a searched date range — with car type, branch location, and daily rateBR-001Must
FR-002When an agent confirms a booking, the selected car must be locked in the system immediately — no other agent can select itBR-002Must
FR-003Fleet Manager can update car status: Available / In Service / Under Repair / Retired. Change reflects immediately for all agents.BR-003Must
FR-004Customer database: store name, phone number, ID proof type and number. Auto-fill when the same phone number is entered again.BR-004Must
FR-005Operations dashboard: total bookings today (all branches), number of cars available (all branches), total revenue this month, last 7-day trendBR-005Must
FR-006Booking confirmation SMS sent automatically: customer name, booking ID, car type, pickup date and time, branch addressBR-006Should
FR-007Generate and email a consolidated monthly report to Finance Manager: bookings, revenue, cancellations, per branch breakdownBR-007Should
FR-008Car return flow: agent marks car as 'Returned' in system, records fuel level and any damage notes with a photo upload optionBR-002Should
FR-009Booking history per car — all past bookings for a specific car, with customer name, dates, and any damage notesBR-004Could
IDHow the System Must Behave (Non-Functional)Measured ByPriority
NFR-001Car availability screen must load within 2 seconds after search — agents cannot wait longer than this during a live customer callLoad test with 10 concurrent usersMust
NFR-002The car locking must happen within 1 second of booking confirmation — the smaller the window, the lower the double-booking riskTest with 2 agents confirming same car simultaneouslyMust
NFR-003System must be accessible from any desktop browser — agents use different computers at different branchesTest on Chrome, Firefox, EdgeMust
NFR-004Only employees with a valid login can access the system — no public accessTry accessing without login; should redirect to loginMust
NFR-005SMS must be sent within 2 minutes of booking confirmationTime from confirmation to SMS delivery logged for 20 test bookingsShould
10

User Stories & Acceptance Criteria

Each user story describes one feature from the perspective of the person who will use it — so the developer understands who they're building for and why, not just what to build.

Epic 1 — Real-Time Booking & Conflict Prevention

US-001Customer Service AgentMust13 pts

As a Customer Service Agent, I want to see all available cars across all 3 branches when I search for a date, so that I can book a car for the customer immediately without calling other branches.

US-002Customer Service AgentMust8 pts

As a Customer Service Agent, I want the car to be automatically locked the moment I confirm a booking, so that no other agent can book the same car even if they are confirming at the exact same time.

US-003CustomerShould5 pts

As a Customer, I want to receive an SMS immediately after my booking is confirmed, containing my booking ID and pickup details, so that I have proof of my booking and know exactly when and where to come.

Epic 2 — Fleet & Vehicle Status Management

US-010Fleet ManagerMust8 pts

As a Fleet Manager, I want to mark a car as 'In Service' directly in the system, so that it is immediately removed from available cars and agents cannot book it — without needing to call or WhatsApp anyone.

US-011Fleet ManagerCould5 pts

As a Fleet Manager, I want to see the full service history of any car — all past service dates, mileage at service, and what work was done — so that I can plan upcoming maintenance before a car breaks down.

Epic 3 — Operations & Finance Dashboard

US-020Operations ManagerMust8 pts

As a Operations Manager, I want a single screen showing me — right now — how many cars are available, booked, in service, and idle across all 3 branches, so that I can spot idle cars at one branch and redirect bookings there.

US-021Finance ManagerShould5 pts

As a Finance Manager, I want to automatically receive a monthly revenue report on the 1st of every month showing total bookings, revenue, and cancellations per branch, so that I do not have to compile it myself from 3 separate Excel files.

Acceptance Criteria — US-002 (Car Locking on Confirmation)

Given Car XYZ is showing as available in the system for 14th July

When Agent 1 and Agent 2 both try to confirm a booking for Car XYZ for 14th July at the exact same time

Then Only one booking goes through. The other agent sees an error message: 'This car was just booked. Please select another car.' Car XYZ is now locked and shows as Booked.

Given A car has been marked as 'In Service' by the Fleet Manager

When Any agent searches for available cars for today's date

Then The car marked 'In Service' does not appear in the search results at any branch. It is invisible to agents until Fleet Manager marks it as 'Available' again.

Given An agent is halfway through a booking (car selected but not yet confirmed)

When Another agent at a different branch selects and confirms the same car first

Then The first agent's screen shows: 'Car no longer available — it was just booked.' The first agent must go back and select a different car.

11

Process Flows & BPMN

BPMN diagrams visually show the step-by-step flow of each process — making it easy for developers, agents, and managers to all understand the same process in the same way.

I created 3 BPMN diagrams: the New Booking Flow, the Vehicle Return Flow, and the Car Maintenance Update Flow. The maintenance flow was the most critical — it was the process that caused service cars to be booked by accident, and needed the clearest redesign.

Flow NameStart EventKey Decision PointsEnd Event
New Booking FlowCustomer requests booking (phone/walk-in)Is customer returning? (Yes = auto-fill) → Is selected car still available? (checked again at confirmation) → Booking confirmed or select different carCar locked in system, SMS sent to customer, booking ID generated
Vehicle Return FlowCustomer arrives to return carIs car returned on time or delayed? → Does agent note any damage? → Is fuel level as agreed?Car marked 'Available' in system, digital return record saved with agent's notes and timestamp
Car Maintenance Update FlowFleet Manager decides a car needs serviceFleet Manager marks car 'In Service' in system → System checks: are there any existing confirmed bookings for this car? → If yes, Branch Manager is alerted to contact those customersCar removed from availability pool; if future bookings exist, Branch Manager notified to arrange alternatives

Key Design Decisions Made During BPMN Design

Double-check availability at the moment of confirmation (not just at selection)

Even if a car shows as available when the agent selects it, the system checks one more time at the exact moment the agent clicks 'Confirm'. This handles the race condition — two agents selecting the same car at almost the same time. Only one can confirm it.

Alert before marking a car as 'In Service' if it has future bookings

If the Fleet Manager marks a car as 'In Service' and there are future confirmed bookings for that car, the system alerts the Branch Manager: 'Car ABC has 2 upcoming bookings on 15th and 18th July — please arrange alternatives.' Prevents customers from being surprised at pickup.

Return process is digital with a timestamp and agent ID

When an agent processes a car return, the system records: which agent did it, at what time, fuel level entered, and any damage notes. This creates an audit trail that previously did not exist — critical for damage disputes.

No online booking in Phase 1

The Operations Manager and I agreed to keep Phase 1 internal-only. Getting the internal booking process right is the prerequisite for exposing it to customers online. Online booking is in the Phase 2 backlog.

12

Data Analysis & Data Mapping

Before any system is built, I mapped every piece of data the system needs to store, where it comes from, and how different pieces connect to each other.

Data EntityWhat It StoresKey FieldsConnects To
Vehicle MasterDetails of every car in the fleetVehicle ID, Registration Number, Car Type (Hatchback/SUV/Sedan), Make, Model, Year, Branch ID, Status (Available/Booked/In Service/Retired), Daily Rate (₹)Booking table, Maintenance table, Branch table
CustomerDetails of every customer who has ever bookedCustomer ID, Full Name, Phone Number, ID Proof Type, ID Proof Number, Email (optional), CityBooking table
BookingEvery booking ever madeBooking ID, Customer ID, Vehicle ID, Pickup Date, Return Date, Total Days, Total Amount (₹), Agent ID, Branch ID, Status (Confirmed/Active/Completed/Cancelled), Booking TimestampCustomer, Vehicle, Agent, Branch
BranchThe 3 operating locationsBranch ID, City Name, Address, Phone Number, Branch Manager NameVehicle, Booking, Agent
Maintenance LogEvery service or repair event for every carLog ID, Vehicle ID, Start Date, Expected Return Date, Garage Name, Work Description, Cost (₹), Updated By (Fleet Manager ID)Vehicle Master
Agent / UserAll system users and their rolesAgent ID, Name, Branch ID, Role (Agent / Branch Manager / Fleet Manager / Finance / Operations / Admin), Login IDBooking, Branch
SQL
-- Find all cars available for a given date range (no overlapping bookings, not in service)
-- This query is at the heart of the availability search screen
SELECT
  v.vehicle_id,
  v.registration_number,
  v.car_type,
  v.make,
  v.model,
  b.city_name    AS branch,
  v.daily_rate
FROM vehicles v
JOIN branches b ON v.branch_id = b.branch_id
WHERE v.status = 'Available'
  AND v.vehicle_id NOT IN (
    -- Exclude cars that have an overlapping confirmed or active booking
    SELECT vehicle_id
    FROM bookings
    WHERE status IN ('Confirmed', 'Active')
      AND pickup_date  < '2024-07-20'   -- requested return date
      AND return_date  > '2024-07-14'   -- requested pickup date
  )
ORDER BY b.city_name, v.car_type, v.daily_rate;
SQL
-- Fleet utilization report: what % of each car's available days was it actually booked?
-- Used in the Operations Manager dashboard
SELECT
  v.vehicle_id,
  v.registration_number,
  v.car_type,
  br.city_name,
  COUNT(bk.booking_id)                        AS total_bookings,
  SUM(bk.total_days)                          AS total_rented_days,
  DATEDIFF(day, '2024-01-01', GETDATE())      AS total_possible_days,
  ROUND(
    100.0 * SUM(bk.total_days)
    / NULLIF(DATEDIFF(day, '2024-01-01', GETDATE()), 0),
    1
  )                                           AS utilization_pct
FROM vehicles v
JOIN branches br        ON v.branch_id = br.branch_id
LEFT JOIN bookings bk   ON v.vehicle_id = bk.vehicle_id
  AND bk.status IN ('Completed', 'Active')
  AND bk.pickup_date >= '2024-01-01'
GROUP BY v.vehicle_id, v.registration_number, v.car_type, br.city_name
ORDER BY utilization_pct DESC;
13

Wireframes & Prototypes

Simple mockups of every screen reviewed with the actual users before a single line of code was written. This ensured the developer knew exactly what to build.

Screen 1

Booking Search

Main Question It Answers

Which cars are available for the dates the customer wants?

For: Customer Service Agent

·Date picker: pickup date + return date

·Car type filter (Any / Hatchback / Sedan / SUV)

·Results: list of available cars showing branch, type, rate

·One-click to start booking — customer details auto-filled if returning customer

Screen 2

Fleet Status Board

Main Question It Answers

What is the current status of every car right now?

For: Fleet Manager

·All 85 cars listed with their current status (colour-coded)

·Available (green) / Booked (blue) / In Service (amber) / Retired (gray)

·One click to change status — with a mandatory reason note for In Service

·Filter by branch, car type, or status

Screen 3

Operations Dashboard

Main Question It Answers

How is the entire fleet performing across all 3 branches right now?

For: Operations Manager

·Live summary: total available / total booked / total in service (all branches)

·Branch-wise breakdown in 3 columns side-by-side

·Today's bookings count and this month's revenue

·Utilization % — which branch has the most idle cars

Screen 4

Booking Detail & Return

Main Question It Answers

Full record of a specific booking — used at pickup and return

For: Customer Service Agent

·Booking ID, customer name, car details, dates, total amount

·Pickup confirmation: agent marks 'Car Given Out' with timestamp

·Return: agent enters fuel level, damage notes, uploads photos if needed

·Status automatically updates to 'Completed' and car becomes Available

Key feedback from the Branch Manager during wireframe review: The first wireframe design for the booking search screen showed all 85 cars in one long list. The Branch Manager said immediately: “I will never scroll through 85 cars during a live customer call. I need the filter to be at the top and only show me cars at my branch by default.” This was changed in Round 2 to default to the agent's own branch — with an option to expand to all branches if needed.
14

Requirement Validation

Every requirement formally reviewed and approved before development starts — so there are no surprises during the build.

Validation StepWhenWhoWhat Was ReviewedResult
BRD Review MeetingEnd of Week 3Operations Manager + Finance ManagerAll 8 business requirements confirmed; acceptance criteria reviewedApproved — BR-008 (online booking) moved to Phase 2
Stakeholder WalkthroughWeek 4All 6 stakeholdersFull requirements summary; each person confirmed their use case was coveredApproved — Fleet Manager added one new request: alert when service car has upcoming bookings
FRS Technical ReviewWeek 5IT Manager + Operations ManagerAll 9 functional requirements reviewed for technical feasibility and effortFR-009 (booking history per car) moved to Phase 2 — complexity was too high for current timeline
Wireframe Review Round 1Week 6Branch Managers + Customer Service AgentAll 4 screens walked through; feedback collected5 change requests — default to own branch, simplify date picker, add car photo on booking screen
Wireframe Review Round 2Week 7Operations Manager + Branch ManagerUpdated wireframes reviewed after Round 1 changesApproved. IT Manager given green light to begin development.
All validations completed before any code was written. The IT Manager later confirmed that having clear wireframes and signed-off requirements meant development was faster than any previous project — no ambiguity, no mid-build rework requests.
15

Backlog Creation & Prioritization

The full list of everything to be built, sorted by what is most critical to deliver first — using MoSCoW prioritization.

PriorityStoriesWhat Gets BuiltSprint
Must Have10 stories — 61 ptsVehicle database, customer database, real-time availability search, car locking on confirmation, Fleet Manager status update, fleet status board, basic booking creation and confirmationSprint 1 & 2
Should Have6 stories — 31 ptsSMS confirmation, automated monthly finance report, car return process with damage notes, Operations Manager dashboard, agent login and role-based accessSprint 3
Could Have4 stories — 18 ptsFleet utilization chart on Operations dashboard, car photo on booking screen, maintenance alert for upcoming bookings when car marked 'In Service'Sprint 4
Won't Have3 stories — —Online customer booking portal, payment gateway integration, WhatsApp booking bot (Phase 2 backlog)Phase 2

Sprint Plan — 4 Sprints of 2 Weeks Each (10 Weeks Total)

Sprint 1
Wk 1–2

Database setup: vehicles, customers, bookings, branches, agents. Basic login and role access. Car availability search with real-time results across all branches.

Sprint 2
Wk 3–4

Booking confirmation with car locking mechanism. Fleet Manager status update screen (Available / In Service). Car return flow with damage notes. Core system usable end-to-end.

Sprint 3
Wk 5–6

Operations Manager dashboard (live fleet summary all 3 branches). SMS confirmation integration. Automated monthly finance report. Role-based access polished per user type.

Sprint 4
Wk 7–8

Fleet utilization chart. Maintenance alert for upcoming bookings. UAT defect fixes. Performance testing. Go-live preparation and user training.

16

Agile Sprint Execution

Running 2-week sprints — building and testing a working piece of the system every sprint, rather than trying to build everything at once.

Agile CeremonyHow OftenWhat I Did as BA
Sprint PlanningStart of each sprint (Monday)Walked the IT Manager through the top-priority user stories for the next 2 weeks; clarified every acceptance criteria before any coding started; confirmed what 'done' means for each story
Daily Stand-UpEvery day — 10 minutesFlagged any open questions coming from development; answered ambiguity on the spot; raised blockers to the Operations Manager if needed (e.g., IT Manager needed access to SMS gateway account)
Sprint ReviewEnd of each sprint (Friday)Demonstrated the completed features to Branch Managers and Operations Manager using real test data; captured feedback; added new items to backlog if needed
Sprint RetrospectiveEnd of each sprint (Friday)Team discussion: what went well, what was slow, what to change next sprint — kept these short (20 min) but consistently applied
Backlog RefinementMid-sprint (Wednesday, biweekly)Reviewed upcoming stories with IT Manager; broke large stories into smaller tasks; flagged technical risks before they became sprint blockers
Mid-Sprint 2 issue: During development of the car locking mechanism, the IT Manager raised a concern — the locking approach we had agreed on (locking at the moment of confirmation) would still leave a small window where two agents could both see "Available" and both click Confirm at the same time. We called an emergency 30-minute session with the Operations Manager to discuss options. The decision was to add an optimistic lock check at the database level — a second check at the exact millisecond of the database write, not just the UI. This was a technical detail, but I documented it in the requirements so it was formally recorded and testable in UAT.
17

Development Support

The BA's role during development — handling requirement questions, managing mid-build changes, and preventing scope creep from derailing the timeline.

SituationWhat HappenedWhat I Did as BAOutcome
Requirement ambiguityIT Manager asked: when a car is returned, should its status change to 'Available' immediately or only after the agent inspects it?Raised with Branch Manager and Fleet Manager — both said inspection happens immediately at return. Status should update to Available only after agent clicks 'Inspection Done'. Documented this in the FRS.Developer built the correct flow; no rework needed
Stakeholder change requestOperations Manager asked mid-Sprint 3 to add a 'Download as PDF' button to the monthly finance reportAssessed impact: 1 additional day of work. Agreed with Operations Manager to add to Sprint 4. Finance Manager confirmed email format was fine for now.Sprint 3 not disrupted; PDF added in Sprint 4
Data migration questionAll 3 branches had active bookings in Excel that needed to be in the new system from Day 1 — or agents would have to check two systems for the first few daysWorked with each Branch Manager to extract all active bookings into a template. IT Manager imported them into the database in a 2-hour migration session before go-live.New system had all active bookings on Day 1; agents never needed to use old Excel in parallel
SMS gateway setupThe company had no SMS service account — required to send booking confirmationsRaised with Operations Manager in Week 3 when I identified this gap in the technical review. Operations Manager signed up for an SMS gateway (Textlocal) within 2 days. Did not become a blocker.SMS feature was ready on time for Sprint 3
18

Testing Support

Designing the test plan and helping the team catch bugs before UAT — because finding a problem before users test it is much cheaper than finding it during UAT.

What I DidDetails
Wrote the UAT Test PlanCreated a document with 40 test cases, expected result for each, who would run it, and the pass/fail criteria — before testing started. Shared with IT Manager and Branch Managers 1 week before UAT.
Tested the locking mechanism specificallyOpened two separate browser windows logged in as two different agents. Both searched for the same car on the same date. Timed clicking 'Confirm' at almost exactly the same time 20 times. Car was successfully locked to the first confirmation in all 20 tries.
Designed edge case testsAdded tests for: What if both pickup and return date are the same day? What if the Fleet Manager marks a car 'In Service' while an agent is mid-booking? What if an agent logs in from Branch A but tries to book a car at Branch B?
Classified defects during triageAttended daily triage sessions with IT Manager during test week. For each defect found: is it a requirements issue (my responsibility), a build issue (IT Manager's responsibility), or a data issue (migration)?
During internal testing, I found that the Operations Manager dashboard was not updating in real time — it was refreshing every 30 minutes, not every 15 minutes as agreed in NFR- 005. The IT Manager had set a 30-minute cache for performance reasons. After discussion, we agreed 15 minutes was acceptable — the Operations Manager confirmed they would never need second-by-second updates. Updated the NFR from "within 15 minutes" to "within 30 minutes" before UAT, so it would pass correctly.
19

User Acceptance Testing (UAT)

Real users testing the system using realistic scenarios — confirming it does exactly what was agreed in the BRD before go-live approval is given.

What Was TestedTest CasesTested ByPassedFailedStatus
Booking creation and real-time availability10Branch Manager + Customer Service Agent (×2)911 Fixed
Car locking — no double bookings possible6IT Manager + Branch Manager60All Pass
Fleet Manager status update (In Service / Available)6Fleet Manager511 Fixed
Operations Manager dashboard — all branches8Operations Manager80All Pass
SMS confirmation — customer receives within 2 min5Customer Service Agent50All Pass
Car return flow with damage notes5Customer Service Agent + Branch Manager411 Fixed

Defects Found in UAT & How They Were Fixed

DEF-001High Severity

When a Customer Service Agent searched for cars at Branch A, the results also showed cars that were currently In Service (marked by Fleet Manager). Root cause: the availability query was not filtering by vehicle status — only checking for booking conflicts but not the status field. Fixed by IT Manager in 3 hours. Re-tested and confirmed.

DEF-002Medium Severity

When Fleet Manager marked a car 'In Service' and that car had a booking starting in 2 days, the Branch Manager did not receive the alert. Root cause: the alert trigger was checking for bookings starting 'today' only — not future dates. Fixed to check all future confirmed bookings for that car.

DEF-003Low Severity

On the car return screen, the damage notes text box only allowed 100 characters — agents needed more space to describe damage in detail. Changed to 500 characters with a character counter.

All 3 defects were fixed, re-tested, and confirmed within 3 working days. All stakeholders gave formal sign-off at the end of UAT. The Operations Manager specifically confirmed that the live cross-branch dashboard “showed them what they had been asking for for 2 years.”
20

Deployment / Go-Live

A phased rollout — starting with one branch first to catch any real-world issues before all 3 branches go live on the same day.

DayWhat HappenedWho Was Responsible
Day –2Data migration: all active bookings from all 3 branch Excel files imported into the new system databaseIT Manager + BA
Day –1Final system check: all 85 vehicles loaded into the database with correct status; all agent logins tested and confirmed workingIT Manager + BA
Day 1 AMBranch A (busiest branch) goes live. Excel officially archived. Agents use the new system for all bookings from this point forward.Branch Manager A
Day 1 PMBA present at Branch A from 10am to 6pm — available for any questions, taking notes on any usability issues observed in real useBA
Day 2 AMAfter 1 day of smooth operation at Branch A, Branches B and C go live simultaneouslyIT Manager + Branch Managers B and C
Day 3First real cross-branch booking tested: customer at Branch B needed a car; Branch B had none; agent found and booked a car at Branch A in 3 minutes without callingCustomer Service Agent
Week 2Hypercare period: IT Manager and BA both available daily for quick response to any system issue. Two minor display issues reported and fixed within 24 hours each.IT Manager + BA
Day 32First automated monthly finance report generated and emailed to Finance Manager on the 1st of the month — no manual actionSystem (automatic)
Starting with Branch A only on Day 1 was the right call. On Day 1 afternoon, one agent at Branch A accidentally marked a car as "In Service" instead of "Available" after it was returned. This was caught and corrected quickly because only 1 branch was live. If all 3 had gone live at the same time, the same mistake could have happened at all 3 branches before anyone noticed.
21

Training & Change Management

The booking system is only useful if the agents actually use it. Training focused on making each person confident in exactly the screens they use — nothing more.

Who Was TrainedFormatDurationWhat Was Covered
Customer Service Agents (×6)Hands-on session at the branch counter using the live system45 min eachBooking search, creating a new booking, looking up a returning customer, confirming a booking, processing a return with damage notes
Branch Managers (×3)1-on-1 session with each Branch Manager at their own branch30 min eachAll the above + branch-level performance view, how to check booking history for a specific car, how to handle a booking if a car becomes unexpectedly unavailable
Fleet Manager1-on-1 session30 minHow to mark a car In Service and Available, the maintenance alert system, how to view and update the maintenance log
Operations Manager1-on-1 session at head office30 minOperations dashboard — how to read it, which numbers to track daily, how to use fleet utilization data to redirect bookings from idle branches
Finance Manager15-minute walkthrough15 minHow to download the auto-generated monthly report; how to filter by branch; what each column means

Change Management Actions

Excel archived on Day 1 — not kept as backup

Deliberately archiving the old Excel files on the day of go-live removed the option to fall back to the old system. Agents who were unsure of the new system had no choice but to ask for help and learn it — which they did quickly. The Branch Managers championed this decision.

Branch Manager trained first, trained their own team

Each Branch Manager was trained 2 days before their branch went live. They then ran a 20-minute demo for their own agents. Having their own manager explain the system was more trusted than an outside trainer.

1-page quick reference card printed at each counter

A laminated A5 card with 4 steps: How to search for a car, How to confirm a booking, How to process a return, Who to call if something goes wrong. Still hanging at the counter 2 months later.

BA available at Branch A for the full first day

Physical presence on go-live day removed agent anxiety. The agents knew someone was there to help immediately if anything went wrong. No issues required escalation — but the presence itself made adoption much smoother.

22

Post-Implementation Review

Reviewed 4 weeks after go-live — did the system deliver what was promised? What worked, what didn't, what to improve?

FindingTypeDetail
Double bookings: 23/month → 0 in 4 weeks post go-livePositiveThe car locking mechanism completely eliminated double bookings. Not a single incident in 4 weeks of full operation across all 3 branches.
Customer check-in time reduced from 22 minutes to under 6 minutesPositiveReturning customers auto-filled from the database. New customers entered once. Agents confirmed the new check-in was dramatically faster and less stressful.
Operations Manager now checks dashboard every morning instead of calling branchesPositiveOperations Manager confirmed they no longer make the daily branch call. 'I open the dashboard and I can see everything in 2 minutes.'
Fleet utilization improved from 58% to 72% in first monthPositiveAgents now see idle cars at other branches and redirect customers there instead of turning them away. Still growing as agents get more comfortable using the cross-branch view.
One agent at Branch C still calling other branches sometimesImprovementOne agent had formed the habit strongly over 4 years. Their Branch Manager is doing additional 1-on-1 coaching. Will monitor in the next review.
SMS delivery occasional delay on weekends — 5–8 minutes instead of 2LearningSMS gateway has lower throughput on weekends. Raised with the SMS provider. They confirmed it is a plan limitation — Operations Manager considering upgrading the SMS plan.

3 Key Lessons from This Project

The right tool solves the problem; process improvements alone cannot

No amount of agent training or new Excel guidelines could have prevented double bookings — because the problem was structural. Excel simply cannot lock a record for concurrent users. Recognising that the solution needed to be a technology change (not a process change) was the most important early decision.

Phased rollout is worth the extra day

Starting with Branch A on Day 1 instead of all 3 simultaneously caught a real issue (agent incorrectly marking a returned car as In Service) while it only affected one branch. Small risk window = faster fix, lower impact. Always worth the extra day.

Migrate live data before go-live day — never run two systems in parallel

Importing all active bookings from Excel before go-live meant agents used only one system from Day 1. Projects that keep the old system running 'just in case' create confusion, split attention, and typically take twice as long to fully adopt the new system.

23

Business Impact Measurement

Measured at 8 weeks post go-live — comparing actual results against what was promised in the BRD.

0
Double bookings
Was 23/month before go-live
78%
Fleet utilization
Was 58% — +20 pts in 8 weeks
−67%
Customer complaints
vs. same period last year
6min
Customer check-in time
Was 22 min — 73% faster
What Was Promised in BRDTargetActual Result (8 Weeks)Status
Real-time car availability across all 3 branches in one screenSingle screen, all branches, live dataWorking; agents at all 3 branches using it dailyDone
Car locked immediately on booking confirmation — no double bookingsZero double bookings in 4 weeks of testingZero double bookings in 8 weeks of live operationDone
Fleet Manager marks car 'In Service' directly — immediately visible to allStatus change visible in under 1 minuteStatus change visible in under 5 seconds in all testsDone
Returning customer check-in: auto-fill from databaseCheck-in under 5 minutes for returning customersAverage 4.2 minutes for returning customersDone
Operations dashboard: all 3 branches live, updated within 30 minutesDashboard live, refreshes every 30 minDashboard running; Operations Manager checks it every morningDone
SMS confirmation to customer within 2 minutes of bookingSMS delivered within 2 minutesWeekdays: avg 80 seconds. Weekends: avg 6 minutes (gateway limit)Partial
Automated monthly finance report — no manual compilationReport auto-generated on 1st of monthFinance Manager received report automatically for 2 months runningDone

“Before this system, I would start each day calling all 3 branches to find out what cars we had available. Now I open one screen. It shows me everything — which branch has idle cars, how many bookings came in yesterday, what the revenue looks like. I make better decisions in the morning than I used to make all day.”

— Operations Manager · 8 weeks post go-live

The most valuable outcome: Fleet utilization going from 58% to 78% in 8 weeks. This is not a small number — with 85 cars, a 20-point improvement in utilization means roughly 17 additional cars rented per day on average. At an average daily rate of ₹1,800, that is approximately ₹30,600 additional revenue per day — from no new cars, no new marketing, just better visibility of what the company already had. This is the direct financial impact of a well-implemented information system.