DEV Community

Cover image for Safari Connect: From Data To Decisions
Angellicah
Angellicah

Posted on

Safari Connect: From Data To Decisions

What happens when a spreadsheet full of transport bookings becomes a story about revenue, customer behaviour, cancellations, and business opportunities?

Every dataset has a story.

The challenge for a data analyst is figuring out how to tell it.

For this project, I worked with SafariConnect, a fictional transportation booking company with a dataset containing customer and booking information. At first glance, it was simply a collection of rows and columns.

But behind those rows were questions that a business would actually care about:

  • How much revenue is being generated?
  • How many bookings are being made?
  • Which travel class do customers prefer?
  • How many customers cancel their bookings?
  • How satisfied are customers?
  • What patterns could help the business make better decisions?

My goal was to take SafariConnect through a complete analytics workflow:

Raw Data → Data Cleaning → SQL → Transformation → Analysis → Power BI → Insights → Recommendations

This article documents that journey from beginning to end.


Project Overview

Project: SafariConnect Transport Booking Analytics

Role: Junior Data Analyst

Tools Used:

  • SQL
  • Power BI
  • Data Cleaning & Transformation
  • Data Analysis
  • Data Visualisation

Dataset: Transportation booking data

Final Clean Dataset: 289 records

Total Revenue: KES 226K+

Cancellation Rate: 7%

Average Customer Rating: 3.53/5


1. The Problem: Data Without Direction

Imagine you're managing SafariConnect.

You have hundreds of booking records sitting in a spreadsheet.

You can see booking IDs, customers, travel classes, booking amounts, cancellation statuses, ratings and other information.

But if someone asks:

"How is the business actually performing?"

Looking at the spreadsheet won't immediately give you the answer.

You need to transform the raw records into information that management can understand and act upon.

Therefore, the main objective of this project was:

To analyse SafariConnect's booking data and develop an interactive business intelligence dashboard that reveals revenue performance, booking behaviour, customer satisfaction and cancellation patterns.

The analysis was designed around several key business questions.

Business Questions

Revenue

  • What is the total revenue generated?
  • How does revenue vary across different categories?

Bookings

  • How many bookings were made?
  • Which travel class is most popular?

Cancellations

  • What percentage of bookings were cancelled?
  • Are cancellations significant enough to require attention?

Customer Experience

  • What is the average customer rating?
  • What does the rating suggest about customer satisfaction?

These questions became the foundation of the entire project.


2. Understanding the Dataset

Before touching SQL or Power BI, I first needed to understand the data.

This is one of the steps that can easily be skipped when you're eager to start building charts.

I didn't skip it.

The dataset contained approximately 300 records before cleaning and included information relating to:

  • Booking identification
  • Customer information
  • Journey details
  • Travel class
  • Booking amount
  • Cancellation status
  • Customer ratings
  • Other booking attributes

Each row represented a booking transaction.

The first task was therefore to understand:

What does each column mean?

What type of data does it contain?

Can I trust the values?

Are there duplicates or inconsistencies?

This initial exploration helped determine what needed to be cleaned before analysis.


Raw Dataset Screenshot

Raw data

The raw SafariConnect dataset before cleaning and transformation.


3. Data Cleaning

One of the biggest misconceptions about data analytics is that the main job is creating beautiful dashboards.

It isn't.

A dashboard is only as good as the data behind it.

If your underlying data is inconsistent, your beautiful visualisations can simply become beautifully presented mistakes.

I therefore began by cleaning and validating the dataset.

The cleaning process included:

Removing duplicates

Duplicate records can inflate:

  • Booking counts
  • Revenue
  • Cancellation numbers
  • Other KPIs

I checked the dataset for duplicate records and removed irrelevant duplicates where necessary.

Standardising categorical values

Categorical columns such as travel class and booking status need consistent values.

For example, if the same category appears as:

Economy
economy
ECONOMY
Enter fullscreen mode Exit fullscreen mode

a dashboard may interpret these as three different categories.

Standardisation ensured that equivalent values were treated consistently.

