<?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: Esther Karanja</title>
    <description>The latest articles on DEV Community by Esther Karanja (@esther_muthoni_karanja_).</description>
    <link>https://dev.to/esther_muthoni_karanja_</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%2F4071737%2F37700ca7-40ea-4297-ac6c-e008a52e0d93.jpeg</url>
      <title>DEV Community: Esther Karanja</title>
      <link>https://dev.to/esther_muthoni_karanja_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/esther_muthoni_karanja_"/>
    <language>en</language>
    <item>
      <title>Understanding Business Metrics for data analysis.</title>
      <dc:creator>Esther Karanja</dc:creator>
      <pubDate>Thu, 01 Oct 2026 10:43:20 +0000</pubDate>
      <link>https://dev.to/esther_muthoni_karanja_/understanding-business-metrics-for-data-analysis-jmo</link>
      <guid>https://dev.to/esther_muthoni_karanja_/understanding-business-metrics-for-data-analysis-jmo</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Breaking into data analytics isn’t just about running SQL queries or building dashboards. To stand out, you also need to understand the &lt;strong&gt;language of business.&lt;/strong&gt;&lt;br&gt;
Every organization from retail,healthcare to tech and beyond runs on metrics. They shape strategy, guide decisions and define success.&lt;br&gt;
When you can speak to those metrics with confidence, you instantly become more credible as an analyst.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Metrics&lt;/strong&gt; are basically anything you can track as long as it is in quantitative value then its a metric.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Perfomance Indicators(KPIs)&lt;/strong&gt; are the metrics that actually matter.&lt;br&gt;
How do i differentiate?ask yourself would management really care about this metric?if yes then its a KPI.Should have around 5-10 KPIs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Objective Key Reports(OKRs)&lt;/strong&gt;-this is basically setting the &lt;strong&gt;direction&lt;/strong&gt; and concrete projections of the company or business eg.we want to hit 100M profit by December,reduce expenditure etc.&lt;br&gt;
At a company there may be 3-5 main OKRs that get circulated across all departments because they are top-line priorities that leadership wants everyone to align themselves on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Which metrics to choose?ask yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which sector are we in?Finance,IT,Health etc since they may have different KPIs.&lt;/li&gt;
&lt;li&gt;Can we influence this metric?&lt;/li&gt;
&lt;li&gt;Does this metric geniunely affect perfomance&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>kpi</category>
      <category>datascience</category>
      <category>analytics</category>
    </item>
    <item>
      <title>A Comprehensive Data Analysis For J Cars Logistics.</title>
      <dc:creator>Esther Karanja</dc:creator>
      <pubDate>Wed, 30 Sep 2026 11:18:44 +0000</pubDate>
      <link>https://dev.to/esther_muthoni_karanja_/a-comprehensive-data-analysis-for-j-cars-logistics-1ima</link>
      <guid>https://dev.to/esther_muthoni_karanja_/a-comprehensive-data-analysis-for-j-cars-logistics-1ima</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;JCARS Logistics imports,sells and delivers vehicles to customers across different regions in Kenya.&lt;br&gt;
To help management track business growth and perfomance,i built a power bi analytics solutions.&lt;br&gt;
This article breaks down how raw data was transformed into revenue,profits  and insights using data modelling and DAX.&lt;/p&gt;

&lt;h3&gt;
  
  
  Objective
&lt;/h3&gt;

&lt;p&gt;My objective is to develop a solution that enables J cars logistics management to understand the performance of the business and investigate factors contributing to the performance.&lt;br&gt;
The data that was collected is below.&lt;br&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%2Fo3kky3fjm5phwjzb8xzk.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%2Fo3kky3fjm5phwjzb8xzk.PNG" alt="the dataset" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I started by cleaning the dataset inside the power query &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%2F6z73amcrszevb4z8v5b8.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%2F6z73amcrszevb4z8v5b8.PNG" alt="inside the power query" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cleaned dateset inside powerquery&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%2Fgq50jhmcrhiodl2h20xn.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%2Fgq50jhmcrhiodl2h20xn.PNG" alt="cleaned" width="800" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Referenced the flat table inorder to get dimension tables and a fact table&lt;br&gt;
I connected the fact table to the dimension table by generating a primary key for each dimension table and merging it to the fact table(foreign key).&lt;br&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%2Fvhmny3gw83qg8yuq9683.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%2Fvhmny3gw83qg8yuq9683.PNG" alt="schema" width="799" height="455"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Star schema&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%2Fkygipeem8i1whla8n4uq.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%2Fkygipeem8i1whla8n4uq.PNG" alt=" " width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Analysis Expressions (DAX)
&lt;/h2&gt;

