<?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: Naomi Kwamboka Onderi</title>
    <description>The latest articles on DEV Community by Naomi Kwamboka Onderi (@naomi_kwamboka1001).</description>
    <link>https://dev.to/naomi_kwamboka1001</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%2F4071765%2F6f008c64-670b-4a56-970c-410e14d15957.png</url>
      <title>DEV Community: Naomi Kwamboka Onderi</title>
      <link>https://dev.to/naomi_kwamboka1001</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/naomi_kwamboka1001"/>
    <language>en</language>
    <item>
      <title>Power BI Data Modelling, Relationships &amp; Joins</title>
      <dc:creator>Naomi Kwamboka Onderi</dc:creator>
      <pubDate>Sun, 13 Sep 2026 15:00:32 +0000</pubDate>
      <link>https://dev.to/naomi_kwamboka1001/power-bi-data-modelling-relationships-joins-3j85</link>
      <guid>https://dev.to/naomi_kwamboka1001/power-bi-data-modelling-relationships-joins-3j85</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;This week we got started on learning Power BI its uses and how its applied in data analysis. When working with Power BI, the way data is organized and connected has a major impact on how easily reports can be created, how calculations work, and how well a Power BI solution performs.&lt;br&gt;
Data modelling in Power BI involves organizing data into tables and defining relationships between those tables so that the data can be analyzed effectively. A well-designed data model makes reports easier to understand, DAX calculations easier to write, and Power BI solutions easier to maintain and scale.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Modelling in Power BI
&lt;/h2&gt;

&lt;p&gt;Data modelling is the process of organizing data into structured tables and establishing relationships between those tables so that Power BI can understand how the data is connected.&lt;br&gt;
Instead of keeping all this information in one huge table, the data can be separated into different tables and connected using common fields.&lt;br&gt;
A well-designed data model is important because it can improve:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model readability&lt;/li&gt;
&lt;li&gt;Maintainability&lt;/li&gt;
&lt;li&gt;Filter propagation&lt;/li&gt;
&lt;li&gt;Overall reporting experience&lt;/li&gt;
&lt;li&gt;DAX calculations&lt;/li&gt;
&lt;li&gt;Data organization&lt;/li&gt;
&lt;li&gt;Scalability&lt;/li&gt;
&lt;li&gt;Report performance&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are several ways data can be structured. The three common modelling approaches are &lt;strong&gt;flat tables&lt;/strong&gt;, &lt;strong&gt;star schemas&lt;/strong&gt;, and &lt;strong&gt;snowflake schemas&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flat Tables
&lt;/h2&gt;

&lt;p&gt;A flat table stores all the required information in a single table. For simple datasets, a flat table may be sufficient, but it is generally less suitable for large and complex business intelligence solutions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of a Flat Table
&lt;/h2&gt;

&lt;p&gt;A flat table is relatively easy to understand because there are no relationships between multiple tables.&lt;br&gt;
It can be appropriate when there are few repeated values, a quick analysis is required, the analysis is simple and dataset is small.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disadvantages of a Flat Table
&lt;/h2&gt;

&lt;p&gt;The major problem is data redundancy which can result in repeated data, larger datasets, more difficult maintenance, potential inconsistencies and less flexible modelling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Star Schema
&lt;/h2&gt;

&lt;p&gt;A star schema separates the data into a main fact table and several surrounding tables. The structure resembles a star, which is where the name comes from. The main fact table contains business events or transactions, while the dimension tables contain descriptive information about those events.&lt;br&gt;
It is particularly useful for business intelligence and reporting solutions where users need to analyze business events across different dimensions.&lt;br&gt;
For example, a company could use a star schema to analyze:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sales by product&lt;/li&gt;
&lt;li&gt;Sales by product category&lt;/li&gt;
&lt;li&gt;Sales by customer&lt;/li&gt;
&lt;li&gt;Sales by location&lt;/li&gt;
&lt;li&gt;Sales by month&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Advantages of a Star Schema:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;It is generally well suited to Power BI's analytical model.&lt;/li&gt;
&lt;li&gt;It is relatively simple to understand.&lt;/li&gt;
&lt;li&gt;It reduces unnecessary data duplication.&lt;/li&gt;
&lt;li&gt;It supports efficient reporting and analysis.&lt;/li&gt;
&lt;li&gt;It makes DAX calculations easier to manage.&lt;/li&gt;
&lt;li&gt;It provides a clear structure for filter propagation.&lt;/li&gt;
&lt;li&gt;It is easier to maintain and extend.
## Disadvantages of the Star Schema
Incorrect relationships or poorly designed keys can result in incorrect calculations or unexpected filtering it also requires a proper understanding of relationships between tables for everything to be correct.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Snowflake Schema
&lt;/h2&gt;