Handling missing values

Missing values were identified and assessed based on their relevance to the analysis.

Rather than blindly deleting every row containing a blank value, I considered whether the missing information would affect the specific analysis being performed.

Validating numerical fields

Revenue and rating fields were checked to ensure that numerical values were correctly interpreted.

Checking categorical fields

Fields such as cancellation status and travel class were reviewed for inconsistencies and unexpected values.

After cleaning, the dataset contained:

289 usable records

This cleaned dataset became the foundation for the rest of the project.


Cleaned Dataset Screenshot

Clean data

The dataset after cleaning, validation and standardisation.


4. Structuring the Data

Once the data was cleaned, I needed a structure that would support analysis.

The core dataset was organised around the booking transaction.

At a high level, the booking data contained fields representing:

Category Example Purpose
Booking ID Unique booking identification
Customer Data Customer-related information
Journey Data Trip-related information
Travel Class Economy or other classes
Booking Amount Revenue generated
Cancellation Status Booking outcome
Rating Customer satisfaction

The important idea here was to ensure that every record could be consistently analysed.

A clean analytical dataset makes it much easier to answer questions such as:

"How much revenue came from Economy bookings?"

or:

"What percentage of bookings were cancelled?"


5. SQL: Turning Business Questions Into Queries

Once the dataset was structured, SQL became one of the most useful tools in the workflow.

SQL allowed me to move from:

"I wonder..."

to:

"Let's calculate it."

For example, if management wants to know the total revenue:

SELECT 
    SUM(booking_amount) AS total_revenue
FROM bookings;
Enter fullscreen mode Exit fullscreen mode

To determine the total number of bookings:

SELECT 
    COUNT(*) AS total_bookings
FROM bookings;
Enter fullscreen mode Exit fullscreen mode

To analyse bookings by travel class:

SELECT 
    travel_class,
    COUNT(*) AS total_bookings
FROM bookings
GROUP BY travel_class
ORDER BY total_bookings DESC;
Enter fullscreen mode Exit fullscreen mode

To analyse cancellation status:

SELECT 
    cancellation_status,
    COUNT(*) AS booking_count
FROM bookings
GROUP BY cancellation_status;
Enter fullscreen mode Exit fullscreen mode

And to calculate the average customer rating:

SELECT 
    AVG(rating) AS average_rating
FROM bookings;
Enter fullscreen mode Exit fullscreen mode

These queries transformed raw transactions into measurable business metrics.


SQL Queries Screenshot

Sql queries

SQL queries used to aggregate, validate and analyse SafariConnect booking data.


6. From Numbers to KPIs

After cleaning and querying the data, I identified the metrics that could provide the clearest overview of SafariConnect's performance.

The final dashboard focused on four major KPIs.

Total Revenue

KES 226K+

This represents the total revenue generated from the analysed booking records.


Total Bookings

289

This represents the number of usable booking records after data cleaning.


Cancellation Rate

7%

Approximately 7% of the analysed bookings were cancelled.


Average Rating

3.53/5

The average customer rating was approximately 3.53.

Together, these metrics provided a high-level snapshot of the business.

But KPIs alone don't tell the whole story.

That's where visualisation came in.


7. Building the Power BI Dashboard

With the data cleaned and the key metrics identified, I moved into Power BI.

The purpose wasn't to create a dashboard filled with as many charts as possible.

The goal was to create something that a stakeholder could open and understand within seconds.

The dashboard therefore focused on:

  • Revenue
  • Bookings
  • Cancellation rate
  • Customer ratings
  • Travel class preferences
  • Booking patterns

Interactive filtering was also incorporated to allow the data to be explored from different perspectives.


Power BI Dashboard Screenshot

Power BI dashboard

SafariConnect interactive Power BI dashboard showing the key business performance indicators and booking patterns.


8. What Did the Data Actually Tell Me?

This is where the project became interesting.

The objective wasn't to calculate numbers simply because we could.

The objective was to understand what those numbers meant.


