diff --git a/hub/services/templates/calculator/csp_roi_calculator.html b/hub/services/templates/calculator/csp_roi_calculator.html index 7bc156e..1f7667b 100644 --- a/hub/services/templates/calculator/csp_roi_calculator.html +++ b/hub/services/templates/calculator/csp_roi_calculator.html @@ -353,7 +353,14 @@

Investment Settings

- +
CHF
CHF 100,000 - CHF 2,000,000 + + +
+
+
+ Investment Impact + +
+
+
+

How Investment Amount Affects Growth

+

Higher investments enable better growth through increased marketing, infrastructure, and customer success capabilities. This affects instance acquisition rates and reduces churn.

+ +

Mathematical Impact

+
    +
  • Instance Scaling Factor = √(Investment Amount / CHF 500,000)
  • +
  • Churn Reduction Factor = max(0.7, 1 - (Investment - CHF 500,000) / CHF 2,000,000 × 0.3)
  • +
  • New Instances per Month = Base Rate × Scaling Factor
  • +
  • Adjusted Churn Rate = Base Churn × Reduction Factor
  • +
+ +

Example: CHF 1M investment = 1.41× more instances + 25% lower churn than CHF 500K base.

+
+
@@ -879,6 +910,19 @@ class ROICalculator { const scenario = this.scenarios[scenarioKey]; if (!scenario.enabled) return null; + // Calculate investment scaling factor + // Base investment of CHF 500,000 = 1.0x multiplier + // Higher investments get multiplicative benefits for instance acquisition + const baseInvestment = 500000; + const investmentScaleFactor = Math.sqrt(inputs.investmentAmount / baseInvestment); + + // Calculate churn reduction factor based on investment + // Higher investment = better customer success = lower churn + const churnReductionFactor = Math.max(0.7, 1 - (inputs.investmentAmount - baseInvestment) / 2000000 * 0.3); + + // Calculate adjusted churn rate with investment-based reduction + const adjustedChurnRate = scenario.churnRate * churnReductionFactor; + const totalMonths = inputs.timeframe * 12; const monthlyData = []; let currentInstances = 0; @@ -902,11 +946,12 @@ class ROICalculator { monthsInCurrentPhase = 0; } - // Calculate new instances for this month - const newInstances = scenario.phases[currentPhase].newInstancesPerMonth; + // Calculate new instances for this month with investment scaling + const baseNewInstances = scenario.phases[currentPhase].newInstancesPerMonth; + const newInstances = Math.floor(baseNewInstances * investmentScaleFactor); - // Calculate churn - const churnedInstances = Math.floor(currentInstances * scenario.churnRate); + // Calculate churn using the pre-calculated adjusted churn rate + const churnedInstances = Math.floor(currentInstances * adjustedChurnRate); // Update total instances currentInstances = currentInstances + newInstances - churnedInstances; @@ -954,7 +999,9 @@ class ROICalculator { cumulativeCSPRevenue, cumulativeServalaRevenue, discountedCashFlow, - totalDiscountedCashFlow: totalDiscountedCashFlow + inputs.investmentAmount + totalDiscountedCashFlow: totalDiscountedCashFlow + inputs.investmentAmount, + investmentScaleFactor: investmentScaleFactor, + adjustedChurnRate: adjustedChurnRate }); monthsInCurrentPhase++; @@ -975,7 +1022,9 @@ class ROICalculator { npv, breakEvenMonth, npvBreakEvenMonth, - monthlyData + monthlyData, + investmentScaleFactor: investmentScaleFactor, + adjustedChurnRate: adjustedChurnRate * 100 }; }