&lt;p&gt;​In J Cars and Logistics data,after cleaning,in the power query i used DAX to transform raw transactional records into financial KPIs and  breakdowns. By establishing measures across my  star schema connecting sales facts with customer, regional and sales representative dimension tables.&lt;br&gt;
Some of the dax functions i used are:&lt;br&gt;
Total Units Sold: Sums all transactions of quantities across regions.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Total Units Sold = SUM(Fact[Unit Count])&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Total Revenue: Aggregates gross sales value across all vehicle transactions to yield KSh. 1.35 Billion. &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Total Revenue = SUM(Fact[Revenue])&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Gross Profit: Evaluates actual earnings by subtracting unit cost from total revenue, resulting in KSh. 515.45 Million&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Gross Profit = [Total Revenue] - SUM(Fact[Unit Cost])&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Gross Margin Percentage: Utilizes the error-safe DIVIDE function to determine profitability margin without risking divide-by-zero errors when handling zero-revenue filters.  &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Gross Margin % = DIVIDE([Gross Profit], [Total Revenue], 0)&lt;/code&gt;&lt;br&gt;
Resulting in a consistent business margin of 30% or 0.30 across current sales operations&lt;/p&gt;

&lt;p&gt;Regional Revenue Analysis: Evaluates specific regional contributions, such as isolating the Eastern region's KSh. 151.36M revenue share within trend lines.  &lt;/p&gt;

&lt;p&gt;&lt;code&gt;Eastern Revenue = CALCULATE([Total Revenue], Region[Region Name] = "Eastern")&lt;br&gt;
&lt;/code&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%2F5wt5m0qjjp6jvaobdymp.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%2F5wt5m0qjjp6jvaobdymp.PNG" alt=" " width="800" height="476"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;My dashboard&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Business Insights
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Total Revenue stands at 1.35 Billion from 466 units sold.The gross profit is at 515.45 Million delivering a gross margin % of 30%.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The Rift valley generates the highest volume of units sold,followed n=by Western,cental and Nyanza Regions&lt;br&gt;
Lower Volume markets include Nairobi,Coast and Eastern Regions by showing lower unit sales relative to the top perfoming regions.The Unknown region category also recorded minor traces of sales.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Higher perfoming sales representativees include Aisha Mohammed (sold 6 units of Axio),Grace Njeri selling 4 units of 320i and Brian Otieno selling 2 units of 320i.&lt;br&gt;
Faith Achieng,Kevin Mwangi,Macy Atieno and Samuel Mutua each registered individual sales for models such as 320i.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The total sum pf units sold was 466 units across all models,regions and sales representatives.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Challenges Faced
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Regional Performance Disparity- Strong concentration of sales in Rift Valley and Western highlights an underperformance or untapped potential in key major urban hubs like Nairobi.
​- Data Quality &amp;amp; Tracking Issues: The presence of an "Unknown" region entry suggests data entry gaps or unassigned sales locations in the source data.
&lt;/li&gt;
&lt;li&gt;​Revenue heavily dependant on a single dominant vehicle eg. Toyota drive a significant portion of representative sales, while other brands along the bottom chart eg Mazda, Mercedes-Benz, Mitsubishi,Honda,Subaru, show flat or very low individual counts in comparison.
​- Dependence on Specific Sales Representatives: Volume is heavily dependent on a few key sales representatives (e.g., Aisha Mohamed and Grace Njeri)therefore posing potential operational risks if staff turnover occurs.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ​Assumptions
&lt;/h2&gt;

&lt;p&gt;​- Data Completeness: The dataset represents the entire operational transaction history within the defined reporting period (no unrecorded offline transactions). &lt;/p&gt;

&lt;p&gt;​- Region Categorization: Sales are assigned to regions based on customer location or vehicle delivery points rather than dealership headquarters. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Product Classification: Each unit sold corresponds to a single vehicle unit across the listed makes and models.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;​- Uniform Market Availability: Vehicle inventory and model availability availability were evenly distributed across regions during the reporting period.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;​J Cars and Logistics demonstrates strong performance in key regions like Rift Valley and Western, backed by consistent contributions from top sales reps. However,to drive sustained growth, the business needs to address regional disparities—particularly by boosting sales in major regions like Nairobi and clean up reporting anomalies like the "Unknown" region. Standardizing sales strategies across all representatives and balancing model availability across all brands will help convert overall unit volume into long term market leadership and profits.&lt;br&gt;
Click here to access the full power bi report file on my &lt;a href="https://github.com/muthoni-ess/J-Cars-Logistics-.git" rel="noopener noreferrer"&gt;github repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>data</category>
      <category>dax</category>
    </item>
    <item>
      <title>Data Modelling,Relationships and Joins.</title>
      <dc:creator>Esther Karanja</dc:creator>
      <pubDate>Sun, 20 Sep 2026 08:13:03 +0000</pubDate>
      <link>https://dev.to/esther_muthoni_karanja_/data-modellingrelationships-and-joins-42ii</link>
      <guid>https://dev.to/esther_muthoni_karanja_/data-modellingrelationships-and-joins-42ii</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Data modelling&lt;/strong&gt; is the process of defining tables and establishing their relationships.The benefits of data modelling is that it simplifies data analysis expressions,speeds up query perfomance and reduces complexicity.&lt;br&gt;
