<?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: Rishab Arya</title>
    <description>The latest articles on DEV Community by Rishab Arya (@rishabarya810).</description>
    <link>https://dev.to/rishabarya810</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%2F1396135%2Ff0b93c25-e043-46f9-bbd8-c0d533469de0.png</url>
      <title>DEV Community: Rishab Arya</title>
      <link>https://dev.to/rishabarya810</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rishabarya810"/>
    <language>en</language>
    <item>
      <title>Supply Chain Service-Level Dashboard: An FMCG Case Study with Power BI and DAX</title>
      <dc:creator>Rishab Arya</dc:creator>
      <pubDate>Mon, 28 Sep 2026 12:08:41 +0000</pubDate>
      <link>https://dev.to/rishabarya810/supply-chain-service-level-dashboard-an-fmcg-case-study-with-power-bi-and-dax-5efd</link>
      <guid>https://dev.to/rishabarya810/supply-chain-service-level-dashboard-an-fmcg-case-study-with-power-bi-and-dax-5efd</guid>
      <description>&lt;p&gt;AtliQ Mart, an FMCG manufacturer in Gujarat, is expanding to new cities — but key retail customers are declining renewals because of late and incomplete deliveries. I built a five-page Power BI dashboard that tracks the five standard supply-chain KPIs — OT%, IF%, OTIF%, LIFR, VOFR — against negotiated targets.&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%2Fraw.githubusercontent.com%2FRishabharya810%2FFMCG-Supply-Chain-Dashboard%2Fmain%2Fassets%2F01-overview.jpg" 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%2Fraw.githubusercontent.com%2FRishabharya810%2FFMCG-Supply-Chain-Dashboard%2Fmain%2Fassets%2F01-overview.jpg" alt="Overview page" width="800" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The business question
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;Where is order fulfillment failing — for whom, how badly, and why — so the supply chain can be fixed before the expansion replicates the problem in new cities?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Pipeline
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Data: 6 CSVs (31,729 orders, 57,096 lines)&lt;/li&gt;
&lt;li&gt;Cleaning: Power Query (BOM removal, two date formats, capitalization, on_time / in_full flags)&lt;/li&gt;
&lt;li&gt;Model: Star schema with 6 single-direction relationships, no fact-to-fact joins&lt;/li&gt;
&lt;li&gt;Measures: 19 explicit DAX measures — no implicit aggregations&lt;/li&gt;
&lt;li&gt;Dashboard: 5 pages — Overview, Customer Performance, Trends, Product Insights, Definitions + Data Model&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key findings
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Finding&lt;/th&gt;
&lt;th&gt;Numbers&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Promised reliability is not being met&lt;/td&gt;
&lt;td&gt;OTIF 29.0% vs 65.9% target; 0 of 35 customers on target&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Two failure modes&lt;/td&gt;
&lt;td&gt;Big-3 chains collapse on-time (~29% OT); smaller customers fill only ~40%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Problem is systemic&lt;/td&gt;
&lt;td&gt;City OTIF is 27.8–30.1%; every city fails the same way&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shortages are small and partial&lt;/td&gt;
&lt;td&gt;LIFR 66.0% but VOFR 96.6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lateness is frequent but shallow&lt;/td&gt;
&lt;td&gt;28.9% lines late, avg 1.7 days, max 3 days&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why I used explicit DAX measures
&lt;/h2&gt;

&lt;p&gt;The original single-page analysis was split into five pages and rebuilt with explicit DAX so every KPI, target, gap, and color rule is transparent. Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;OTIF % = DIVIDE ( SUM ( fact_orders_aggregate[otif] ), [Total Orders] )

OTIF Gap = ( [OTIF %] - [OTIF Target %] ) * 100

OTIF Gap Color =
VAR GapPoints = [OTIF Gap]
RETURN
    SWITCH ( TRUE (),
        GapPoints &amp;gt;= 0,   "#63BE7B",
        GapPoints &amp;gt;= -10, "#FFEB84",
        GapPoints &amp;gt;= -25, "#FDAE61",
        "#F8696B"
    )
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Takeaway
&lt;/h2&gt;

&lt;p&gt;The dashboard points to two parallel fixes: a dispatch/scheduling workstream for on-time failures, and a supply-planning workstream for in-full failures. Vadodara is the weakest and highest-volume city, so it's a good pilot location.&lt;/p&gt;

&lt;h2&gt;
  
  
  Repo, report, and reproduction
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Rishabharya810/FMCG-Supply-Chain-Dashboard" rel="noopener noreferrer"&gt;FMCG-Supply-Chain-Dashboard&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Full report (PDF): &lt;code&gt;report/AtliQ_Mart_Supply_Chain_Report.pdf&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Executive deck (PPTX + PDF): &lt;code&gt;report/AtliQ_Mart_Supply_Chain_Executive_Deck.pptx&lt;/code&gt; · &lt;code&gt;report/AtliQ_Mart_Supply_Chain_Executive_Deck.pdf&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was my second portfolio project. The biggest lesson was moving from a messy one-page report to a clean star schema with explicit DAX: once the model is right, the insights become obvious.&lt;/p&gt;