&lt;p&gt;A snowflake schema is similar to a star schema, but dimension tables are further divided into additional related tables.&lt;br&gt;
Instead of storing all product-related information in one dimension table, information can be separated into multiple related tables.&lt;br&gt;
It may be appropriate when the underlying data contains complex hierarchical structures or when dimensions are large and naturally divided into related entities. However, unless it's necessary it's advised to keep the  dimensions simpler to make the Power BI model easier to work with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Advantages of a Snowflake Schema
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Represent complex hierarchies.&lt;/li&gt;
&lt;li&gt;Organize highly structured source data.&lt;/li&gt;
&lt;li&gt;Useful when dimensions contain multiple levels.&lt;/li&gt;
&lt;li&gt;Reduce repeated information within dimensions.
##Disadvantages of a Snowflake Schema
It can be more difficult to navigate than a straightforward star schema because of the extra tables, extra relationships and more filter paths.
This makes it more complex.
It has a steeper learning curve.
The report development can be complicated.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Comparing the Three Approaches
&lt;/h2&gt;

&lt;p&gt;The key difference is how the data is organized. A flat table keeps everything together, a star schema separates facts from dimensions, while a snowflake schema takes normalization further by splitting dimensions into additional related tables.&lt;br&gt;
The star schema provides a practical balance between performance, simplicity, and maintainability.&lt;br&gt;
Power BI models consists of tables, keys, relationships, and rules that determine how information flows between those tables.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fact Tables and Dimension Tables
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;fact table&lt;/strong&gt; stores measurable business events or transactions. It answers questions such as how many?, how much?and how many transactions.&lt;br&gt;
&lt;strong&gt;Dimension tables&lt;/strong&gt; contain descriptive information used to analyze the facts. It answers questions such as who?, when? and where?&lt;/p&gt;

&lt;h2&gt;
  
  
  Grain or Granularity
&lt;/h2&gt;

&lt;p&gt;The grain describes exactly what one row in the fact table represents. Clearly defining the grain is important because it prevents confusion and incorrect calculations. For example For example, a sales fact table should not have one row representing a whole order in some cases and one row representing an individual product in other cases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Relationships in Power BI
&lt;/h2&gt;

&lt;p&gt;A relationship connects two tables using a common column. Relationships are necessary because business data is often distributed across multiple tables. For example it shows how a customer relates to a product or different products.&lt;/p&gt;

&lt;h2&gt;
  
  
  Relationship Cardinality
&lt;/h2&gt;

&lt;p&gt;Cardinality describes how many records in one table can be related to records in another table. Power BI supports several relationship types such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;One-to-Many (1:*)&lt;/strong&gt;- This is normally the preferred relationship between a dimension and a fact table. For example, A customer can make many sales, but each sales record belongs to one customer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One-to-One (1:1)&lt;/strong&gt;- A one-to-one relationship means that each record in one table corresponds to only one record in the other table. For example, Every employee has their own unique employee details such as their email or ID.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Many-to-Many (:)&lt;/strong&gt;- A many-to-many relationship occurs when multiple records in one table can relate to multiple records in another table for example, students can enroll in many courses, and each course can have many students.
Many-to-many relationships can be useful, but they should be handled carefully because they can create ambiguous filtering and unexpected results.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Primary Keys and Foreign Keys
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;primary key&lt;/strong&gt; uniquely identifies a record in a table, for example employee ID, Student ID.&lt;br&gt;
A &lt;strong&gt;foreign key&lt;/strong&gt; is a column used to reference a record in another table for example, a customer ID column can be found in different tables since it's possible for customers to make multiple purchases. The relationship works because the dimension contains unique values while the fact table can contain repeated values.&lt;/p&gt;

&lt;h2&gt;
  
  
  Referential Integrity