&lt;strong&gt;Flat table&lt;/strong&gt; is a single table containing all dimensions and facts. Combines all of your data into one place containing all attributes&lt;br&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%2F82qn3igghu50o2j4lx6d.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%2F82qn3igghu50o2j4lx6d.PNG" alt="fact table" width="800" height="446"&gt;&lt;/a&gt;&lt;br&gt;
It is suitable for a small,simple dataset where data has few rows.&lt;br&gt;
&lt;em&gt;Advantages of a flat table&lt;/em&gt;&lt;br&gt;
It is easy to understand&lt;br&gt;
Appropriate for small databases&lt;br&gt;
Easy to import and analyze.&lt;br&gt;
Requires few or no relationships&lt;br&gt;
&lt;em&gt;Disadvantages include&lt;/em&gt;&lt;br&gt;
Creates data redudancy-where the same customer,product or category information may be repeated many times.&lt;br&gt;
The table may become very wide and difficult to maintain as the dataset grows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Star schema&lt;/strong&gt; - centralized fact table surrounded by single dimension tables. &lt;br&gt;
It organizes data into two distinct table types to form a star like structure.&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%2Fla0qh3i1imwm818j9nqs.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%2Fla0qh3i1imwm818j9nqs.PNG" alt="an example of a star schema" width="800" height="414"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;An example of a star schema above,we can see the fact table being sales table and the rest being dimensional tables.&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Advantages&lt;/em&gt;&lt;br&gt;
Fast performance&lt;br&gt;
Simple DAX formulas and clear pathways.&lt;br&gt;
_Disadvantages&lt;br&gt;
_&lt;br&gt;
Redudancy within dimensions since dimension tables are denormalized&lt;br&gt;
Requires light upfront preparation since raw data does not come arranged as a star schema.&lt;br&gt;
Intergrating data measured at different detail into a star schema requires creating separate fact tables or careful model design.&lt;/p&gt;

&lt;p&gt;A star schema is suitable for systems with large volumes of transactional data where performance and file size matter.&lt;br&gt;
I recommend a star schema with one to many cardinalities and single direction filtering.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Snowflake schema&lt;/strong&gt;-normalized extension of a star schema where dimension tables is normalized and connects to other dimension tables.&lt;br&gt;
&lt;em&gt;Advantages&lt;/em&gt; :&lt;br&gt;
Easier to update attributes in one place.&lt;br&gt;
Saves storage in relational database&lt;br&gt;
Reduces duplicates dimensional values.&lt;br&gt;
&lt;em&gt;Disadvantages&lt;/em&gt; : increase DAX complexicity as it requires multiple joins steps.&lt;br&gt;
Degrades power bi performance due to chain filtering and relationships.&lt;/p&gt;

&lt;p&gt;The difference between star and snowflake schema is that Snowflake schema data is split into sub-dimensional tables to eliminate duplicate data therefore expanding hierarchical branches while the star schema each dimension is a single,flat table connected directly to the fact table.&lt;/p&gt;

&lt;p&gt;Fact tables and dimension tables &lt;br&gt;
Fact tables -contains mostly keys,dates and numerical metrics eg patients_id,doctors_id,procedure_id&lt;/p&gt;

&lt;p&gt;Dimension tables- contains descriptive attributes used to slice,dice,filter and group facts.It mostly describes and gives more of the context around the facts&lt;/p&gt;

&lt;p&gt;Granularity-The exact level of detail representation by a singe row in afact table eg individual item line vs daily total transactional summary.Data Granuality is the level of detail shown in my report/how far i can aggregate my data.&lt;/p&gt;

&lt;p&gt;Key entities:&lt;br&gt;
Facts:fact sales,fact orders,fact inventory&lt;br&gt;
Dimensions:dimcustomer,dimproduct,dim location&lt;/p&gt;

