A comprehensive Python tool for projecting and visualizing revenue growth based on different customer acquisition scenarios, including various revenue streams and one-time fees. The tool now features a modular design that allows for easy customization of business models and revenue streams.
- Modular Business Models: Easily switch between different business models
- Customizable Revenue Streams: Define your own hosting plans, add-ons, and pricing
- Flexible Configuration: Adjust probabilities, pricing, and service offerings
- Multiple Scenarios: Compare different customer acquisition rates (1-6+ customers/month)
- Detailed Visualizations: Interactive charts with revenue breakdowns
- Comprehensive Reports: Excel exports with detailed financial projections
- Type Hints: Full type support for better code maintainability
main.py: Main entry point for the applicationconfig.py: Central configuration and model selectionmodels.py: Core business logic and data modelsUpsellPackage: Represents a sellable package with pricing and typeCustomerUpsells: Tracks customer purchases and calculates revenueServiceNames: Centralized service name definitions
revenue_calculator.py: Handles revenue projections and calculationsgenerate_charts.py: Visualization and chart generationexcel.py: Excel report generationoutput/: Generated reports and charts
Edit config.py to define your business model:
# Example Web Design Business Model
WEB_DESIGN_MODEL = {
'hosting_plans': [
{
'name': 'basic',
'price': 29.95,
'type': 'recurring',
'display_name': 'Base Hosting',
'color': '#1f77b4',
'probability': 0.85
},
# ... more plans
],
'addons': [
{
'name': 'web_dev_care',
'price': 247.00,
'type': 'recurring',
'display_name': 'Web Dev Care',
'color': '#2ca02c',
'probability': 0.10
},
# ... more addons
]
}
# Select active model
CURRENT_MODEL = WEB_DESIGN_MODELModify main.py to adjust customer acquisition scenarios:
scenarios = {
"1 customer/month": 1,
"2 customers/month": 2,
"3 customers/month": 3,
"4 customers/month": 4,
"6 customers/month": 6
}-
Clone the repository
git clone <repository-url> cd ExpectedRevenueCalculator
-
Install dependencies
pip install -r requirements.txt
-
Run the calculator
python main.py
The tool generates:
- Interactive charts in
output/directory - Detailed Excel reports with revenue breakdowns
- Visual comparisons across different scenarios
- Define your model in
config.pyfollowing the existing structure - Add it to the model selection in
config.py - The system will automatically handle the rest
Update the CURRENT_MODEL configuration in config.py to:
- Add/remove plans
- Adjust pricing and probabilities
- Define new add-ons and services
- Python 3.7+
- pandas: Data manipulation and Excel export
- openpyxl: Excel file support
- matplotlib: Chart generation
- numpy: Numerical operations
This project is licensed under the MIT License. Feel free to use, modify, and distribute as needed.