Sweet Shop Sales dataset
Two years of orders from a fictional chain of Indian sweet shops, with Diwali and Raksha Bandhan rushes.
About this dataset
This is the kind of file a small business owner actually keeps: one row per bill, covering eight shops in eight cities from April 2024 to March 2026 (two Indian financial years). Each order records what was bought, how many, the price, any discount, the GST rate applied in this fictional data, and how the customer paid.
It is a good first dataset because every question you can ask of it has a business answer. Which shop sells the most? Do gift boxes only sell at Diwali? Are corporate orders worth the discount? You can answer all of those with a pivot table in Excel or a few lines of Pandas, and then build a dashboard on top.
Good for practising: Excel pivot tables, Pandas groupby, Time series, Power BI.
What's built into the data
The rows are random, but they follow rules, so there is something real to find. These are the patterns to look for:
- Sales jump in the two to three weeks before Diwali, with smaller rises before Raksha Bandhan and Holi.
- Weekends are about a third busier than weekdays.
- Gift boxes and hampers sell far more during festival weeks, and corporate customers order them in bulk (10–60 boxes) with a 10–15% discount.
- Mumbai and Delhi are the busiest shops; UPI is the most common way to pay.
- net_amount = quantity × unit_price × (1 − discount) × (1 + GST), rounded to paise, so you can check the arithmetic yourself.
Columns
| Column | Type | Description |
|---|---|---|
order_id | ID (text) | Bill number, unique per order. |
order_date | Date | Date of the sale (1 Apr 2024 – 31 Mar 2026). |
store_city | Category | City of the shop that made the sale. |
product | Category | Item sold, with pack size. |
category | Category | Dry fruit sweets, Milk & flour sweets, Namkeen, Bakery or Gift boxes. |
quantity | Whole number | Number of packs. |
unit_price | Amount (₹) | Price per pack in rupees, before discount and tax. |
discount_pct | Whole number | Discount given, in percent (0, 5, 10 or 15). |
gst_pct | Whole number | GST rate applied in this fictional data, in percent. |
net_amount | Amount (₹) | Amount paid in rupees after discount and GST. |
payment_mode | Category | UPI, Cash, Card or Wallet. |
customer_type | Category | Walk-in, Online or Corporate. |
Preview: the first 8 rows
A sample with seed 2026. Your download will have different values but the same columns and patterns.
| order_id | order_date | store_city | product | category | quantity | unit_price | discount_pct | gst_pct | net_amount | payment_mode | customer_type |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ORD-100001 | 2024-06-25 | Patna | Masala Peanuts 200g | Namkeen | 3 | 70 | 5 | 12 | 223.44 | Cash | Walk-in |
| ORD-100002 | 2024-07-08 | Pune | Motichoor Ladoo 500g | Milk & flour sweets | 1 | 260 | 5 | 5 | 259.35 | Card | Walk-in |
| ORD-100003 | 2024-09-25 | Indore | Aloo Bhujia 400g | Namkeen | 1 | 110 | 0 | 12 | 123.2 | Card | Online |
| ORD-100004 | 2025-04-03 | Lucknow | Masala Peanuts 200g | Namkeen | 2 | 70 | 10 | 12 | 141.12 | UPI | Corporate |
| ORD-100005 | 2025-04-11 | Lucknow | Mysore Pak 500g | Milk & flour sweets | 1 | 280 | 0 | 5 | 294.0 | UPI | Walk-in |
| ORD-100006 | 2025-05-17 | Ahmedabad | Plum Cake 500g | Bakery | 2 | 350 | 0 | 18 | 826.0 | Cash | Walk-in |
| ORD-100007 | 2025-06-23 | Ahmedabad | Plum Cake 500g | Bakery | 3 | 350 | 5 | 18 | 1177.05 | UPI | Walk-in |
| ORD-100008 | 2025-12-10 | Pune | Mysore Pak 500g | Milk & flour sweets | 2 | 280 | 10 | 5 | 529.2 | Card | Online |
Practice exercises
- Build a pivot table of net sales by month and shop. Which month is the biggest in each financial year?
- Plot daily sales as a line chart and mark the festival weeks. How much bigger is Diwali than an ordinary week?
- Recalculate net_amount from the other columns and confirm it matches. Then find the total GST collected per category.
- Compare corporate and walk-in customers: average order value, share of gift boxes, and total discount given.
- Find the top three products in each city by revenue (Pandas: groupby + nlargest; SQL: a window function).
- Build a one-page Power BI or Excel dashboard: total sales, sales by month, sales by city and payment mode split.
Stuck on one? Each exercise uses ideas from the lessons below, and trying it with the messy option on turns it into a cleaning exercise as well.
Load it straight into Python
You don't have to download first. Pandas can read the link directly, in Jupyter, Google Colab or a script. Keep the seed so you get the same data every time you run the notebook:
import pandas as pd
url = "https://beeprotonai.info/resources/datasets/sweet-shop-sales/download/?rows=1000&seed=42"
df = pd.read_csv(url, parse_dates=["order_date"])
df.head()
For SQL practice, download the SQL format and run it against an empty database, for example sqlite3 practice.db < sweet-shop-sales-1000-rows-seed42.sql or mysql -u root -p practice < sweet-shop-sales-1000-rows-seed42.sql (use your file's name). It creates a table called sweet_shop_sales and fills it.
About the data
Everything in this file is invented. Names are random pairings of common first names and surnames, email addresses use example.com (reserved for examples, so it can never reach anyone), and phone numbers start with +91 00, which no real Indian mobile number does. Any resemblance to a real person or business is coincidence. Dates run from 1 April 2024 to 31 March 2026 unless a column says otherwise. Use it freely for learning, teaching and projects, including commercial ones, with no attribution required (CC0).
Lessons that go with it
More datasets
An HR file of employees with salary, satisfaction, overtime and whether they left: built …
Student Exam ResultsMarks in five subjects with attendance and study hours, plus totals, percentage, result and …
Customer List (CRM)Customer records with contact details, segment, orders and spend: ideal for cleaning, deduplication and …
Stock Register (Inventory)Monthly stock register for five warehouses: opening, received, issued, closing, reorder level and value.
Website Traffic (Analytics)Daily sessions, users, bounce rate and conversions by page, traffic source and device.
Daily City WeatherSimulated daily temperature, rain, humidity and AQI for Indian cities, with monsoon and winter …