&lt;p&gt;Cardinalities in data modelling/creating relationships-this refers to the raw data in one table in relation to data in another table based on numerical count of matching rows.&lt;br&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%2Fp69vgqrz0s0shcxfxx3s.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%2Fp69vgqrz0s0shcxfxx3s.PNG" alt="cardinalities" width="771" height="837"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Many to one(&lt;em&gt;:1) this relationship occurs mostly when connecting from the fact table to the dimension table. The foreign key in the fact table connecting with the primary key in the dimension table.&lt;br&gt;
One to many(1:&lt;/em&gt;)Primary key in the dimension table connects to foreign key in fact table.&lt;br&gt;
One to one(1 : 1)connected using one primary key in the fact table to another primary key in the dimensional table or vice versa.&lt;br&gt;
Many to many(* : *)used when bridge tables or direct relationships handle non unique keys on both sides.eg a foreign key and another foreign key.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primary Key&lt;/strong&gt;-is the main unique column identifier for each row in a table,it is exactly one per table eg customer id in dimcustomerexample C100)&lt;br&gt;
Unique keys-ensures values in a secondary column are unique across all rows eg emailaddress,dimcustomers.&lt;br&gt;
&lt;strong&gt;Foreign key&lt;/strong&gt; non unique identifier column in a fact table linking back to a dimension.&lt;br&gt;
Referential integrity-ensuring foreign key values in the fact table exist in the referenced dimension table.&lt;br&gt;
Active vs inactive-only active filter path can exist between two tables at a time.&lt;/p&gt;

&lt;p&gt;We activate relationships on the home tab&amp;gt;manage relationships&amp;gt;status&amp;gt;active&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%2Fkfk9iyvrnwnisbmm91pu.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%2Fkfk9iyvrnwnisbmm91pu.PNG" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;br&gt;
Inactive paths are activated using DAX functions like USERLATIONSHIP()and are dotted lines.&lt;/p&gt;

&lt;p&gt;Filter direction&lt;br&gt;
Single direction-filter flows strictly from the one side dimensionn to the many side(fact).This is the default.&lt;br&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%2Fubbspli54bnuoq6t8977.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%2Fubbspli54bnuoq6t8977.PNG" alt="single direction filter" width="424" height="335"&gt;&lt;/a&gt;&lt;br&gt;
Bi-directional(Both)-filters flow in both directions across tables.&lt;br&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%2Fswpwplw455h2xwvduu0c.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%2Fswpwplw455h2xwvduu0c.PNG" alt="double filter direction" width="216" height="232"&gt;&lt;/a&gt;&lt;br&gt;
Some disadvantages of bi-directional filters are that they may cause perfomance drops,ambigous filtering paths and unexpected visual results.&lt;/p&gt;

&lt;p&gt;Joins in power query&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%2Fkxnbnuspreeampfwou9c.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%2Fkxnbnuspreeampfwou9c.PNG" alt="joins" width="800" height="526"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;select the join kind and click ok&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Left outer-Keeps all rows from left table or table 1 and matching rows from table two.&lt;br&gt;
Right Outer -keeps all rows from the right table or table two and the matching rows from table one.&lt;br&gt;
Full outer-keeps all rows from both tables,combining matches and leaving nulls for non matches.&lt;br&gt;
Inner-keeps only rows where the join keys match in both tables&lt;br&gt;
Left anti-Keeps rows from table 1 that have no match in table two.Great to use for finding missing records.&lt;br&gt;
Right anti-Keeps rows from table two and those that have no match in table one.&lt;/p&gt;