Insight #1: SafariConnect Generated Over KES 226K

The analysed dataset generated more than:

KES 226,000 in revenue

This provided an important baseline for understanding the financial performance represented in the dataset.

But revenue becomes more useful when we start breaking it down.

Instead of asking only:

"How much money did we make?"

we can ask:

"Where is that revenue coming from?"

This opens the door to deeper analysis by travel class, route, customer segment and other dimensions.


Insight #2: Economy Class Was the Most Preferred

One of the clearest patterns in the dataset was the dominance of Economy Class bookings.

This suggests that affordability and price sensitivity may play an important role in the customer base.

From a business perspective, this could influence:

  • Pricing strategies
  • Promotional campaigns
  • Capacity planning
  • Customer segmentation
  • Loyalty programmes

The important lesson here is that customer preferences shouldn't be based purely on assumptions.

The data can tell us what customers are actually choosing.


Travel Class Visualisation Screenshot

Travel class

Economy Class emerged as the most preferred travel option among SafariConnect customers.


9. Cancellation Rate: Small Number, Important Question

The cancellation rate was approximately:

7%

At first glance, 7% may not appear alarming.

Most bookings were not cancelled.

But this raises another question:

Why are customers cancelling?

A cancellation is more than a percentage.

It can represent:

  • Lost revenue
  • Empty seats
  • Operational inefficiencies
  • Customer dissatisfaction
  • Planning difficulties

The current dataset provides the cancellation rate, but a deeper analysis could investigate cancellation behaviour by:

  • Travel class
  • Route
  • Customer segment
  • Booking lead time
  • Time period
  • Payment method

This is an example of how one KPI can lead to another analytical question.


Cancellation Analysis Screenshot

Cancellation analysis

Cancellation analysis showing the proportion of bookings that were cancelled.


10. Customer Satisfaction: 3.53/5

The average customer rating was:

3.53 out of 5

This places customer satisfaction somewhere in the middle.

It's not a catastrophic score.

But it also isn't a score that suggests customers are overwhelmingly delighted.

That creates an opportunity for further investigation.

For example:

  • Which journeys receive the lowest ratings?
  • Do cancelled bookings have lower ratings?
  • Are some travel classes rated better than others?
  • Are certain routes associated with lower satisfaction?

The dashboard therefore doesn't just answer questions.

It creates new questions worth investigating.

And that's an important part of data analytics.


Customer Rating Visual Screenshot

Customer rating

Average customer rating of 3.53/5, highlighting an opportunity to further investigate customer experience.


11. The Relationship Between Bookings and Revenue

Another important lesson from the analysis is that booking volume and revenue are not necessarily the same thing.

Imagine two categories:

Category A

  • 150 bookings
  • KES 50,000 revenue

Category B

  • 80 bookings
  • KES 70,000 revenue

If we only looked at booking volume, Category A would appear more successful.

If we only looked at revenue, Category B would win.

This is why good analysis requires multiple metrics to be viewed together.

For SafariConnect, I considered:

Bookings + Revenue + Cancellations + Ratings

Together, these metrics provide a much more complete picture of business performance.


12. Challenges I Faced

Every data project comes with challenges.

SafariConnect was no different.

Challenge 1: Raw data quality

The original dataset wasn't immediately ready for analysis.

Solution:
I performed systematic cleaning, validation and standardisation before creating the final analytical dataset.


Challenge 2: Translating business questions into technical questions

"Understand the business" is too broad to analyse.

Solution:
I converted broad objectives into measurable KPIs.

For example:

Business question:

How is the company performing?

became:

  • What is total revenue?
  • How many bookings were made?
  • What percentage were cancelled?
  • What is the average customer rating?

Challenge 3: Dashboard clutter

It can be tempting to put every available metric on one page.

Solution:
I prioritised the metrics that directly answered the project's business questions.

The goal was clarity, not quantity.


Challenge 4: Validating the results

A wrong calculation can still produce a convincing-looking chart.

Solution:
I cross-checked calculated values and validated the transformed data before relying on the dashboard results.


