diff --git a/hub/services/templates/calculator/roi_calculator_help.html b/hub/services/templates/calculator/roi_calculator_help.html
index 82501aa..2b796ac 100644
--- a/hub/services/templates/calculator/roi_calculator_help.html
+++ b/hub/services/templates/calculator/roi_calculator_help.html
@@ -421,6 +421,235 @@ html {
+
+
+
Market Analysis & ROI Validation
+
+
+
Market-Validated Projections
+
Our ROI calculator uses data-driven projections based on comprehensive European managed services market research. All growth scenarios and return expectations are benchmarked against industry standards and competitive analysis.
+
+
+
European Managed Services Market Reality
+
+
+
+
Market Size & Growth
+
+ - Market Value: €51-85 billion in 2024
+ - Projected Growth: €113-255 billion by 2030-2033
+ - CAGR: 13-15% annually (matches Servala's assumptions)
+ - SME Growth: 10.6% CAGR (fastest growing segment)
+
+
+
+
Cloud Adoption Trends
+
+ - EU Enterprise Adoption: 45% use cloud services in 2023
+ - Multi-Cloud Strategy: 92% of organizations use multiple providers
+ - Self-Service Growth: Strong demand for automated provisioning
+ - Swiss Leadership: 95% have adopted some cloud services
+
+
+
+
+
Competitive Landscape Analysis
+
+
+
European Provider Challenge
+
European cloud providers' market share declined from 27% to 13% over the past five years as US hyperscalers (AWS, Azure, GCP) now control 72% of the regional market. Source: Telecoms.com
+
+
+
+
+
+
+ | Market Factor |
+ Current Reality |
+ Servala Opportunity |
+ Source |
+
+
+
+
+ | Hyperscaler Dominance |
+ AWS (31%), Azure (25%), GCP (11%) |
+ European alternative with data sovereignty |
+ Holori 2024 |
+
+
+ | Data Sovereignty |
+ GDPR, NIS2 compliance requirements |
+ Built-in European regulatory compliance |
+ TNW Analysis |
+
+
+ | Vendor Lock-in Concerns |
+ Growing enterprise resistance |
+ Open-source, multi-cloud architecture |
+ Computer Weekly |
+
+
+ | Regional Provider Decline |
+ Market share falling despite 167% revenue growth |
+ Platform to help regain competitiveness |
+ Telecoms.com |
+
+
+
+
+
+
ROI Projections: Market Benchmarking
+
+
+
+
Growth Scenario Validation
+
+
+
Conservative Scenario
+
15-40 instances/month
+
+ - 5-8 new clients/month × 3-5 instances each
+ - Aligns with EU enterprise cloud adoption (45%)
+ - Conservative vs. Servala's current 65+ instances/customer
+
+
+
+
+
+
+
Aggressive Scenario
+
40-150 instances/month
+
+ - 12-25 new clients/month × 3-6 instances each
+ - Leverages self-service signup trends
+ - Supported by 92% multi-cloud adoption rate
+
+
+
+
+
+
Return Expectations
+
+
+
+
+ | Investment Level |
+ Servala ROI |
+ Market Benchmark |
+ Assessment |
+
+
+
+
+ | 500K (3 years) |
+ 40-60% |
+ SaaS CAC: $1.18-1.50/ARR |
+ Realistic |
+
+
+ | 1M (3 years) |
+ 60-80% |
+ Managed services: 13-15% CAGR |
+ Conservative |
+
+
+ | 2M (3 years) |
+ 80-100% |
+ High-growth SaaS: 50-100% |
+ Ambitious |
+
+
+
+
+
+
+
SaaS Benchmarks
+
Industry CAC ranges $400-$5,000 per customer (low to high-touch). Servala's self-service model targets the lower end while premium revenue per instance supports healthy unit economics. Source: ChurnFree
+
+
+
+
+
Market Timing & Strategic Positioning
+
+
+
+
+
+
+
+ - GDPR Compliance: European data residency requirements
+ - NIS2 Directive: Enhanced cybersecurity mandates
+ - Digital Sovereignty: Growing political support for European solutions
+
+
+
+
+
+
+
+
+
+ - Self-Service Demand: Growing preference for automated provisioning
+ - Multi-Cloud Strategy: 92% of enterprises avoid single vendor
+ - SME Growth: Fastest segment at 10.6% CAGR
+
+
+
+
+
+
+
+
+
+ - Open Source: No vendor lock-in vs. proprietary platforms
+ - European Focus: Built for EU regulatory environment
+ - Proven Traction: 2,000+ instances, 30+ customers
+
+
+
+
+
+
+
+
Market Validation Summary
+
Our market analysis confirms that Servala's ROI projections are conservative and market-realistic:
+
+ - Growth scenarios align with European cloud adoption trends and self-service demand
+ - ROI expectations (40-100%) match industry benchmarks for SaaS and managed services
+ - Market timing leverages regulatory tailwinds and competitive gaps in the European market
+ - Business model addresses proven market needs with validated technology (2,000+ instances running)
+
+
+
+
+
Additional Research Sources
+
+
+
+
Currency Support
diff --git a/hub/services/views/calculator.py b/hub/services/views/calculator.py
index 85b40ef..91819c8 100644
--- a/hub/services/views/calculator.py
+++ b/hub/services/views/calculator.py
@@ -55,14 +55,52 @@ def csp_roi_calculator(request):
return render(request, "calculator/csp_roi_calculator.html", context)
+@require_http_methods(["GET", "POST"])
def roi_calculator_help(request):
"""
- ROI Calculator Help page - Shows detailed information about investment models
- This page is publicly accessible without password protection
+ ROI Calculator Help page - Protected view with same password authentication as calculator
+ Shows detailed information about investment models and market analysis
"""
+ # Handle logout
+ if request.method == "POST" and request.POST.get("logout"):
+ request.session.pop("csp_calculator_authenticated", None)
+ return redirect("services:roi_calculator_help")
+
+ # Get password from Django settings
+ calculator_password = getattr(settings, "CSP_CALCULATOR_PASSWORD", None)
+
+ # If no password is configured, deny access
+ if not calculator_password:
+ messages.error(
+ request,
+ "Calculator help is not properly configured. Please contact administrator.",
+ )
+ return render(
+ request, "calculator/password_form.html", {"password_error": True}
+ )
+
+ # Password protection - check if authenticated in session
+ if not request.session.get("csp_calculator_authenticated", False):
+ if request.method == "POST":
+ password = request.POST.get("password", "")
+
+ # Validate password
+ if password == calculator_password:
+ request.session["csp_calculator_authenticated"] = True
+ # Set session timeout (optional - expires after 24 hours of inactivity)
+ request.session.set_expiry(86400) # 24 hours
+ messages.success(request, "Access granted to CSP ROI Calculator Help.")
+ return redirect("services:roi_calculator_help")
+ else:
+ messages.error(request, "Invalid password. Please try again.")
+
+ # Show password form
+ return render(request, "calculator/password_form.html")
+
+ # User is authenticated, show the help page
context = {
"page_title": "ROI Calculator Help - Investment Models",
- "page_description": "Understand Servala's Loan and Direct Investment models with detailed explanations and examples",
+ "page_description": "Understand Servala's Loan and Direct Investment models with detailed explanations and market analysis",
}
return render(request, "calculator/roi_calculator_help.html", context)