&lt;/h2&gt;

&lt;p&gt;Referential integrity means that foreign-key values should correspond to valid records in the related dimension. If the column does not exist in the dimension, the model may produce unexpected results when filtering or calculating data.&lt;br&gt;
Ensuring that keys are clean and valid is therefore an important part of data preparation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Active and Inactive Relationships
&lt;/h2&gt;

&lt;p&gt;An active relationship is the default relationship used when filters travel between tables. Only one relationship between the same two tables can normally be active at a time. An inactive relationship can be used in specific DAX calculations when required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filter Direction
&lt;/h2&gt;

&lt;p&gt;Relationships can determine how filters move between tables.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Single-Direction Filtering&lt;/strong&gt;- In a typical star schema, filtering usually flows from the dimension to the fact table. This is generally the preferred approach for a star schema because the filter path is clear and predictable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bidirectional Filtering&lt;/strong&gt;- This is when filters flow in both directions. It is recommended to use the single-direction filtering unless there is a specific reason to use bidirectional filtering.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Joins in Power Query
&lt;/h2&gt;

&lt;p&gt;Power Query provides a feature called &lt;strong&gt;Merge Queries&lt;/strong&gt;, which allows tables to be joined during the data transformation stage therefore relationships in the Power BI model are not the same thing as joins in Power Query:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;** Left Outer Join**- This keeps all records from the left table and matching records from the right table.&lt;/li&gt;
&lt;li&gt;** Right Outer Join**- This keeps all records from the right table and matching records from the left table.&lt;/li&gt;
&lt;li&gt;** Full Outer Join**- This keeps all records from both tables. &lt;code&gt;ALL LEFT records + ALL RIGHT records&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;** Inner Join**- This keeps only records that have a match in both tables. Inner joins are useful when we only want records that exist in both datasets.&lt;/li&gt;
&lt;li&gt;** Left Anti Join**- This returns records that exist in the left table but do not have a match in the right table. This can be useful for data quality checks and finding missing relationships. &lt;/li&gt;
&lt;li&gt;** Right Anti Join**- This returns records that exist in the right table but do not have a match in the left table.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Power Query Joins vs Power BI Relationships
&lt;/h2&gt;

&lt;p&gt;A Power Query merge combines information from two tables during the data preparation/transformation stage. A Power Query merge can physically bring columns from one table into another table.&lt;br&gt;
A relationship in Power BI is created later in the data model. Instead of physically combining the tables, we keep them separate. This means creating a relationship in Power BI does not physically merge the tables together.&lt;br&gt;
The relationship tells Power BI how filters and calculations should move between the tables.&lt;/p&gt;

&lt;h2&gt;
  
  
  When Should You Use a Merge Instead of a Relationship?
&lt;/h2&gt;

&lt;p&gt;A merge can be appropriate when information genuinely belongs together or when data transformation requires combining columns. However, excessive merging can create very large and complicated flat tables. For analytical reporting, keeping fact and dimension tables separate is often preferable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Keep Fact and Dimension Tables Separate?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Reduced Redundancy&lt;/li&gt;
&lt;li&gt;Easier DAX-Measures can be written against a clear fact table while dimensions provide filtering context.&lt;/li&gt;
&lt;li&gt;Better Model Readability- A developer can easily understand which tables contain facts and which contain dimensions.&lt;/li&gt;
&lt;li&gt;Easier Reporting&lt;/li&gt;
&lt;li&gt;Better Scalability&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;Data modelling is one of the foundations of building effective Power BI solutions. Creating attractive visualizations is only one part of the reporting process. If the underlying model is poorly designed, calculations can become difficult, filters can behave unexpectedly, and maintaining the report can become increasingly complicated. For a typical business intelligence project, I would recommend a star schema. A well-designed star schema provides a relatively simple model with clear relationships between fact and dimension tables. This can support efficient filtering and analytical queries. And use one-to-many relationships between dimensions and the fact table and single-direction filtering, where filters flow from the dimension to the fact table. I would avoid unnecessary bidirectional relationships because they can introduce ambiguous filter paths and make the model harder to understand. Many-to-many relationships would also only be used when the business requirement genuinely requires them. Where possible, a bridge table can be used to create a clearer model.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>database</category>
      <category>learning</category>
    </item>
    <item>
      <title>Jumia Product Performance Analysis &amp; Pricing Dashboard</title>
      <dc:creator>Naomi Kwamboka Onderi</dc:creator>
      <pubDate>Mon, 07 Sep 2026 18:04:57 +0000</pubDate>
      <link>https://dev.to/naomi_kwamboka1001/jumia-product-performance-analysis-pricing-dashboard-3o95</link>
      <guid>https://dev.to/naomi_kwamboka1001/jumia-product-performance-analysis-pricing-dashboard-3o95</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;As part of understanding how Microsoft Excel is used in E-commerce. I analyzed a dataset of products listed on Jumia to understand how product performance from pricing to discount affect sales and customer engagement. The first step was to clean and prepare the raw dataset. Then perform data analysis to create visualizations, and later developed an interactive dashboard that presented the findings.&lt;br&gt;