13. Recommendations

Based on the analysis, SafariConnect could consider several actions.

1. Leverage Economy Class demand

Since Economy was the most preferred travel class, SafariConnect could develop targeted pricing and promotional strategies around this segment.

2. Investigate cancellations

The 7% cancellation rate should be monitored and analysed further to understand the underlying causes.

3. Improve customer experience

The 3.53/5 average rating suggests there is room for improvement.

Customer feedback should be analysed alongside journey and booking characteristics to identify specific pain points.

4. Analyse revenue beyond booking volume

Management should monitor revenue alongside booking counts to identify the most financially valuable segments.

5. Continue monitoring performance

The dashboard can serve as a foundation for continuous reporting as new booking data becomes available.


14. What I Learned

This project taught me several lessons that go beyond writing SQL queries or creating Power BI charts.

Data cleaning isn't the boring part

It is tempting to rush toward visualisation.

But reliable analysis begins with reliable data.

Garbage in, garbage out.


SQL is about asking better questions

SQL isn't just syntax.

The real skill is knowing what question you're trying to answer and then translating that question into a query.


A dashboard needs a story

A dashboard shouldn't force someone to interpret dozens of unrelated charts.

It should guide them.

What happened?

Why does it matter?

What should we investigate?

What action could we take?


Insights need business context

Finding that Economy Class is the most popular category is interesting.

Understanding what that means for pricing, marketing and capacity planning is where the analysis becomes valuable.


Every answer creates another question

The 7% cancellation rate led to:

"Why are customers cancelling?"

The 3.53 rating led to:

"What is causing dissatisfaction?"

The popularity of Economy led to:

"How can SafariConnect better serve this customer segment?"

That is what makes analytics exciting.

You don't simply finish an analysis.

You uncover the next question.


15. Project Workflow

The complete SafariConnect workflow can be summarised as:

Raw Dataset
     ↓
Data Exploration
     ↓
Data Cleaning
     ↓
Data Validation
     ↓
Database / Data Structure
     ↓
SQL Queries
     ↓
Data Transformation
     ↓
KPI Calculation
     ↓
Power BI Visualisation
     ↓
Analysis
     ↓
Business Insights
     ↓
Recommendations
Enter fullscreen mode Exit fullscreen mode

This is what makes SafariConnect an end-to-end analytics project rather than simply a Power BI dashboard.


16. Final Dashboard

The final Power BI dashboard brought the analysis together into one interactive view.

It transformed hundreds of individual booking records into a concise business story covering:

Revenue.

Bookings.

Cancellations.

Customer satisfaction.

Travel preferences.


Final Dashboard Screenshot

Power BI dashoard

Power B filters

Final SafariConnect Power BI dashboard.

If you're publishing this on DEV, I recommend placing your strongest dashboard screenshot here because this is the point where the reader can finally see the result of the entire workflow.


Conclusion: The Real Product Wasn't the Dashboard

When I started the SafariConnect project, I had a dataset.

By the end, I had something much more useful:

a story supported by data.

The project took SafariConnect's raw booking records and transformed them into measurable business insights.

The analysis revealed:

  • 289 cleaned booking records
  • KES 226K+ in analysed revenue
  • 7% cancellation rate
  • 3.53/5 average customer rating
  • Economy Class as the most preferred travel option

But the most valuable outcome wasn't the numbers themselves.

It was learning how to move through the entire analytical process:

Understand the problem → Clean the data → Query the data → Analyse the results → Visualise the findings → Extract insights → Recommend action.

That's the real role of a data analyst.

Not simply creating charts.

Not simply writing SQL.

Not simply cleaning spreadsheets.

But turning data into something a business can understand and act on.

And SafariConnect was another step in learning how to do exactly that.


Project Resources

Tools: SQL | Power BI | Data Cleaning | Data Analysis | Data Visualisation

Project Type: End-to-End Data Analytics

Domain: Transportation / Travel

Dataset: SafariConnect Booking Data

Github repository


Top comments (0)