PromoLiftOptimizerML uses historical promotion data (including sales, discounts, promotion frequency, etc.) to train a regression model that predicts the sales lift of a promotion.
Based on the predicted lift and the current promotion frequency, the system will explicitly addresses all three challenges:
Unbalanced Discounting: Retailers may discount products with low lift potential too often and not discount products with high lift potential enough.
Worst-Performing Promotions: Identify promotions that yield negative or negligible lift and recommend shutting them down.
Promotion Frequency Issues: Ensure products with strong uplift are promoted frequently while those with weak potential are over-promoted.
PromoLiftOptimizerML/
βββ data/
β βββ historical_promotions.csv # Raw historical data
β βββ merged_data.csv # Processed dataset with computed metrics
βββ notebooks/
β βββ EDA.ipynb # Exploratory analysis
βββ src/
β βββ data_pipeline.py # Ingestion and preprocessing
β βββ model_training.py # Train model to predict optimal discount and frequency (and lift)
β βββ recommendation.py # Generate recommendations based on model predictions vs. current values
β βββ config.py # Configurations
βββ dashboard/
β βββ streamlit_app.py # Interactive dashboard for recommendations
βββ tests/
β βββ test_recommendation.py # Unit tests for recommendation logic
βββ README.md
βββ app.py