These analysis aim to provide useful insights that can support better pricing strategies, promotional decisions, and customer engagement for Jumia.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cleaning the Data
&lt;/h2&gt;

&lt;p&gt;Before cleaning I copied the worksheet to a new sheet for reference purposes or incase something goes wrong or I accidentally delete data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Missing Values&lt;/strong&gt;- I checked every column for empty cells. Which were plenty in the ratings column. I wrote&lt;code&gt;Not available&lt;/code&gt; in the blanks spaces for accurate output during analysis.&lt;/li&gt;
&lt;li&gt;** Duplicates**- Searched and removed duplicates and fixed other inconsistencies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Numeric transformation&lt;/strong&gt;-Fixed the review column data as it was stored as negative numbers. Also removed the Ksh and commas in the &lt;em&gt;Current price&lt;/em&gt; and &lt;em&gt;old price&lt;/em&gt; columns to numeric values. 
Lastly was removing the &lt;code&gt;out of 5&lt;/code&gt;in the ratings column.
After cleaning this is what was displayed:&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%2Fmpgkt125l9xfltzxzo27.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%2Fmpgkt125l9xfltzxzo27.png" alt=" " width="799" height="265"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The new calculated columns
&lt;/h2&gt;

&lt;p&gt;At this point I added the new columns which are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Discount Amount&lt;/strong&gt;-Discount Amount = Old Price − Current Price.&lt;code&gt;=C2-B2&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rating Category&lt;/strong&gt;- &lt;code&gt;=IF(G2="","",IF(G2&amp;lt;3,"Poor",IF(G2&amp;lt;=4,"Average",IF(G2&amp;lt;=4.5,"Good","Excellent"))))&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Discount Category&lt;/strong&gt;-&lt;code&gt;=IF(D2="","",IF(D2&amp;lt;20%,"Low Discount",IF(D2&amp;lt;=40%,"Medium Discount","High Discount")))&lt;/code&gt;&lt;br&gt;
This means below 20%-Low, 20%-40%=Medium and above 40% is high&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Price Category&lt;/strong&gt;- &lt;code&gt;=IF(B2&amp;lt;1000,"Low Price",IF(B2&amp;lt;=2000,"Medium Price","High Price"))&lt;/code&gt;&lt;br&gt;
This means that Below Kes 1000=Low price, Kes 1000-2000= Medium Price and above Kes 3000.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data Analysis
&lt;/h2&gt;

&lt;p&gt;For the KPIs  I used the following formulas&lt;/p&gt;

&lt;p&gt;Total Products-&lt;code&gt;=COUNTA('Excel_jumia_dataset'!A2:A113)&lt;/code&gt;&lt;br&gt;
Average Current Price-&lt;code&gt;=AVERAGE('Excel_jumia_dataset'!B2:B113)&lt;/code&gt;&lt;br&gt;
Average Old Price-&lt;code&gt;=AVERAGE('Excel_jumia_dataset'!C2:C113)&lt;/code&gt;&lt;br&gt;
Average Discount-&lt;code&gt;=AVERAGE('Excel_jumia_dataset'!E2:E113)&lt;/code&gt;&lt;br&gt;
Average Rating-&lt;code&gt;=AVERAGE('Excel_jumia_dataset'!I2:I113)&lt;/code&gt;&lt;br&gt;
Total Reviews-&lt;code&gt;=SUM('Excel_jumia_dataset'!H2:H113)&lt;/code&gt;&lt;br&gt;
Most Expensive Product-&lt;code&gt;=XLOOKUP(B9,'Excel_jumia_dataset'!B2:B113,'Excel_jumia_dataset'!A2:A113)&lt;/code&gt;&lt;br&gt;
Least Expensive Product-&lt;code&gt;=XLOOKUP(B11,'Excel_jumia_dataset'!B2:B113,'Excel_jumia_dataset'!A2:A113)&lt;/code&gt;&lt;br&gt;
This results to:&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%2Fuahdjzk7ilxywm4ecgsx.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%2Fuahdjzk7ilxywm4ecgsx.png" alt=" " width="800" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Dashboard creation process
&lt;/h2&gt;

