Ravindra BagaleCourses & study guides मराठी Track your progress

35. More Real-World Project Briefs

35.2 Sales Dashboard (Wholesale, Not Quick Commerce)

Pointer. If the question is dark-store delivery sales, stop and use Module 28. This brief is a fictional wholesale counter: kirana shops buy in bulk.

Business question. Which city and which salesperson sold the most this month, and where are we short of a target?

Tables.

Table Grain Example columns
Sale (fact) one row per invoice line Invoice ID, Date, City, Salesperson, Product ID, Qty, Amount
Product one product Product ID, Name, Category
Salesperson one person Name (only the class names), City
Date one day the marked date table from Module 11
CityTarget city and month City, Month Start, Target Amount

Fictional lines you can type with Enter data: 2 April, Pune, Ravindra Bagale, ₹4,000; 2 April, Nashik, Shraddha Bagale, ₹2,500; 3 April, Kolhapur, Raja, ₹1,000. Targets are practice numbers you type, not a company plan.

Measures.

Total Sales = SUM(Sale[Amount])
Target = SUM(CityTarget[Target Amount])
Variance = [Total Sales] - [Target]
Achievement % = DIVIDE([Total Sales], [Target])

Relate CityTarget carefully. If the grain is city-month, do not join it directly to Sale on city alone (that is a many-to-many). Use a Month key on Date or the TREATAS pattern in section 13.22.

Pages. One executive page: cards for Sales, Target, Variance, Achievement %; a column chart by city; a table by salesperson. A second page: product category. Slicers: month, city.

Sample layout for this brief, using the fictional rows already on the page.

Sample layout — fictional data. The picture uses the worked rows in this brief. It does not add a table.

Worked rows (fictional sample data). Not a company target. The first three amounts are the lines already in this brief.

City Salesperson Sales Target
Pune Ravindra Bagale ₹4,000 ₹5,000
Nashik Shraddha Bagale ₹2,500 ₹2,000
Kolhapur Raja ₹1,000 ₹3,000
Nagpur Rani ₹3,500 ₹3,500
Mumbai Amir ₹2,000 ₹2,500
Sambhaji Nagar Zoya ₹1,500 ₹2,000

Achievement % is sales divided by target. Sales are ₹4,000+₹2,500+₹1,000+₹3,500+₹2,000+₹1,500 = ₹14,500. Target is ₹5,000+₹2,000+₹3,000+₹3,500+₹2,500+₹2,000 = ₹18,000. Achievement is 14,500 ÷ 18,000 = 80.6%. Variance is 14,500 − 18,000 = −₹3,500 (short of target).

Pune is 4,000 ÷ 5,000 = 80%. Nashik is 2,500 ÷ 2,000 = 125%.

Starter file: brief_35_2_wholesale_sales.csv – the worked rows above as a CSV (fictional practice data). Load it with Get data › Text/CSV, build the measures, then check your cards.

Expected values to check

Sales ₹14,500 · Target ₹18,000 · Achievement 80.6% · Variance −₹3,500 · Pune 80%, Nashik 125%

Good KPI Vanity metric
From the same rows Achievement 80.6%, and Nashik 125% against Pune 80% 6 invoices
Why The company is short ₹3,500. Nashik is the only one of these two cities over target. Six rows looks like "activity". Raja's ₹1,000 against a ₹3,000 target is the Kolhapur problem, and the invoice count treats it as equal to Pune.

What the manager does. The Pune manager does not average himself with Nashik and call the week fine. He is ₹1,000 short of a practice target. The Nashik manager asks Shraddha which account repeated, and does not cut her target because the company card is red. Kolhapur is ₹2,000 short on one row. That is a conversation, not a new chart.

Ravindra Bagale's Tip

If you only link the target table to city, the monthly target gets duplicated on every day. Remember that the grain is month, and always test the relationship on a single month. Don't make this mistake!