A modular Integrated Business Planning software system that helps align demand, inventory, supply, and financial planning processes.
- IBP for Demand: Short/mid-term demand forecasting using statistical models and ML algorithms
- IBP for Inventory: Stock level optimization using EOQ models and service-level metrics
- IBP for Supply: Production and supply planning based on capacity constraints
- IBP for S&OP: Strategic alignment of supply/demand planning with financial goals
- IBP for Response: Real-time re-planning for supply chain disruptions
- IBP for Control Tower: End-to-end visibility of supply chain performance metrics
- Backend: Python with FastAPI
- Frontend: Streamlit for interactive dashboards
- Data Processing: Pandas, NumPy, scikit-learn
- Forecasting: ARIMA, XGBoost, Prophet
- Visualization: Plotly, Matplotlib, Seaborn
- ML Monitoring: MLflow, Evidently AI, Deepchecks
- Clone this repository
- Install dependencies:
pip install -r requirements.txt - Run the Streamlit application:
cd app streamlit run main.py
- Advanced forecasting algorithms including ARIMA, Exponential Smoothing, and Prophet
- Automated model selection based on data characteristics
- Support for multiple time series frequencies (daily, weekly, monthly)
- Interactive visualization of forecast results
- Model performance metrics and validation
- Dynamic safety stock calculations
- EOQ (Economic Order Quantity) optimization
- Service level-based inventory planning
- ABC/XYZ analysis
- Inventory cost optimization
Plan production and procurement based on demand forecasts and capacity constraints.
Align operational planning with financial objectives and KPIs.
Simulate and respond to supply chain disruptions with dynamic replanning.
Monitor end-to-end supply chain performance with real-time dashboards and alerts.
The system supports various data import methods:
- CSV files with custom formatting
- Excel files (.xlsx, .xls)
- SQL databases
- External APIs (economic indicators, market trends, etc.)
The app/data directory contains sample datasets for testing:
- Sales history
- Inventory levels
- Supply chain data
- KPI metrics
- Alerts and notifications
- Improved forecasting accuracy with automated frequency detection
- Enhanced UI with better error handling and user feedback
- Streamlined data import process
- Better exception handling and error messages
- Cleaned up codebase and removed redundant files
- Updated dependency management
Users can create and simulate various "what-if" scenarios:
- Demand spikes or drops
- Price changes and promotions
- Supply chain disruptions
- Production capacity changes
- Market trend impacts
Contributions are welcome! Please feel free to submit pull requests or open issues for any bugs or feature requests.
-
Clone the repository:
git clone https://github.com/bahaeddinmselmi/forcastapp.git cd forcastapp -
Install dependencies:
pip install -r requirements.txt
-
Run the app:
streamlit run app/main.py
- Fork this repository to your GitHub account
- Log in to Streamlit Cloud
- Create a new app and select your forked repository
- Set the following:
- Main file path:
app/main.py - Python version: 3.13
- Main file path:
- Click "Deploy!"
The app can be configured through:
.streamlit/config.tomlfor Streamlit settingsapp/config.pyfor application settings