&lt;p&gt;Putting everything together to create a dashboard I used&lt;br&gt;
&lt;strong&gt;KPIs&lt;/strong&gt;-The screenshot above to be specificthat shows total products, average price, average discount, average rating, and total reviews.&lt;br&gt;
&lt;strong&gt;Pivot charts&lt;/strong&gt;- I created multiple pivot charts to showcase the top 10 products by discount, rating and reviews.&lt;br&gt;
&lt;strong&gt;Slicers&lt;/strong&gt;- To connect all PivotTables/charts for Rating Category, Discount Category, and Price Category, so the whole dashboard can be filtered interactively.&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%2Fb2mxr395sh14mnxmddd3.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%2Fb2mxr395sh14mnxmddd3.png" alt=" " width="800" height="314"&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%2Frysgdqsbhjti89402b2x.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%2Frysgdqsbhjti89402b2x.png" alt=" " width="799" height="303"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Correlation Analysis
&lt;/h2&gt;

&lt;p&gt;Used &lt;code&gt;CORREL()&lt;/code&gt; to test three relationships:&lt;br&gt;
&lt;strong&gt;Discount vs Reviews&lt;/strong&gt;--0.1368, This means that higher discounts don't influence higher customer engagement.&lt;br&gt;
&lt;strong&gt;Rating vs Reviews&lt;/strong&gt;-0.0572, So a product having a high rating doesn't necessarily mean it has lots of reviews.&lt;br&gt;
&lt;strong&gt;Current Price vs Rating&lt;/strong&gt;-0.1080, Expensive products are not clearly rated higher than cheaper products.&lt;br&gt;
&lt;strong&gt;Key Insights and Business Recommendations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prioritize highly reviewed products when evaluating customer engagement because review volume varies substantially across products.&lt;/li&gt;
&lt;li&gt;Monitor products with low ratings and identify opportunities to improve product quality, descriptions, or customer experience.&lt;/li&gt;
&lt;li&gt;Focus promotional efforts on products where discounts can attract attention without compromising product quality.&lt;/li&gt;
&lt;li&gt;Use the dashboard's slicers to compare product performance across different price, discount, and rating categories.&lt;/li&gt;
&lt;li&gt;Investigate products with high discounts but poor ratings, as large discounts may not compensate for poor customer satisfaction.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;The analysis showed that discounts, ratings, and customer reviews did not have strong relationships in this dataset. In particular, the weak correlation between discount percentage and reviews suggests that offering larger discounts does not necessarily result in higher customer engagement. The dashboard also made it easier to identify highly reviewed products, highly discounted products, and products that may require attention due to low ratings. The interactive dashboard brings these findings together through KPI cards, charts, PivotTables, and slicers, allowing users to explore product performance across different rating, discount, and price categories.&lt;br&gt;
Overall, this project strengthened my understanding of Excel for data cleaning, analysis, visualization, and dashboard development, while also demonstrating how data-driven insights can support better e-commerce business decisions. &lt;br&gt;
You can find the README.md and workbook that contains the clean dataset, pivot charts, pivot tables, Excel formulas, slicers and the dashboard on my GitHub link below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/naomionderi-codes/Jumia-Product-Performance-Dashboard" rel="noopener noreferrer"&gt;https://github.com/naomionderi-codes/Jumia-Product-Performance-Dashboard&lt;/a&gt;&lt;/p&gt;

