Skip to content

Secondary-Sales Driver Analysis & Excel Dashboard for a Mysuru FMCG Distributor (Python Regression)

  • 12 slides
  • 16 viva questions
  • 6 modules
  • Code included

@fmcg-distributor-secondary-sales-driver-regressionUpdated Oct 2026

Which levers actually move retailer orders — beat frequency, schemes, credit days or outlet type — measured with regression on 18 months of invoices

PGDM, Business Analytics · Sem 3 · Advanced · 8 weeks · Solo

More info
Level
Advanced · 8 weeks · Solo
Relevant for
All India
Common at
AICTE-approved PGDM institutes (MB 303 model), Maulana Abul Kalam Azad University of Technology (MAKAUT), Visvesvaraya Technological University (VTU)
Syllabus
AICTE model AICTE model 2018 · MB 303 Internship Project & Viva (6–8 weeks) · Semester 3
Tech stack
  • Python 3.11
  • pandas
  • statsmodels (OLS)
  • scikit-learn
  • matplotlib
  • openpyxl (Excel dashboard)
  • MS Excel (pivot tables, slicers)
  • SPSS (cross-check of regression output)
For educational purposes only

Unlock this project

Full PPT + speaker notes, source code and setup steps, READMEFIRST, instructions and all 16 viva answers.

One-time. No subscription, no auto-renew, no drama.

Project packs