&lt;p&gt;MERGE AND APPEND IN POWER QUERY.&lt;br&gt;
&lt;strong&gt;Merge&lt;/strong&gt;-this is basically physically combining two physical tables into a single wide table.&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%2Frdrvipr6i4bqfxjj1xot.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%2Frdrvipr6i4bqfxjj1xot.PNG" alt="Merging" width="786" height="687"&gt;&lt;/a&gt;&lt;br&gt;
When to merge?we merge when combining staging lookup tables before loading eg merging product subcategory into product category&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Append&lt;/strong&gt;-We do this by stacking rows of tables on top of each other.This makes the table longer.The condition is that the table must have same exact number of columns and be the same type of columns.&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%2Fhe1ccaty5ix5e26iyf9y.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%2Fhe1ccaty5ix5e26iyf9y.PNG" alt="steps to append" width="800" height="109"&gt;&lt;/a&gt;&lt;br&gt;
append command below merge queries is used to stack or combine rows together,rows with exact number columns.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Understanding data modelling,relationships and joins is the foundation of an effective data analysis.&lt;br&gt;
Understanding the flat tables and relationships simplifies my DAX functions and power query which speeds up the query perfomance. Understanding the right join type to use and establishing a clear cardinality makes it easier to model my data.&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>data</category>
      <category>powerquery</category>
      <category>dax</category>
    </item>
    <item>
      <title>Jumia Product Performance and Analysis.</title>
      <dc:creator>Esther Karanja</dc:creator>
      <pubDate>Sun, 06 Sep 2026 00:14:28 +0000</pubDate>
      <link>https://dev.to/esther_muthoni_karanja_/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-product-2n19</link>
      <guid>https://dev.to/esther_muthoni_karanja_/building-an-interactive-excel-dashboard-for-e-commerce-product-analysis-a-case-study-of-product-2n19</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Jumia is one of Africa's leading e-commerce platform that manages millions of transcations with a diverse products from electronics,beauty products and many more categories.Therefore,tracking key perfomance indicators is essential for supply chain operations and profit optimization.&lt;/p&gt;

&lt;h2&gt;
  
  
  Objective
&lt;/h2&gt;

&lt;p&gt;My project aim is to build an interactive excel dashboard using Jumia transactional data.I aim to convert disorganized data into an interface that can help in decison making,identify trends and monitor products.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dataset description
&lt;/h2&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%2Fy7kitslw0zrbg526clxk.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%2Fy7kitslw0zrbg526clxk.PNG" alt="dataset description" width="798" height="26"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Cleaning and preparation process
&lt;/h2&gt;

&lt;p&gt;Raw data mostly contains inconsistency and errors that may occur that may interfere or give the wrong output.&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%2F5rvevtcokl810tgd3n5w.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%2F5rvevtcokl810tgd3n5w.PNG" alt="an example of a raw dataset" width="799" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;An example of a raw dataset&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the example above we can see inconsistent and missing data that we need  clean in order to have an effective output.&lt;br&gt;
First step is to format the prices from text to currency format and replace the before since excel will in order to calculate the discount eg below&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%2Fufnh3mmevtjafv3zjw3h.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%2Fufnh3mmevtjafv3zjw3h.PNG" alt=" " width="799" height="109"&gt;&lt;/a&gt;&lt;br&gt;
The image above is the discount price which was obtained by finding the difference between the old price and the new price.&lt;/p&gt;