</description>
      <category>analysis</category>
      <category>analytics</category>
      <category>data</category>
    </item>
    <item>
      <title>Getting Started with Excel for Data Analytics: From Basics to Data Cleaning</title>
      <dc:creator>Naomi Kwamboka Onderi</dc:creator>
      <pubDate>Sat, 29 Aug 2026 19:56:21 +0000</pubDate>
      <link>https://dev.to/naomi_kwamboka1001/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-4272</link>
      <guid>https://dev.to/naomi_kwamboka1001/getting-started-with-excel-for-data-analytics-from-basics-to-data-cleaning-4272</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Excel is a powerful tool used in data analytics, it is one of the most used tools for working with data. You can use Excel to collect, organize, clean, analyze, visualize, and present data without needing to write code. It is also the  easiest way you can  learn important analytical concepts while working with an actual spreadsheet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Definition of Excel and Data Analytics
&lt;/h2&gt;

&lt;p&gt;Excel is a spreadsheet that allows you to store information in rows and columns.&lt;br&gt;
Data analytics refers to the process of examining data to discover useful information, patterns, and insights that can help with decision-making.&lt;br&gt;
For example a company like LC Waikiki has thousands of sales records. The raw data might contain:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Customer names&lt;/li&gt;
&lt;li&gt;Sales representatives&lt;/li&gt;
&lt;li&gt;Store Locations&lt;/li&gt;
&lt;li&gt;Product Names&lt;/li&gt;
&lt;li&gt;Sales etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Understanding the Excel Interface
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Workbook&lt;/strong&gt;- This is basically an excel file.&lt;br&gt;
&lt;strong&gt;Worksheet&lt;/strong&gt;- This is an individual spreadsheet inside a workbook. The worksheet tabs are found at the bottom.&lt;br&gt;
For example:&lt;em&gt;Sheet1 | Sheet2 | Sheet3&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Rows&lt;/strong&gt;- They run horizontally across the spreadsheet. They are identified by numbers.&lt;br&gt;
&lt;strong&gt;Columns&lt;/strong&gt;- They run vertically. They are identified by letters.&lt;br&gt;
&lt;strong&gt;Cell&lt;/strong&gt;- This is the intersection of a row and a column.&lt;br&gt;
&lt;strong&gt;Cell Range&lt;/strong&gt;- This is a group of cells. &lt;em&gt;A1:C10&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Example of a Worksheet
&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%2F6a295av0ms0e3rva3ddi.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%2F6a295av0ms0e3rva3ddi.png" alt=" " width="800" height="583"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Formatting data
&lt;/h2&gt;

&lt;p&gt;Formatting makes data easier to read. Correct formatting becomes especially important when analyzing dates and numerical values.&lt;br&gt;
You can use the following formatting options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Date&lt;/li&gt;
&lt;li&gt;Currency&lt;/li&gt;
&lt;li&gt;Time&lt;/li&gt;
&lt;li&gt;Percentage&lt;/li&gt;
&lt;li&gt;Number&lt;/li&gt;
&lt;li&gt;Fraction&lt;/li&gt;
&lt;li&gt;Text&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Basic Excel Formulas
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SUM&lt;/strong&gt; adds numbers together. =SUM(F2:F6)&lt;br&gt;
&lt;strong&gt;AVERAGE&lt;/strong&gt; calculates the mean. =AVERAGE(F2:F6)&lt;br&gt;
&lt;strong&gt;COUNT&lt;/strong&gt; counts cells containing numbers. =COUNT(F2:F6)&lt;br&gt;
&lt;strong&gt;COUNTA&lt;/strong&gt; counts cells that are not empty. =COUNTA(B2:B6)&lt;br&gt;
&lt;strong&gt;MAX&lt;/strong&gt; returns the largest value. =MAX(F2:F6)&lt;br&gt;
&lt;strong&gt;MIN&lt;/strong&gt; returns the smallest value. =MIN(F2:F6)&lt;br&gt;
&lt;strong&gt;IF&lt;/strong&gt; function allows Excel to make decisions. =IF(F2&amp;gt;500,"High","Low") &lt;em&gt;This type of logic becomes very useful when analyzing large datasets.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Sorting Data
&lt;/h2&gt;

&lt;p&gt;Sorting allows you to arrange your data according to a particular order. Like Largest → Smallest ,or alphabetically from A-Z,Z-A etc&lt;/p&gt;