Credits never expire and work on any project. Use one here, save the rest for your friend who “will pay you back”.

  1. Pinned

    1 min

    Overview

    This internship project studies what actually drives secondary sales (distributor-to-retailer orders) for Sri Chamundi Agencies, a fictional FMCG distributor in Mysuru that supplies about 1,150 kirana stores, medical shops and small supermarkets across 14 beats. The company's sales manager believes that more salesman visits and bigger trade schemes push volume; the accounts team believes that longer credit days do the real work. Nobody has tested either belief.

    Using 18 months of invoice-level data (about 96,000 invoice lines, exported from the distributor's billing software to CSV), the project builds an outlet-month panel and fits a multiple linear regression of monthly outlet sales on beat-visit frequency, scheme depth, credit days allowed, outlet type, outlet age and festival-month dummies. A log-linear specification gives elasticities that a sales manager can read directly ("a 10% deeper scheme is associated with X% more sales").

    The deliverables are a reproducible Python pipeline (cleaning → feature building → regression → diagnostics), an Excel dashboard regenerated by the pipeline (beat-wise sales, top outlets, scheme ROI, collection ageing) and a management report with actionable recommendations on beat planning and scheme design. The project fits the AICTE model MB 303 Internship Project & Viva (6 credits; report 50, presentation 30, viva 20) and is defensible because every number traces back to a script.

    Syllabus alignment

    AICTE model · AICTE model 2018

    MB 303 · Internship Project & Viva (6–8 weeks) · Semester 3 · 6 credits · 100 = report 50 + presentation 30 + viva 20

    Subjects this project applies
    • Business Statistics & Analytics (Excel, SPSS)
    • Marketing Management — distribution & trade promotion
    • Research Methodology — regression and hypothesis testing
    • Management Information Systems (Excel, Access, MySQL)
    • Sales & Distribution Management elective
    How it is evaluated

    See your department's project guidelines.

    Also fits: VTU MBA 2022 Scheme, SPPU MBA 2019 pattern (CBCGS), Bangalore University MBA CBCS 2021-22 (rev. 2022).

    1 min read · 16 viva questions

  2. 2 min

    Synopsis

    Abstract

    Small FMCG distributors in tier-2 Indian cities spend heavily on salesman beats and trade schemes without evidence of what works. This project uses 18 months of invoice data from a Mysuru distributor to estimate, through multiple linear regression, the effect of visit frequency, scheme depth, credit days and outlet type on monthly outlet sales. A Python pipeline cleans the data, fits and diagnoses the model, and regenerates an Excel dashboard for the sales team. Results are converted into beat-planning and scheme-design recommendations.

    Introduction

    In the Indian FMCG route-to-market model, the company sells to a distributor (primary sales) and the distributor sells to retailers (secondary sales). Secondary sales are what the company's area manager tracks every month, and they depend on how well the distributor's salesmen cover their beats. Distributors typically run 10–20 beats, each visited on fixed weekdays, and offer schemes such as "buy 10 get 1" or a flat percentage off invoice. Credit of 7–30 days is common and is often the main reason a kirana store stays loyal. The distributor in this study had all this data in its billing software but only used it to print invoices and outstanding lists.

    Literature gap

    Published work on Indian retail distribution is largely survey-based (retailer satisfaction with distributors, perception of schemes). Very few student or practitioner studies use transaction data to quantify the association between distributor actions and outlet sales. Textbook sales-management chapters describe beat planning qualitatively. This project fills that gap at the scale of a single distributor, with an honest discussion of what a regression on observational data can and cannot claim.

    Existing vs proposed practice

    • Existing: monthly target vs achievement in Excel, prepared manually; schemes chosen by the principal company's push; beat frequency unchanged for two years; no view of which outlets are growing or dying.
    • Proposed: an automated outlet-month dataset, a validated regression model with elasticities, a scheme-ROI view and an Excel dashboard that refreshes from one command.

    Feasibility

    • Technical: all tools are free (Python, pandas, statsmodels) or already licensed (Excel). The dataset is under 50 MB.
    • Economic: no cost to the distributor beyond the time to export CSVs.
    • Operational: the sales manager already uses Excel; the dashboard uses slicers and pivot charts he recognises.
    • Ethical: outlet names are replaced with codes; no personal data of salesmen or shop owners leaves the premises; the company's written permission is attached to the report.
  3. 1 min

    Problem statement

    Sri Chamundi Agencies, a fictional FMCG distributor in Mysuru, serves roughly 1,150 retail outlets through 14 fixed beats and four salesmen. Over the last two years its secondary sales have grown slower than the principal company's regional average, while spending on trade schemes has risen by about a third and average credit days have stretched from 12 to 21. Management disagrees on the cause: the sales team asks for more visits and bigger schemes, while the accounts team wants to cut credit because collections are slow.

    The firm has 18 months of invoice-level data but no analysis connecting its own actions to outlet sales. The problem is to quantify how visit frequency, scheme depth, credit days and outlet characteristics are associated with monthly outlet sales, test whether these associations are statistically significant, and present the results in a dashboard and a set of recommendations that the owner can act on in the next quarter — without overstating a correlational model as proof of causation.

  4. 1 min

    Objectives & scope

    1. 01Build a clean outlet-month panel from 18 months of invoice, collection and beat-plan exports.
    2. 02Describe sales patterns by beat, outlet type, month and SKU category using descriptive statistics and charts.
    3. 03Estimate a multiple linear regression (log-linear) of monthly outlet sales on visit frequency, scheme depth, credit days, outlet type, outlet vintage and festival months.
    4. 04Test hypotheses H1–H4 at the 5% level and check OLS assumptions (linearity, normality of residuals, homoscedasticity, multicollinearity).
    5. 05Validate the model on a hold-out period (last three months) and report RMSE and MAPE.
    6. 06Generate an Excel dashboard automatically from the pipeline for beat-wise sales, scheme ROI and receivable ageing.
    7. 07Recommend beat-frequency and scheme-design changes with estimated impact and risks.

    Scope

    In scope

    • One distributor, 14 beats, about 1,150 outlets, 18 months (April of year 1 to September of year 2).
    • Secondary sales value (₹, net of scheme discount) at outlet-month level; six SKU categories.
    • Explanatory variables available in the billing and beat-plan data: visits per month, scheme discount %, credit days allowed, outlet type (kirana / medical / supermarket / paan-bakery), months since first invoice, festival-month dummy (Dasara, Deepavali, Ugadi, Sankranti).
    • Python pipeline, Excel dashboard, management report and presentation.

    Out of scope

    • Primary sales and the principal company's pricing decisions.
    • Causal claims — the design is observational; the report discusses confounding explicitly.
    • Retailer surveys, competitor sales and weather data (listed as future scope).
    • Real-time integration with the billing software; the pipeline reads monthly CSV exports.
  5. 2 min

    Methodology

    Research design

    Descriptive + explanatory (correlational) design on secondary data. The unit of analysis is the outlet-month. The study is a census of all active outlets rather than a sample: after removing outlets with fewer than three invoices, about 1,020 outlets × 18 months ≈ 18,000 outlet-months remain. With 10 predictors, this is far above the common rule of thumb of 50 + 8k = 130 observations (Green, 1991) for testing individual coefficients, so statistical power is not a concern — practical significance is.

    Variables

    VariableTypeConstruction
    ln(Sales)Dependentnatural log of monthly net invoice value
    VisitsContinuousbeat-plan visits actually logged in the month
    SchemePctContinuousscheme discount ÷ gross value × 100
    CreditDaysContinuousaverage days allowed on the month's invoices
    OutletTypeCategorical (3 dummies)kirana is the base
    VintageContinuousmonths since first invoice
    FestivalDummy1 for festival months

    Hypotheses (α = 0.05)

    • H1₀: visit frequency has no association with outlet sales (β_Visits = 0). H1₁: β_Visits ≠ 0.
    • H2₀: scheme depth has no association with sales. H2₁: β_SchemePct ≠ 0.
    • H3₀: credit days have no association with sales. H3₁: β_CreditDays ≠ 0.
    • H4₀: mean monthly sales do not differ by outlet type. H4₁: at least one type differs — tested with one-way ANOVA (Welch version if Levene's test fails), then Games–Howell post-hoc.
    • Supporting tests: Pearson correlation matrix of continuous predictors; chi-square test of independence between outlet type and "growing vs declining" status (year-2 vs year-1 sales).

    Model checks

    VIF < 5 for multicollinearity; residual-vs-fitted plot and Breusch–Pagan test for heteroscedasticity (HC3 robust standard errors if violated); Q–Q plot of residuals; Cook's distance for influential outlets; a fixed-effects variant with beat dummies as a robustness check. Hold-out validation: train on months 1–15, test on 16–18 with RMSE and MAPE.

    Timeline (8 weeks)

    WeekWork
    1Company orientation, data-access permission, understanding billing exports
    2Data cleaning, outlet coding, panel construction
    3Descriptive analysis and dashboard prototype
    4–5Hypothesis tests, regression, diagnostics
    6Hold-out validation, robustness checks
    7Recommendations with the sales manager, dashboard finalisation
    8Report writing, presentation, viva preparation
  6. 1 min

    Architecture & tech stack

    • Python 3.11
    • pandas
    • statsmodels (OLS)
    • scikit-learn
    • matplotlib
    • openpyxl (Excel dashboard)
    • MS Excel (pivot tables, slicers)
    • SPSS (cross-check of regression output)

    The study is organised as a reproducible analysis pipeline: every table and chart in the report is produced by a script from the raw exports, so rerunning one command rebuilds everything.

    flowchart TD
      A["Billing software CSV exports: invoices, collections, beat plan"] --> B["01_clean.py: dedupe, fix dates, code outlets"]
      B --> C["02_panel.py: outlet-month panel + features"]
      C --> D["03_describe.py: descriptive stats, charts"]
      C --> E["04_tests.py: correlation, ANOVA, chi-square"]
      C --> F["05_model.py: OLS log-linear model"]
      F --> G["Diagnostics: VIF, Breusch-Pagan, Q-Q, Cook's distance"]
      F --> H["Hold-out validation: RMSE, MAPE"]
      D --> I["06_dashboard.py: Excel dashboard via openpyxl"]
      G --> J["outputs/tables + figures"]
      H --> J
      I --> K["Management report + recommendations"]
      J --> K

    Folder layout

    • data/raw/ — the monthly exports (anonymised); data/processed/ — the panel as Parquet/CSV.
    • src/ — numbered scripts plus features.py (shared feature logic) and config.yaml (festival months, outlet-type mapping, hold-out window).
    • outputs/ — regression tables (CSV + formatted HTML), figures (PNG) and dashboard.xlsx.
    • tests/ — pytest checks that totals in the panel equal totals in the raw invoices, that no outlet-month is duplicated and that the feature ranges are sensible.

    Model

    ln(Sales) = β0 + β1·Visits + β2·SchemePct + β3·CreditDays + β4–6·OutletType + β7·Vintage + β8·Festival + ε. In a log-linear model, 100·β is approximately the percentage change in sales for a one-unit change in the predictor, which is how coefficients are explained to management.

  7. 6 modules

    Modules

    • Data extraction & anonymisation

      Reads the monthly invoice, collection and beat-plan CSVs, standardises column names and dates, removes cancelled invoices and replaces outlet names with stable codes so that no shop owner is identifiable in the report.

    • Panel & feature engineering

      Aggregates invoice lines to outlet-month rows, computes visits, scheme percentage, weighted credit days, outlet vintage and festival dummies, and flags outlets with too few invoices for exclusion with a documented rule.

    • Descriptive analytics

      Produces beat-wise and outlet-type-wise summaries, month trends, Pareto (top 20% outlets share) and SKU-category mix, saved as tables and charts that go straight into Chapter 4 of the report.

    • Hypothesis testing

      Runs Pearson correlation, Welch ANOVA with Games–Howell post-hoc for outlet type, and a chi-square test of independence for outlet type versus growth status, writing test statistics, degrees of freedom and p-values to a results table.

    • Regression & diagnostics

      Fits the OLS log-linear model with statsmodels, checks VIF, Breusch–Pagan, residual normality and influential points, switches to HC3 robust errors where needed, and runs the beat fixed-effects robustness model.

    • Validation & Excel dashboard

      Scores the hold-out months, reports RMSE and MAPE, and writes a formatted Excel workbook with pivot-ready sheets, beat-wise charts, scheme ROI and receivable ageing that the sales manager can filter with slicers.

  8. Locked

    Presentation

    12 slides with speaker notes. The outline below is free; the bullets, notes and the generated .pptx unlock with the project.

    1. Secondary-Sales Driver Analysis
    2. Business context
    3. Problem statement & objectives
    4. Data & variables
    5. Hypotheses
    6. Pipeline
    7. Descriptive findings
    8. Regression results
    9. Diagnostics & validation
    10. Excel dashboard
    11. Recommendations
    12. Limitations & future scope

    Bullets, speaker notes and the .pptx download unlock with the project.

    Presentation is locked: 12 slides, Speaker notes, .pptx download.

  9. 1 min

    Future scope

    • Add a retailer survey (satisfaction with service, scheme awareness) and merge it with transaction data to explain why outlets respond differently.
    • Replace OLS with a mixed-effects model (outlets nested in beats) or a gradient-boosting model with SHAP explanations for non-linear effects.
    • Use difference-in-differences on a pilot beat where visit frequency is actually changed, turning the correlational finding into a causal test.
    • Automate monthly refresh through the billing software's API and publish the dashboard in Power BI for the salesmen's phones.
    • Extend to collection prediction: which outlets will cross 30 days overdue next month.
  10. 7 sources

    References

    1. Hair, J. F., Black, W. C., Babin, B. J. & Anderson, R. E. — Multivariate Data Analysis (Pearson)
    2. Wooldridge, J. M. — Introductory Econometrics: A Modern Approach (Cengage)
    3. Havaldar, K. K. & Cavale, V. M. — Sales and Distribution Management: Text and Cases (McGraw Hill India)
    4. statsmodels documentation — Linear Regression
    5. pandas documentation — User Guide
    6. openpyxl documentation
    7. AICTE Model Curriculum — MBA/PGDM (MAKAUT implementation)

    Cite this bundle

    OnlyProjects. (2026). Secondary-Sales Driver Analysis & Excel Dashboard for a Mysuru FMCG Distributor (Python Regression): PGDM Business Analytics project bundle [Educational resource]. https://onlyprojects.online/projects/pgdm-analytics-fmcg-distributor-secondary-sales-driver-regression

Slides, diagrams & files

12 slides. Titles are free; bullets, speaker notes and the .pptx unlock with the project.

  1. SLIDE 1

    Secondary-Sales Driver Analysis

  2. SLIDE 2

    Business context

  3. SLIDE 3

    Problem statement & objectives

  4. SLIDE 4

    Data & variables

  5. SLIDE 5

    Hypotheses

  6. SLIDE 6

    Pipeline

  7. SLIDE 7

    Descriptive findings

  8. SLIDE 8

    Regression results

  9. SLIDE 9

    Diagnostics & validation

  10. SLIDE 10

    Excel dashboard

  11. SLIDE 11

    Recommendations

  12. SLIDE 12

    Limitations & future scope

Architecture diagram

1
flowchart TD
  A["Billing software CSV exports: invoices, collections, beat plan"] --> B["01_clean.py: dedupe, fix dates, code outlets"]
  B --> C["02_panel.py: outlet-month panel + features"]
  C --> D["03_describe.py: descriptive stats, charts"]
  C --> E["04_tests.py: correlation, ANOVA, chi-square"]
  C --> F["05_model.py: OLS log-linear model"]
  F --> G["Diagnostics: VIF, Breusch-Pagan, Q-Q, Cook's distance"]
  F --> H["Hold-out validation: RMSE, MAPE"]
  D --> I["06_dashboard.py: Excel dashboard via openpyxl"]
  G --> J["outputs/tables + figures"]
  H --> J
  I --> K["Management report + recommendations"]
  J --> K

Files

Viva questions & answers

3 of 16 questions free. Explain each answer in your own words before you move on.

  1. Concept

    Why did you use a log of sales as the dependent variable?

    Outlet sales are strongly right-skewed because a few supermarkets buy far more than most kiranas. Taking the natural log reduces skew, stabilises variance and lets each coefficient be read as an approximate percentage change in sales, which is easier for the sales manager to use.

  2. Concept

    What is the difference between primary and secondary sales?

    Primary sales are what the FMCG company bills to the distributor; secondary sales are what the distributor bills to retailers. This project studies secondary sales because they reflect real market pull and are what the company's area manager measures the distributor on.

  3. Concept

    Can you say that more visits cause higher sales?

    No. The data are observational, so salesmen may already visit good outlets more often, which is reverse causality. The regression shows an association after controlling for outlet type, vintage and festivals. A causal claim needs a controlled pilot, which I have proposed as future scope.

+13 more questions

They and the answers unlock with the project. Try answering the ones above yourself first. Your examiner will.

For educational purposes only. Use this bundle to understand how the project works, then build and write your own. Submitting it verbatim is between you, your conscience and your external examiner.