<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: joelm69</title>
    <description>The latest articles on DEV Community by joelm69 (@joelm69).</description>
    <link>https://dev.to/joelm69</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4138219%2F3b1a7e9d-f442-4350-acba-a81cd9cdbb7b.jpg</url>
      <title>DEV Community: joelm69</title>
      <link>https://dev.to/joelm69</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/joelm69"/>
    <language>en</language>
    <item>
      <title>Building an Interactive Excel Dashboard for E-commerce Product Analysis: A Case Study of Jumia Products</title>
      <dc:creator>joelm69</dc:creator>
      <pubDate>Tue, 22 Sep 2026 20:13:34 +0000</pubDate>
      <link>https://dev.to/joelm69/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-jumia-4pif</link>
      <guid>https://dev.to/joelm69/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-jumia-4pif</guid>
      <description>&lt;p&gt;I started with 115 Jumia product records. Before analysing anything, I needed to understand the quality of the data. During the cleaning stage, I found three records with invalid review values, so I removed them. The final dataset contained 112 products.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs4b6ixpdnqc3hzk866l3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fs4b6ixpdnqc3hzk866l3.png" alt=" " width="800" height="229"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiaj8wyai9k77o82hsenl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fiaj8wyai9k77o82hsenl.png" alt=" " width="800" height="145"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I used Python and Pandas to inspect and clean the raw Jumia dataset before moving into the analysis and dashboard stages.&lt;/p&gt;

&lt;p&gt;The original dataset contained 115 product records. During the cleaning process, I investigated the review field and found that the source data represented review counts as negative values. I also identified three invalid records and removed them.&lt;/p&gt;

&lt;p&gt;After cleaning, the dataset contained 112 product records.&lt;br&gt;
I also created additional analytical fields, including:&lt;br&gt;
Review count&lt;br&gt;
Current price midpoint&lt;br&gt;
Old price midpoint&lt;br&gt;
Discount amount&lt;br&gt;
Calculated discount percentage&lt;br&gt;
Rating category&lt;br&gt;
Discount category&lt;br&gt;
Price category&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3j9jp1qsarcpf04qehsw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F3j9jp1qsarcpf04qehsw.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After cleaning the dataset with Python, I loaded the cleaned data into PostgreSQL for structured analysis.&lt;/p&gt;

&lt;p&gt;I used SQL to investigate the main business questions around:&lt;/p&gt;

&lt;p&gt;Product discounts&lt;br&gt;
Customer review activity&lt;br&gt;
Product ratings&lt;br&gt;
Product prices&lt;br&gt;
Highly discounted products&lt;br&gt;
Highly reviewed products&lt;br&gt;
I also used SQL queries to calculate summary statistics and identify products that stood out based on their ratings, review activity and pricing.&lt;br&gt;
This stage allowed me to move from simply cleaning the data to analysing it from a business perspective.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F87kqwm9fpw2kmdnes8f3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F87kqwm9fpw2kmdnes8f3.png" alt=" " width="800" height="661"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Excel Analysis and Pivot Tables&lt;/p&gt;

&lt;p&gt;After completing the data cleaning in Python and the structured analysis in PostgreSQL, I moved the relevant data into Microsoft Excel to build the reporting and visualization layer.&lt;/p&gt;

&lt;p&gt;I used Excel to organize the analysis into summary tables and pivot tables. This made it easier to compare products based on discounts, ratings, review activity and pricing.&lt;/p&gt;

&lt;p&gt;The pivot tables helped me identify patterns such as:&lt;/p&gt;

&lt;p&gt;Products with the highest discount percentages&lt;br&gt;
Products with the highest review activity&lt;br&gt;
Rating categories across the dataset&lt;br&gt;
Discount categories across products&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbi0pi4z1e44rxfcp2d0p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbi0pi4z1e44rxfcp2d0p.png" alt=" " width="799" height="366"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5x0ob25zhi8yotcaz5mf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F5x0ob25zhi8yotcaz5mf.png" alt=" " width="799" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full project details can be found on:&lt;br&gt;
&lt;a href="https://github.com/joelm69/jumia-data-analysis" rel="noopener noreferrer"&gt;https://github.com/joelm69/jumia-data-analysis&lt;/a&gt;&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