</description>
      <category>powerbi</category>
      <category>businessintelligence</category>
      <category>dataanalysis</category>
      <category>fmcg</category>
    </item>
    <item>
      <title>From CSV to Dashboard: Customer Shopping Trends Analysis with Python, PostgreSQL, and Power BI</title>
      <dc:creator>Rishab Arya</dc:creator>
      <pubDate>Mon, 28 Sep 2026 11:59:57 +0000</pubDate>
      <link>https://dev.to/rishabarya810/from-csv-to-dashboard-customer-shopping-trends-analysis-with-python-postgresql-and-power-bi-370c</link>
      <guid>https://dev.to/rishabarya810/from-csv-to-dashboard-customer-shopping-trends-analysis-with-python-postgresql-and-power-bi-370c</guid>
      <description>&lt;p&gt;A retail company wants to understand its customers' shopping behavior to improve sales, satisfaction, and loyalty. I built this end-to-end analytics project to answer that question with a modern data-analyst stack: Python → PostgreSQL → Power BI.&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%2Fraw.githubusercontent.com%2FRishabharya810%2FCustomer-Shopping-Trends-Analysis%2Fmain%2Fassets%2Fdashboard_screenshot.jpg" 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%2Fraw.githubusercontent.com%2FRishabharya810%2FCustomer-Shopping-Trends-Analysis%2Fmain%2Fassets%2Fdashboard_screenshot.jpg" alt="Dashboard preview"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The business problem
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;How can the company leverage consumer shopping data to identify trends, improve customer engagement, and optimize marketing and product strategies?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The analysis answers 10 business questions covering revenue by gender and age group, discount behavior, subscriber economics, shipping preferences, product ratings, and loyalty segmentation.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the data looks like
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;3,900 synthetic retail purchase records&lt;/li&gt;
&lt;li&gt;18 columns: purchase amount, review rating, gender, age, category, item purchased, payment method, subscription status, shipping type, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pipeline
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CSV (3,900 rows)
  ↓ pandas — cleaning &amp;amp; feature engineering
PostgreSQL via SQLAlchemy
  ↓ 10 business questions solved in SQL
Power BI Desktop
  ↓ KPI cards, donut, 4 charts, 4 slicers, explicit DAX measures
Report + presentation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What I fixed vs. the tutorial
&lt;/h2&gt;

&lt;p&gt;The tutorial this project was based on plotted some visuals using &lt;code&gt;Sum(customer_id)&lt;/code&gt;, which produced meaningless totals in the millions. I audited every binding and replaced those with explicit DAX measures like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Number of Customers      = COUNT('public customer'[customer_id])
Average Purchase Amount  = AVERAGE('public customer'[purchase_amount])
Average Review Rating    = AVERAGE('public customer'[review_rating])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Five key findings
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Finding&lt;/th&gt;
&lt;th&gt;What the data shows&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Clothing drives revenue&lt;/td&gt;
&lt;td&gt;$104,264 of $233,081 total (44.7%)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;The gender gap is audience size&lt;/td&gt;
&lt;td&gt;Male $157,890 total, but $59.54 vs $60.25 per customer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Subscriptions don't raise basket size&lt;/td&gt;
&lt;td&gt;$59.49 subscribed vs $59.87 non-subscribed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discounts don't grow baskets either&lt;/td&gt;
&lt;td&gt;$59.28 discounted vs $60.13 full-price&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loyal base, thin acquisition funnel&lt;/td&gt;
&lt;td&gt;3,116 loyal (79.9%) vs 83 first-time buyers (2.1%)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Tech stack
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Tool&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cleaning &amp;amp; ETL&lt;/td&gt;
&lt;td&gt;Python (pandas)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Storage &amp;amp; SQL&lt;/td&gt;
&lt;td&gt;PostgreSQL&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Visualization&lt;/td&gt;
&lt;td&gt;Power BI Desktop (DAX)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reporting&lt;/td&gt;
&lt;td&gt;PDF + PowerPoint&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Repo, report, and reproduction
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/Rishabharya810/Customer-Shopping-Trends-Analysis" rel="noopener noreferrer"&gt;Customer-Shopping-Trends-Analysis&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Report: included as PDF and executive deck in the repo&lt;/li&gt;
&lt;li&gt;Reproduce: README has exact steps, including setting &lt;code&gt;PG_PASSWORD&lt;/code&gt; before running the notebook&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This was my first end-to-end portfolio project. The biggest lesson was not the syntax — it was learning how to translate a business question into an ETL + SQL + dashboard chain that produces an actionable answer.&lt;/p&gt;

</description>
      <category>python</category>
      <category>postgres</category>
      <category>powerbi</category>
      <category>dataanalysis</category>
    </item>
  </channel>
</rss>