&lt;h2&gt;
  
  
  Filtering Data
&lt;/h2&gt;

&lt;p&gt;Filtering allows you to display only the records that meet specific conditions.&lt;/p&gt;

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

&lt;p&gt;Data cleaning is the process of identifying and correcting problems in a dataset so that the data is accurate, consistent, complete, and suitable for analysis and decision-making.&lt;br&gt;
Some of the issues one can encounter in a large data set may include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Invalid values&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inconsistent capitalization&lt;/strong&gt;- These can be standardized by using functions like =UPPER(A2) to change characters to uppercase, =LOWER(A2) to change characters to lowercase, =PROPER(A2) to change characters to proper capitalization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Missing values&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Duplicate records&lt;/strong&gt;- This is when the same record appears more than once.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Spelling mistakes&lt;/strong&gt;- Find &amp;amp; Replace (ctrl+H) can be used to fix spelling mistakes&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Incorrect dates&lt;/strong&gt;- You should make sure dates are stored consistently and recognized as actual dates rather than text.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Extra spaces&lt;/strong&gt;- Excel can treat them as different text values. The **TRIM **function helps remove the unnecessary spaces. =TRIM(A2)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wrong currencies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Numbers stored as text- =VALUE(A2) can be used to fix this. &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before analyzing data, these issues should be addressed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use Find &amp;amp; Replace for Data Cleaning
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Find &amp;amp; Replace&lt;/strong&gt; is one of the simplest and most useful Excel cleaning tools. You can open it using Ctrl + H. It is useful in correcting abbreviations, unwanted characters, spelling errors, inconsistent labels and category names.&lt;/p&gt;

&lt;h2&gt;
  
  
  Data Validation
&lt;/h2&gt;

&lt;p&gt;Data validation helps control what users can enter into a spreadsheet. This reduces the likelihood of users entering inconsistent values. This is particularly useful when creating spreadsheets that other people will use to enter data.&lt;/p&gt;

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

&lt;p&gt;When you receive a new dataset, carefully go through the entire worksheet before creating charts and calculating averages. Understand and inspect the dataset for irregularities and any inconsistencies. And after fixing the errors review the clean dataset again just incase. Learning Excel for data analytics is a gradual process and you don't need to learn every Excel function before you can start analyzing data. The skills you develop in Excel can be transferred to different areas of data analytics.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How To Upload Your First Project From a Local Folder to GitHub Using Git and SSH.</title>
      <dc:creator>Naomi Kwamboka Onderi</dc:creator>
      <pubDate>Sat, 22 Aug 2026 21:51:01 +0000</pubDate>
      <link>https://dev.to/naomi_kwamboka1001/how-to-upload-your-first-project-from-a-local-folder-to-github-using-git-and-ssh-500a</link>
      <guid>https://dev.to/naomi_kwamboka1001/how-to-upload-your-first-project-from-a-local-folder-to-github-using-git-and-ssh-500a</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;If you want to upload a project from your computer to your GitHub account, it can be done by simply using Git and SSH. This is one of the most important technical skills you can learn as a beginner because you will use this every time you want to create and or update an existing project. For a person using Windows OS, follow these simple steps as illustrated below. &lt;/p&gt;

&lt;h2&gt;
  
  
  1. Download Git and create a GitHub account.
&lt;/h2&gt;

&lt;p&gt;The GitHub account can be generated easily on the browser by using your email/username and a password. Git can be downloaded from Microsoft Store and installed in your computer.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Set up your Identity.
&lt;/h2&gt;