&lt;p&gt;The image below is an example of the formula to categorize the prices whether high,low or medium.I used the &lt;code&gt;IF,AND&lt;/code&gt; functions.&lt;br&gt;
The difference when using the &lt;strong&gt;IF(AND&lt;/strong&gt; function is that all the conditions must be met while in the &lt;strong&gt;IF(OR&lt;/strong&gt;,only one condition has to be met.&lt;br&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%2F8341nzt9aemwi9shiunn.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%2F8341nzt9aemwi9shiunn.PNG" alt=" " width="797" height="94"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the image below i used &lt;code&gt;IF and AND&lt;/code&gt;for the discount category.&lt;br&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%2Fbwocms1mkz50s3guetjs.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%2Fbwocms1mkz50s3guetjs.PNG" alt=" " width="800" height="92"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the image below i also used the IF AND functions in the ratings category. &lt;br&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%2Fkpnz7hq8d11l0numv8a0.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%2Fkpnz7hq8d11l0numv8a0.PNG" alt=" " width="800" height="113"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After removing duplicates,removing inconsistent data eg texts in numbers columns.Below is an image of the cleaned version of the Jumia dataset.&lt;br&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%2Fj77icdxqrcau1ci38gp5.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%2Fj77icdxqrcau1ci38gp5.PNG" alt="cleaned jumia dataset" width="800" height="455"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;An example of a clean dataset&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Descriptive Analysis
&lt;/h2&gt;

&lt;p&gt;To calculate the average current price of products i used the average formula and highlighted the cells eg &lt;code&gt;=AVERAGE(B2:B113)&lt;/code&gt;.The average old price of products was obtained by the same formula but now on the old price column &lt;code&gt;=AVERAGE(D2:D113)&lt;/code&gt;&lt;br&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%2F5mioznet1nyau0qlcv3s.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%2F5mioznet1nyau0qlcv3s.PNG" alt=" " width="672" height="78"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To calculate the number of product since they are in text format we will use =COUNTA(A2:A113)&lt;br&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%2Ff5o9hr0t71rx1rgocqx8.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%2Ff5o9hr0t71rx1rgocqx8.PNG" alt=" " width="616" height="53"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To calculate the average product ratings we will use =AVERAGE(&lt;br&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%2Fg4olg13yruszaa27q0rj.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%2Fg4olg13yruszaa27q0rj.PNG" alt=" " width="490" height="35"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We use the count function to calculate the total number of reviews.&lt;br&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%2F3tzgwotbqpbz7ja55ul3.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%2F3tzgwotbqpbz7ja55ul3.PNG" alt=" " width="691" height="75"&gt;&lt;/a&gt;&lt;br&gt;
 We will use the &lt;code&gt;MIN()&lt;/code&gt; and &lt;code&gt;MAX()&lt;/code&gt;Formulas to calculate the least expensive product and most expensive product respectively.&lt;/p&gt;

&lt;p&gt;Some of my pivot tables and charts include:&lt;br&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%2F2f3rhkn771jwxrg6upek.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%2F2f3rhkn771jwxrg6upek.png" alt=" " width="675" height="236"&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%2Fcky2ot3zwi14icnfv5rb.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%2Fcky2ot3zwi14icnfv5rb.png" alt=" " width="799" height="334"&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%2F9xfa16ri6rorakju2b7t.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%2F9xfa16ri6rorakju2b7t.png" alt=" " width="800" height="203"&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%2F3s530kwv7ksnciff2klt.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%2F3s530kwv7ksnciff2klt.PNG" alt=" " width="603" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Slicers are interactive buttons to filter data used and to display the filters being applied.&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%2Fj2cpyx9s9vcdtfeubye1.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%2Fj2cpyx9s9vcdtfeubye1.PNG" alt="slicers" width="695" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Examples of slicers i will use are above.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dashboard Analysis&lt;/strong&gt;&lt;br&gt;
My dashboard that had the following KPIs(KPIs translates and evaluates data for better understanding)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Insights&lt;/strong&gt;&lt;br&gt;
High discounts are not translating into higher customers satisfaction.&lt;/p&gt;

&lt;p&gt;Poor rating dominates the donut chart at 60% while average accounts for 28% and excellent represents just 12%.eventhough the average rating is at 3.89 the volume of negative reviews show a potential of customers not being satisfied with the products.&lt;/p&gt;

&lt;p&gt;The discount strategy seems to be leverage used to drive products interest to the customers.eg Over half of the catalogue falls under high discount while 32 products sits in medium discount range and only 19 products have low discounts.&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%2Fg4c8785jpo1m3611osi7.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%2Fg4c8785jpo1m3611osi7.PNG" alt=" " width="800" height="341"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;My dashboard&lt;/em&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%2Fqcqcivsh0vkm50uvfy77.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%2Fqcqcivsh0vkm50uvfy77.PNG" alt=" " width="568" height="298"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Connecting slicers to multiple tables,charts and pivot tables&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;This case study has explored how ratings,reviews,prices and large discounts do not guarantee for major sales instead,for a platform like Jumia, consistent product quality and customers values are more important.&lt;br&gt;
This is the link to this project on github(&lt;a href="https://github.com/muthoni-ess/Jumia-Excel-Dashboard.git" rel="noopener noreferrer"&gt;https://github.com/muthoni-ess/Jumia-Excel-Dashboard.git&lt;/a&gt;)&lt;/p&gt;

</description>
      <category>datascience</category>
      <category>data</category>
    </item>
    <item>
      <title>Getting Started with Excel for Data Analytics: From Basics to Data Cleaning.</title>
      <dc:creator>Esther Karanja</dc:creator>
      <pubDate>Sat, 29 Aug 2026 11:41:27 +0000</pubDate>
      <link>https://dev.to/esther_muthoni_karanja_/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-2c0b</link>
      <guid>https://dev.to/esther_muthoni_karanja_/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-2c0b</guid>
      <description>&lt;h1&gt;
  
  
  Introduction
&lt;/h1&gt;

&lt;p&gt;Excel is used in our day to day lives.&lt;br&gt;
&lt;strong&gt;Excel&lt;/strong&gt; is a microsoft spreadsheet used to store,organize and analyze data.&lt;br&gt;
A &lt;strong&gt;row&lt;/strong&gt; is horizontal that is from left to right while a &lt;strong&gt;column&lt;/strong&gt; is vertical that is top to bottom.&lt;br&gt;
A &lt;strong&gt;cell&lt;/strong&gt; is an intersection of a row and a column.&lt;br&gt;
Rows, columns and cells are contained in a &lt;strong&gt;worksheet.&lt;/strong&gt;&lt;br&gt;
One or more worksheets form a &lt;strong&gt;workbook&lt;/strong&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%2F9oideakyzut7qjb1g7be.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%2F9oideakyzut7qjb1g7be.PNG" alt="Excel ribbon" width="798" height="83"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;excel ribbon main components&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tabs&lt;/strong&gt;-this are the headers on top ie File,Insert,Page layout,Formulas,Data,Review and view
In each tab there are subsections,dropdowns theres also a &lt;strong&gt;dialougue launcher&lt;/strong&gt; which is a small arrow at the bottom right corner that opens advanced settings panels.&lt;/li&gt;
&lt;/ul&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%2Flpyo7r0sg8kbdhdlumce.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%2Flpyo7r0sg8kbdhdlumce.PNG" alt="A sample excel worksheet interface" width="800" height="450"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;A sample excel worksheet interface.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Common terms we may hear a lot:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Formatting&lt;/strong&gt; this is just changing the visual appearance of data in a spreadsheet to make it easier to manipulate data and understand.&lt;br&gt;
&lt;strong&gt;Sorting data&lt;/strong&gt; this is basically arranging the text entries from &lt;strong&gt;A&lt;/strong&gt; to &lt;strong&gt;Z&lt;/strong&gt; or numerical values eg sales, arranging them form &lt;strong&gt;largest&lt;/strong&gt; to &lt;strong&gt;smallest&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Formulas&lt;/strong&gt; all formulas start with the &lt;code&gt;=&lt;/code&gt; sign to tell excel that the following is a calculation not a text.&lt;br&gt;
&lt;strong&gt;Functions&lt;/strong&gt; this are operations prebuilt in excel thet make calculations easy eg &lt;code&gt;SUM,AVERAGE,VLOOKUP&lt;/code&gt;&lt;br&gt;
&lt;strong&gt;Cell Referencing&lt;/strong&gt; this shows the cells highligted or containing data eg   &lt;code&gt;A1,B2:B20)&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Data Cleaning?
&lt;/h2&gt;

&lt;p&gt;This is the process of removing inacurate,duplicate informations,blanks and any errors that may appear inorder for data analysis and reporting to be clear,accurate,seamless and easy'&lt;br&gt;
Why is cleaning data important because we may experience some of the common issues like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Duplicates-we basically get rid of duplicates by selecting all,clicking on the ribbon named data and removing duplicates or one could click on the column one wants to remove duplicates,under home ribbon,conditional formatting select remove duplicates or give conditions&lt;/li&gt;
&lt;li&gt;Spelling errors-Select all,under review ribbon,spellings&lt;/li&gt;
&lt;li&gt;Inconsistent spacing-use the TRIM command &lt;code&gt;=TRIM()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Wrong formatting eg numbers formatted as text-select the column,under the home ribbon,select number format as required eg if its date,use the short date  if its salary use accounting format,numbers under general etc
or different date format,under the data ribbon,select text to columns and fill the date format you want to use eg DMY,YMD etc&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Messy borders and blanks-to get rid of the blanks,ctrl G(go to shortcut) and click on special,type the replacement value,press ctrl enter it will replace blanks with the values i types eg &lt;code&gt;0,N/A&lt;/code&gt;or &lt;code&gt;Missing&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Text not standardized eg under name columns instead of &lt;code&gt;Esther Karanja&lt;/code&gt; displays eStheR KaRanja.We use the formula &lt;code&gt;=UPPER()&lt;/code&gt;will return &lt;code&gt;ESTHER KARANJA&lt;/code&gt; uppercase.&lt;br&gt;
We can use &lt;code&gt;=LOWER()&lt;/code&gt;for all names to be in small case and &lt;code&gt;=PROPER()&lt;/code&gt;for all the names in the normal case&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After cleaning the data properly one can create a table ctrl T or under insert ribbon create table.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;This week i have realized that cleaning data is a very important in the data analysis process and i should be keen and ensure everything is in the right format,no blanks,no redudant data,no spelling errors,spacing errors and many more errors that may be overlooked.&lt;/p&gt;

</description>
      <category>data</category>
      <category>datascience</category>
      <category>excel</category>
    </item>
    <item>
      <title>Understanding the Git Workflow:Working directory,staging ,commit and push.</title>
      <dc:creator>Esther Karanja</dc:creator>
      <pubDate>Fri, 21 Aug 2026 22:22:18 +0000</pubDate>
      <link>https://dev.to/esther_muthoni_karanja_/understanding-the-git-workflowworking-directorystaging-commit-and-push-2b3j</link>
      <guid>https://dev.to/esther_muthoni_karanja_/understanding-the-git-workflowworking-directorystaging-commit-and-push-2b3j</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Understanding git has become easier for me when broken down into this four stages.&lt;br&gt;
The working directory is where we write code,amend and delete files,here changes are made but can not be tracked unless they are instructed to commit.&lt;br&gt;
The staging phase is an area where files are modified.&lt;br&gt;
The commit phase is where git takes everything from the staging area and sends it to our local repository,&lt;br&gt;
The push phase is where the saved commits are sent to a remote repository like github.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Git?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt; is a version control system or tool used to track changes by developers.&lt;br&gt;
When one installs git it comes with an inbuilt terminal called &lt;strong&gt;gitbash&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Understanding how Git works.
&lt;/h2&gt;

&lt;p&gt;We start by installing git on my Pc, after installation is done one can check if git is installed by opening a terminal eg powershell on windows and run &lt;code&gt;git --version&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to create folders and files on git bash
&lt;/h2&gt;

&lt;p&gt;First identify where we want the folder to be located&lt;br&gt;
&lt;code&gt;ls&lt;/code&gt;is used to list&lt;br&gt;
&lt;code&gt;mkdir "name of the folder" (means make directory)&lt;br&gt;
&lt;/code&gt;&lt;code&gt;cd " name of the folder"&lt;/code&gt;(change directory)&lt;/p&gt;

&lt;p&gt;Readme texts &lt;code&gt;README.md&lt;/code&gt;end with .md since they are written using markdown language.Can use echo,touch or nano commands to write a readme file.&lt;br&gt;
If i want to know the contents of my readme file we use:&lt;code&gt;cat README.md&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;git config-this is basically telling it my identity&lt;br&gt;
&lt;code&gt;git config --user.name"Esther Karanja"&lt;/code&gt;&lt;br&gt;
&lt;code&gt;git config --user.email "my email"&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git init-this command is used to create or initialize a repository in main/master.&lt;br&gt;
&lt;code&gt;git init main&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git status-shows the repository status. This command shows changes and what is happening in git&lt;br&gt;
&lt;code&gt;git status&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git add-stages changes made&lt;br&gt;
&lt;code&gt;git add .&lt;/code&gt;this means stage all or one can specify what to be added e.g i want to add only a javascript folder &lt;code&gt;git add script.js&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git commit-commits records that have been staged in the &lt;strong&gt;local git repository&lt;/strong&gt;.Its like getting a snapshot or memory of the file.&lt;br&gt;
&lt;code&gt;git commit -m "write a commit message"&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;git log-shows a history of all the commits that were made.&lt;br&gt;
&lt;code&gt;git log&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;git branch&lt;/code&gt; should return main &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;To upload my git folder on github:&lt;/strong&gt;&lt;br&gt;
Open the github account,create a new repository,click on ssh and copy the link&lt;br&gt;
&lt;code&gt;git remote add origin "paste the ssh key link"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git remote -v&lt;/code&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;git push-this command to send commits to the &lt;strong&gt;remote repository&lt;/strong&gt;
&lt;code&gt;git push -u origin main&lt;/code&gt;
Git will send the files to my github repository,i can refresh my github and see them&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is github?
&lt;/h2&gt;

&lt;p&gt;Github is a cloud based platform for storing git repositories online.&lt;br&gt;
Just sign up for free,verify via email and your account is created.&lt;br&gt;
git and github are connected using a SSH KEY.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a SSH KEY?
&lt;/h2&gt;

&lt;p&gt;SSH stands for secure shell which is a protocol that allows a computer to communicate with another computer over a network.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So how do i generate an SSH key?&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;ssh-keygen -t ed25519 -C "email signed on github.com"&lt;/code&gt;and press enter, the passphase(password authentication)is optional.&lt;br&gt;
This command will generate two keys:example&lt;br&gt;
ed25519&lt;br&gt;
ed25519.pub&lt;br&gt;
The one with &lt;strong&gt;.pub&lt;/strong&gt; is the public key which is the one that we share with github while the other one is a private key which should not be shared.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How to add the SSH Key to Github&lt;/strong&gt;-open my github account,on settings click on SSH and GPG keys, create a new key and copy the public key that we generated.&lt;br&gt;
&lt;strong&gt;How to test the SSH connection&lt;/strong&gt;&lt;br&gt;
Test before pushing a project using &lt;code&gt;ssh -T git@github.com&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In conclusion,i can say that using git and github is easier than i thought,the commands are self explanatory.Basically,i just create my project locally,initialize git,connect my github account and git together using the SSH keys, create a repository,commit and push them to my github account &lt;/p&gt;

</description>
      <category>git</category>
      <category>gitbash</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
