diff --git a/hub/services/templates/calculator/csp_roi_calculator.html b/hub/services/templates/calculator/csp_roi_calculator.html
index d50dd2f..4a88412 100644
--- a/hub/services/templates/calculator/csp_roi_calculator.html
+++ b/hub/services/templates/calculator/csp_roi_calculator.html
@@ -334,7 +334,7 @@
-
+
Customize growth phases and churn rates for each scenario. Changes apply immediately to calculations.
+
+
+
+
Conservative Scenario Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Moderate Scenario Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Aggressive Scenario Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1039,6 +1186,69 @@ function updateCalculations() {
}
}
+// Advanced parameter functions
+function updateScenarioChurn(scenarioKey, churnRate) {
+ calculator.scenarios[scenarioKey].churnRate = parseFloat(churnRate) / 100;
+ updateCalculations();
+}
+
+function updateScenarioPhase(scenarioKey, phaseIndex, newInstancesPerMonth) {
+ calculator.scenarios[scenarioKey].phases[phaseIndex].newInstancesPerMonth = parseInt(newInstancesPerMonth);
+ updateCalculations();
+}
+
+function resetAdvancedParameters() {
+ if (confirm('Reset all advanced parameters to default values?')) {
+ // Reset Conservative
+ calculator.scenarios.conservative.churnRate = 0.02;
+ calculator.scenarios.conservative.phases = [
+ { months: 6, newInstancesPerMonth: 50 },
+ { months: 6, newInstancesPerMonth: 75 },
+ { months: 12, newInstancesPerMonth: 100 },
+ { months: 12, newInstancesPerMonth: 150 }
+ ];
+
+ // Reset Moderate
+ calculator.scenarios.moderate.churnRate = 0.03;
+ calculator.scenarios.moderate.phases = [
+ { months: 6, newInstancesPerMonth: 100 },
+ { months: 6, newInstancesPerMonth: 200 },
+ { months: 12, newInstancesPerMonth: 300 },
+ { months: 12, newInstancesPerMonth: 400 }
+ ];
+
+ // Reset Aggressive
+ calculator.scenarios.aggressive.churnRate = 0.05;
+ calculator.scenarios.aggressive.phases = [
+ { months: 6, newInstancesPerMonth: 200 },
+ { months: 6, newInstancesPerMonth: 400 },
+ { months: 12, newInstancesPerMonth: 600 },
+ { months: 12, newInstancesPerMonth: 800 }
+ ];
+
+ // Update UI inputs
+ document.getElementById('conservative-churn').value = '2.0';
+ document.getElementById('conservative-phase-0').value = '50';
+ document.getElementById('conservative-phase-1').value = '75';
+ document.getElementById('conservative-phase-2').value = '100';
+ document.getElementById('conservative-phase-3').value = '150';
+
+ document.getElementById('moderate-churn').value = '3.0';
+ document.getElementById('moderate-phase-0').value = '100';
+ document.getElementById('moderate-phase-1').value = '200';
+ document.getElementById('moderate-phase-2').value = '300';
+ document.getElementById('moderate-phase-3').value = '400';
+
+ document.getElementById('aggressive-churn').value = '5.0';
+ document.getElementById('aggressive-phase-0').value = '200';
+ document.getElementById('aggressive-phase-1').value = '400';
+ document.getElementById('aggressive-phase-2').value = '600';
+ document.getElementById('aggressive-phase-3').value = '800';
+
+ updateCalculations();
+ }
+}
+
// Scenario management
function toggleScenario(scenarioKey) {
const enabled = document.getElementById(scenarioKey + '-enabled').checked;
@@ -1318,7 +1528,10 @@ function resetCalculator() {
document.getElementById(scenario + '-card').classList.remove('disabled');
});
- // Recalculate
+ // Reset advanced parameters
+ resetAdvancedParameters();
+
+ // Recalculate (this will be called by resetAdvancedParameters, but we ensure it happens)
updateCalculations();
}
}