Data Science & Analytics
Unit-Test Score Analytics and Parent Report System for a Grade 8-10 Coaching Centre (Python, MySQL)
Enter marks once, get chapter-level weakness heatmaps and one-page parent reports automatically
- Python 3
- Streamlit
- pandas
- +3
Three years of APMC arrivals and prices for two crops — cleaned, charted in Power BI and forecast one week ahead
Mapped to your syllabusBCU SEP 2024 · 24BCAPJ Project · Semester 5Mandi Price Analytics and Short-Term Forecasting is a data-analytics project built on Agmarknet, the Government of India portal that publishes daily wholesale prices and arrivals from APMC markets across the country. It turns that public data into something a small market committee or an FPO can actually use: a clean local price database, seasonality and volatility analysis, a one-week-ahead price forecast and dashboards that answer questions traders currently answer from memory.
The project tracks two crops with very different behaviour — onion (storable, prone to seasonal spikes and policy shocks such as export duties) and tomato (highly perishable, sharp gluts and crashes) — across six Karnataka markets: Bengaluru, Kolar, Hubballi, Mysuru, Chitradurga and Belagavi. Three years of daily records (arrivals in quintals; minimum, maximum and modal price) are downloaded as Agmarknet report files, cleaned with pandas, loaded into a MySQL staging database, and analysed.
Four forecasting methods of increasing sophistication — seasonal naive, three-week moving average, Holt's exponential smoothing and a SARIMA model from statsmodels — are compared by walk-forward validation using MAPE and RMSE, so the recommendation is earned by measurement rather than fashion. Power BI Desktop dashboards present price trends, a month-by-month seasonality heatmap, the arrivals-versus-price relationship and forecast-versus-actual charts, plus a two-page printable market bulletin.
The project maps directly onto the BCU Sem 5 Project (24BCAPJ) and the 24BCA52 Data Analytics and 24BCA63 Data Mining courses: real government data, honest cleaning decisions, statistical reasoning and a dashboard deliverable — exactly the combination examiners like to question.
Syllabus alignment
Onion and tomato are the two crops whose wholesale prices hurt Indian consumers and growers most when they swing. The public data that could explain these swings already exists on Agmarknet, but it is published as one-day flat reports: local traders, FPO staff and students who want to understand price behaviour must download files day by day, and even then they have no clean history, no seasonal profile, no measure of volatility and no short-term forecast. Decisions — when to harvest and truck a tomato crop, whether to store onions — rest on anecdote.
There is a need for a reproducible analytics pipeline that converts public Agmarknet reports into a clean, queryable price database, measures how prices and arrivals behave across markets and months, tests which simple forecasting method actually predicts the next week best, and presents all of it in dashboards that a non-programmer can open and read.
Wholesale prices of onion and tomato in Karnataka move sharply within a season, yet the people who trade in them mostly read yesterday's Agmarknet table without any historical view. This project builds a reproducible analytics pipeline over three years of Agmarknet daily records for six Karnataka APMC markets: it cleans and stores the data in MySQL, quantifies seasonality, volatility and the arrivals–price relationship, compares four short-term forecasting methods by walk-forward validation, and publishes Power BI dashboards and a fortnightly market bulletin. The best method is selected by measured MAPE and RMSE, not assumption.
Agmarknet, run by the Directorate of Marketing & Inspection under the Ministry of Agriculture and Farmers Welfare, records daily arrivals (quintals) and prices (rupees per quintal) for thousands of mandis. The raw reports are flat tables meant for a single day's query: no history, no derived measures, no visual summary. An FPO in Kolar deciding whether to move its tomato crop this week or the next, or a trader in Hubballi planning onion storage, must mentally combine fragmented knowledge of festival demand, harvest waves and rain damage.
In scope
Out of scope (v1)
The team follows the Incremental (iterative) SDLC model: each increment ends with a demo to the guide, and feedback is folded into the next increment. This suits a 14-week Sem 5 timeline in which data availability — not coding difficulty — is the main risk, so the data pipeline is built first.
| Phase | Weeks | Activities | Deliverable |
|---|---|---|---|
| Requirement study | 1 | Study Agmarknet report formats; interview an FPO/trader about decisions they take; finalise crops, markets, period | Requirement list |
| Data collection | 2–3 | Download three years of daily reports for both crops and all six markets into data/raw | Raw CSV set |
| Design | 4 | MySQL schema, cleaning rules, forecast-method list, dashboard wireframe | Design note |
| Increment 1 | 5–6 | ETL scripts in pandas; load MySQL; data-quality report | Clean database |
| Increment 2 | 7–9 | Exploratory analysis (seasonality, volatility, arrivals–price); figures | Analysis notebook |
| Increment 3 | 10–11 | Forecasting engine, walk-forward validation, metrics table | forecasts.csv, metrics.csv |
| Dashboards | 12 | Power BI model, four report pages, bulletin layout | .pbix + bulletin |
| Testing & docs | 13 | Unit tests for cleaning rules; reproducibility dry-run on a fresh laptop | Test report |
| Report & demo | 14 | Hardbound report, PPT, rehearsal | Final submission |
Testing approach: unit tests (pytest) assert the cleaning invariants — no duplicate market–commodity–date rows, modal price always within min–max, arrivals non-negative; a reproducibility dry-run rebuilds the database from raw CSVs on a teammate's laptop; forecast quality is judged only on the held-out walk-forward window, never on the training period.
The system is a batch analytics pipeline with four layers: acquisition, staging, analysis and presentation. Raw Agmarknet report files land in a versioned folder; a pandas ETL script cleans and loads them into MySQL; Python analysis scripts and the forecasting engine read from MySQL and write results back; Power BI connects to the same MySQL server for all visuals. Keeping MySQL at the centre means the dashboard never depends on a script running first.
flowchart LR
A["Agmarknet report downloads (CSV)"] --> B["data/raw folder"]
B --> C["pandas ETL: dedupe, sanity checks, unit normalisation"]
C --> D[("MySQL: markets, commodities, daily_prices, forecast_runs")]
D --> E["Exploratory analysis (pandas, Matplotlib)"]
D --> F["Forecasting engine: seasonal naive, MA, Holt, SARIMA"]
F --> G["metrics.csv + forecasts.csv"]
G --> D
D --> H["Power BI Desktop dashboards"]
H --> I["Two-page market bulletin (PDF)"]erDiagram
MARKET ||--o{ DAILY_PRICE : has
COMMODITY ||--o{ DAILY_PRICE : "is priced as"
DAILY_PRICE ||--o{ QUALITY_LOG : "passed or failed checks"
DAILY_PRICE ||--o{ WEEKLY_PRICE : "aggregates into"
COMMODITY ||--o{ FORECAST_RUN : "is forecast"
MARKET ||--o{ FORECAST_RUN : "per market"
MARKET {
int market_id PK
string name
string district
}
COMMODITY {
int commodity_id PK
string name
string group_name
}
DAILY_PRICE {
int price_id PK
int market_id FK
int commodity_id FK
date price_date
decimal arrivals_quintal
decimal min_price
decimal max_price
decimal modal_price
}
WEEKLY_PRICE {
int week_id PK
int market_id FK
int commodity_id FK
date week_start
decimal avg_modal_price
decimal total_arrivals
}
FORECAST_RUN {
int run_id PK
int market_id FK
int commodity_id FK
string method
date forecast_week
decimal predicted_price
decimal actual_price
decimal mape
decimal rmse
}
QUALITY_LOG {
int log_id PK
int price_id FK
string check_name
string action
}A QUALITY_LOG table records every row the ETL dropped or corrected and why, which is the audit trail examiners ask about when they probe data cleaning. The pipeline is deliberately file-driven, so the whole study can be replayed offline on viva day with no internet dependency.
Module 01
Downloads three years of Agmarknet daily reports for both crops and six markets, then implements the pandas pipeline: parse heterogeneous report formats, drop exact duplicates, reject rows where modal price lies outside min–max, normalise units to ₹/quintal, and log every rejected row to QUALITY_LOG with a reason.
Module 02
Designs and creates the normalised schema (MARKET, COMMODITY, DAILY_PRICE, WEEKLY_PRICE, FORECAST_RUN, QUALITY_LOG), writes the bulk-load script with parameterised inserts and index creation on market–commodity–date, and prepares the weekly aggregation view that Power BI reads.
Module 03
Builds the analysis notebook that computes monthly seasonality profiles per market, coefficients of variation, year-on-year comparisons, the arrivals-versus-modal-price scatter and Pearson correlation, and festival-window (Diwali, Ganesh Chaturthi) price behaviour, exporting publication-quality Matplotlib/Seaborn figures for the report.
Module 04
Implements the four forecast methods on weekly modal-price series using pandas and statsmodels SARIMAX, runs them in strict walk-forward fashion over the final 26 weeks, and writes forecasts.csv and metrics.csv (MAPE, RMSE per crop–market–method) plus a short justification of the winning method.
Module 05
Connects Power BI Desktop to the MySQL staging database, builds the data model and DAX measures, and designs four report pages — price tracker with market drill-down, month-by-market seasonality heatmap, arrivals versus price scatter, and forecast-versus-actual comparison — plus slicers for crop, market and date range.
Module 06
Lays out the printable two-page bulletin (current prices, four-week trend arrow, next-week forecast band, seasonality note), exports it to PDF, and maintains the project README and data-quality report so the pipeline can be re-run and extended by the next batch without help.
Slide 1
Mandi Price Analytics & Short-Term Forecasting from Agmarknet Data
Slide 2
Background and Motivation
Slide 3
Problem Statement
Slide 4
Objectives
Slide 5
Data Source and Cleaning
Slide 6
System Architecture
Slide 7
Database Design
Slide 8
Exploratory Findings
Slide 9
Forecasting and Validation
Slide 10
Power BI Dashboards and Bulletin
Slide 11
Testing and Reproducibility
Slide 12
Conclusion, Limitations and Future Scope
Bullets, speaker notes and the .pptx · ₹2,000
Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.
Modal price is the price at which the largest trade volume happened on that market day, so it represents where the market actually cleared. A simple average of minimum and maximum is distorted by a few small or distressed lots at the extremes, so modal price is the better central measure for analysis.
Onion is storable for weeks, so traders buffer supply and prices rise in lean months and after policy events like export duties, giving seasonal patterns. Tomato is highly perishable with no effective buffer, so a few days of excess arrivals crash the price, producing sharper short-lived swings and a stronger negative arrivals–price correlation.
MAPE is the mean absolute percentage error, which is easy to read across crops because it is scale-free. RMSE is in rupees per quintal and penalises large misses more heavily. A method can look acceptable on MAPE while producing one disaster week that RMSE exposes, so we report both and discuss them together.
+12 more questions, with answers
Unlocks with the project · ₹2,000
Unlock for ₹2,000What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.
Unlocks with the project · ₹2,000
Unlock for ₹2,000How to study it, adapt it and walk your examiner through it, step by step.
Unlocks with the project · ₹2,000
Unlock for ₹2,000OnlyProjects. (2026). Onion and Tomato Mandi Price Analytics and Short-Term Forecasting from Agmarknet Data (Python, Power BI): BCA Data Science & Analytics project bundle [Educational resource]. https://onlyprojects.online/projects/bca-ds-mandi-price-analytics-forecasting-agmarknet
Keep browsing
Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.
Data Science & Analytics
Enter marks once, get chapter-level weakness heatmaps and one-page parent reports automatically
Data Science & Analytics
A Java + MySQL mini-project that turns daily fuel-price bulletins into trends, tax-gap analysis and honest short-term forecasts
Web Development
Room allocation, complaints and mess billing without the register
AI & Machine Learning
Predict tomorrow's air quality band for every Bengaluru monitoring station, before the morning commute
AI & Machine Learning
Forecast daily OPD crowds department by department, and plan the doctor roster before the Monday rush arrives
AI & Machine Learning
Turn a Soil Health Card into an explained, district-specific crop recommendation a small farmer can act on