&lt;p&gt;Since it's your first time you are required to configure your name and email after installation.&lt;br&gt;
Run the following commands on Gitbash&lt;br&gt;
&lt;code&gt;git config --global user.name "Your Name"&lt;/code&gt; &lt;em&gt;Insert your name&lt;/em&gt;&lt;br&gt;
Then run&lt;br&gt;
&lt;code&gt;git config --global user.email "your-email@example.com"&lt;/code&gt;&lt;em&gt;Insert your email, the one used to create your GitHub account&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Check whether you already have an SSH key
&lt;/h2&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;code&gt;ls -al ~/.ssh&lt;/code&gt;&lt;br&gt;
You'll see &lt;br&gt;
&lt;code&gt;id_ed25519 &lt;br&gt;
id_ed25519.pub&lt;/code&gt;&lt;br&gt;
&lt;code&gt;id_ed25519&lt;/code&gt;refers to the private key and &lt;code&gt;id_ed25519.pub&lt;/code&gt; refers to the public key.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Generate a new SSH key
&lt;/h2&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;code&gt;ssh-keygen -t ed25519 -C "your-email@example.com"&lt;/code&gt;&lt;em&gt;Replace your email with your GitHub email&lt;/em&gt;&lt;br&gt;
You'll then see &lt;code&gt;Generating public/private ed25519 key pair.&lt;/code&gt;&lt;br&gt;
Press Enter since it's your first key.&lt;br&gt;
Next you'll see &lt;br&gt;
&lt;code&gt;Enter passphrase (empty for no passphrase):&lt;/code&gt;&lt;em&gt;Enter passphrase (password) for security&lt;/em&gt;&lt;br&gt;
You'll be asked to confirm your passphrase just enter it again.&lt;br&gt;
You'll see messages indicating the private and public keys are being generated.&lt;br&gt;
On Windows open PowerShell as an Administrator and run:&lt;br&gt;
&lt;code&gt;Get-Service -Name ssh-agent | Set-Service -StartupType Manual&lt;/code&gt;&lt;br&gt;
Then:&lt;br&gt;
&lt;code&gt;Start-Service ssh-agent&lt;/code&gt;&lt;br&gt;
Return to Gitbash and add your private SSH key:&lt;br&gt;
&lt;code&gt;ssh-add ~/.ssh/id_ed25519&lt;/code&gt;&lt;br&gt;
It should indicate that the Identity was added.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Add your public SSH key to Github
&lt;/h2&gt;

&lt;p&gt;Run:&lt;br&gt;
&lt;code&gt;cat ~/.ssh/id_ed25519.pub&lt;/code&gt;and press Enter. Copy the entire line that pops up upto the &lt;code&gt;.pub&lt;/code&gt;&lt;br&gt;
On GitHub open Settings → SSH and GPG keys then select New SSH Key give it a title and paste the public key then press add key.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Locate your project folder and adding it to GitHub
&lt;/h2&gt;

&lt;p&gt;Locate your project it may be in the documents folder on your desktop. Open Gitbash and navigate into the project folder&lt;br&gt;
&lt;code&gt;cd ~/Documents/Loan Report&lt;/code&gt;&lt;br&gt;
You can use &lt;code&gt;ls&lt;/code&gt; confirm&lt;br&gt;
Run:&lt;br&gt;
&lt;code&gt;git init -b main&lt;/code&gt; initializing an untracked local project.&lt;br&gt;
Then run:&lt;br&gt;
&lt;code&gt;git status&lt;/code&gt;  this shows the untracked files.&lt;br&gt;
Then run:&lt;br&gt;
&lt;code&gt;git add .&lt;/code&gt; this adds the file in the current  directory. Rerun &lt;code&gt;git status&lt;/code&gt; again.&lt;br&gt;
Then run:&lt;br&gt;
&lt;code&gt;git commit -m "Initial commit"&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Create a new Repository on GitHub
&lt;/h2&gt;

&lt;p&gt;Create a new repository with a new name preferably the same name as the file &lt;em&gt;Loan Report&lt;/em&gt; and choose whether it is public or private.&lt;br&gt;
After creating the repository, you will see the setup information and select and copy the SSH URL. Paste the link in Gitbash then press enter.&lt;br&gt;
Whatever comes up replace the name section with your GitHub username and  press enter.&lt;br&gt;
Run:&lt;br&gt;
&lt;code&gt;git remote -v&lt;/code&gt; this confirms that Git knows where the GitHub repository is&lt;br&gt;
Then run:&lt;br&gt;
&lt;code&gt;git push -u origin main&lt;/code&gt; This pushes a new repository to GitHub.&lt;br&gt;
Afterwards go to GitHub and confirm if the project is there.&lt;/p&gt;

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

&lt;p&gt;This is the basic Git and GitHub steps that you'll have to use repeatedly while working on different kind of projects and with time all of these will become easier.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>git</category>
      <category>github</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
