1. Introduction to Business Intelligence and Power BI
1.7 The Quick-Commerce Sample Datasets Used in This Guide
Lakshat theva, to keep learning practical and relatable, every example in this guide uses quick-commerce (10-minute grocery delivery) data from six cities in Maharashtra: Pune, Nashik, Nagpur, Kolhapur, Solapur and Sambhaji Nagar. The main running example is Blinkit order data. A second dataset with the same structure, Amazon Now order data, is used in some examples, in the append/merge lessons, in exercises and in a platform comparison page in the project.
Important: fictional sample data
The Blinkit and Amazon Now datasets in this guide are fictional sample data created only for learning. They do not represent real company figures, real customers, real stores or real performance, and nothing in this guide is a statement about either company. The company names are used fakt to make the examples feel familiar. All person names are sample names.
Naming convention used in this guide
Columns are written as Table[Column], for example Orders[Amount]. Measures are written in square brackets only, for example [Total Sales]. This is also the recommended convention in real projects – it makes it easy to tell measures and columns apart.
The raw files use compact column names such as OrderID and OrderDateTime. In Power Query we rename them to friendly names such as Order ID and Order DateTime (a best practice covered in Module 11). The friendly names are used in all DAX examples.
Orders (fact table – one row per order line)
| Column (raw name) | Friendly name | Data type | Example |
|---|---|---|---|
| OrderID | Order ID | Text | BLK-250314-0457 |
| OrderDateTime | Order DateTime (IST) | Date/Time | 14-03-2025 19:42 |
| – (added in Power Query) | Order Date, Order Hour | Date, Whole number | 14-03-2025, 19 |
| CustomerID | Customer ID | Text | C-0102 |
| StoreID | Store ID | Text | BLK-PUN-01 |
| ProductID | Product ID | Text | P-021 |
| Quantity | Quantity | Whole number | 2 |
| Amount | Amount | Fixed decimal (₹) | ₹ 54.00 (line value after discount) |
| Discount | Discount | Fixed decimal (₹) | ₹ 6.00 |
| DeliveryFee | Delivery Fee | Fixed decimal (₹) | ₹ 25.00 |
| DeliveryTimeMins | Delivery Time Mins | Whole number | 9 |
| DeliveredDateTime | Delivered DateTime (and Delivered Date) | Date/Time | 14-03-2025 19:51 |
| DeliveryPartnerID | Delivery Partner ID | Text | DP-017 |
| OrderStatus | Order Status | Text | Delivered / Cancelled |
| PaymentMode | Payment Mode | Text | UPI / Card / Cash on Delivery / Wallet |
| Platform | Platform | Text | Blinkit / Amazon Now |
Simple bhashet sangaycha tar, all times in the sample data are in Indian Standard Time (IST, UTC+5:30). Module 7.14 shows how to convert UTC timestamps to IST in Power Query if a source system stores UTC.
Understand the grain
Each row is one order line (one product inside an order). An order with three products has three rows with the same Order ID. Order-level columns – Delivery Fee, Delivery Time Mins, Delivered DateTime, Delivery Partner ID, Order Status, Payment Mode – repeat on every line of that order. That is why orders are counted with DISTINCTCOUNT(Orders[Order ID]), not COUNTROWS. In this sample data, cancelled orders have Amount, Discount and Delivery Fee = 0 and a blank Delivery Time.
Product (dimension)
| Column | Example |
|---|---|
| Product ID | P-021 |
| Product Name | Gokul Cow Milk 500 ml |
| Category | Dairy & Breakfast |
| Sub Category | Milk |
| Brand | Gokul |
| Unit Price | ₹ 30.00 |
| Unit Cost | ₹ 26.00 |
Customer (dimension)
| Column | Example |
|---|---|
| Customer ID | C-0102 |
| Customer Name | Ruhi Bagale |
| Gender | Female |
| City | Pune |
| Area | Baner |
| Signup Date | 05-08-2023 |
DeliveryPartner (dimension)
| Column | Example |
|---|---|
| Delivery Partner ID | DP-017 |
| Partner Name | Salman |
| Vehicle Type | Bike / EV Scooter / Bicycle |
| Home Store ID | BLK-PUN-01 |
| Joining Date | 12-01-2024 |
DarkStore (dimension)
| Column | Example |
|---|---|
| Store ID | BLK-PUN-01 |
| Store Name | Kothrud Hub |
| Platform | Blinkit |
| Area | Kothrud |
| City | Pune |
| State / Country | Maharashtra / India |
| City Manager | Ravindra Bagale |
| Manager Email | ravindra.bagale@example.com |
Date (dimension, see Module 11)
| Column | Example |
|---|---|
| Date | 14-03-2025 |
| Year / Quarter | 2025 / Q1 |
| Month Number / Name | 3 / March |
| Year Month | 2025-03 |
| Day Name | Friday |
| Festival | Diwali / Ganeshotsav / (blank) |
Sample products with a local Maharashtra flavour
| Product ID | Product Name | Category | Sub Category |
|---|---|---|---|
| P-001 | Nashik Grapes 500 g | Fruits & Vegetables | Fresh Fruits |
| P-002 | Nagpur Oranges 1 kg | Fruits & Vegetables | Fresh Fruits |
| P-021 | Gokul Cow Milk 500 ml | Dairy & Breakfast | Milk |
| P-022 | Amul Butter 100 g | Dairy & Breakfast | Butter & Cheese |
| P-031 | Thick Poha 1 kg | Dairy & Breakfast | Breakfast Staples |
| P-032 | Ladi Pav (6 pcs) | Dairy & Breakfast | Bread & Pav |
| P-041 | Kolhapuri Misal Masala 100 g | Snacks | Instant Mixes & Masala |
| P-042 | Bhakarwadi 250 g | Snacks | Namkeen |
| P-051 | Kokum Sharbat 750 ml | Beverages | Syrups & Sharbat |
| P-061 | Herbal Bath Soap 4 x 100 g | Personal Care | Bath & Body |
| P-071 | Solapuri Chaddar (Double) | Household | Home Linen |
| P-072 | Dishwash Liquid 500 ml | Household | Cleaning |
Categories: Fruits & Vegetables, Dairy & Breakfast, Snacks, Beverages, Personal Care, Household. Prices and costs in the sample files are made up for practice.
Dark stores in the sample data (all in Maharashtra, India)
| City | Blinkit dark stores (Store ID – Area) | Amazon Now dark stores (Store ID – Area) | City Manager |
|---|---|---|---|
| Pune | BLK-PUN-01 Kothrud · BLK-PUN-02 Baner · BLK-PUN-03 Hadapsar | AMN-PUN-01 Hinjewadi · AMN-PUN-02 Wakad | Ravindra Bagale |
| Nashik | BLK-NSK-01 College Road | AMN-NSK-01 Gangapur Road | Shraddha Bagale |
| Nagpur | BLK-NGP-01 Dharampeth | AMN-NGP-01 Sitabuldi | Shahrukh |
| Kolhapur | BLK-KOP-01 Rajarampuri | AMN-KOP-01 Tarabai Park | Zoya |
| Solapur | BLK-SLP-01 Hotgi Road | AMN-SLP-01 Murarji Peth | Amir |
| Sambhaji Nagar | BLK-SBN-01 CIDCO | AMN-SBN-01 Nirala Bazar | Raja |
In the data, Chhatrapati Sambhaji Nagar is stored with the short name Sambhaji Nagar.
Sample people used in this guide. City managers: Ravindra Bagale (Pune), Shraddha Bagale (Nashik), Shahrukh (Nagpur), Zoya (Kolhapur), Amir (Solapur) and Raja (Sambhaji Nagar). Ravina is a regional lead for Pune and Solapur, and Rani is the state operations head. Customers include Ruhi Bagale, Ravina, Rani and Salman. Delivery partners include Salman, Amir and Raja. All e-mail addresses use the fictional domain example.com.
CustomerCustomer ID (key) Customer Name Area, City |
ProductProduct ID (key) Product Name Category, Brand |
DeliveryPartnerDelivery Partner ID (key) Partner Name Vehicle Type |
DarkStoreStore ID (key) Store Name, Platform Area, City, State Manager Email |
Orders (fact)Order ID Order Date, Delivered Date Customer ID, Store ID Product ID, Delivery Partner ID Quantity, Amount, Discount Delivery Fee, Delivery Time Mins Order Status, Payment Mode, Platform |
DateDate (key) Year, Quarter Month, Year Month Festival |
He data structure ekda neet bagha, karan pudhe pratyek module madhe aapan hech tables vaparnaar aahot.
Ravindra Bagale's Tip
Friends, remember: the mistake I see most with this dataset is ignoring the grain: Orders has one row per order line, not per order. Counting rows gives order lines, not orders. Use DISTINCTCOUNT(Orders[Order ID]) for order counts, and always ask "what does one row mean?" before you write a measure. This matters for both exams and interviews.
Ravindra Bagale's Tip – मराठी
मित्रांनो, लक्षात ठेवा: या dataset मध्ये मला सगळ्यात जास्त दिसणारी चूक म्हणजे grain कडे दुर्लक्ष: Orders मध्ये एक row म्हणजे एक order line, एक order नाही. Rows मोजल्या तर order lines मिळतात, orders नाहीत. Order count साठी DISTINCTCOUNT(Orders[Order ID]) वापरा, आणि measure लिहिण्याआधी नेहमी विचारा "एक row म्हणजे काय?". हे exam आणि interview दोन्हीसाठी important आहे.
Ravindra Bagale's Tip – हिंदी
दोस्तों, याद रखो: इस dataset में सबसे ज़्यादा दिखने वाली गलती है grain को नज़रअंदाज़ करना: Orders में एक row यानी एक order line, एक order नहीं. Rows गिनने से order lines मिलती हैं, orders नहीं. Order count के लिए DISTINCTCOUNT(Orders[Order ID]) इस्तेमाल करो, और measure लिखने से पहले हमेशा पूछो "एक row का मतलब क्या है?". यह exam और interview दोनों के लिए ज़रूरी है.
Thodkyaat sangaycha tar (quick recap)
BI mhanje data varun nirnay ghene, aani Power BI he tyasathi Desktop, Service aani Mobile ase components deto. Aapla Blinkit data order-line level cha aahe, he lakshat theva – pudhe prathyek measure lihitana he kaamala yeil. Aata pudhe jaauya, Power BI install karun interface olkhuya.